[#397988] Help with sqlite3 please — Kaye Ng <lists@...>

I'm on Windows 7 Ultimate, 64-bit

18 messages 2012/08/03
[#397989] Re: Help with sqlite3 please — Chris Hulan <chris.hulan@...> 2012/08/03

sqlite is not ruby, so you should look for a sqlite group ;)

[#397990] Re: Help with sqlite3 please — Kaye Ng <lists@...> 2012/08/03

> However it looks like you have 'SQL' at the beginning of your CREATE

[#398031] Gem install or usage problem in shared environment — Tom Moulton <lists@...>

I am moving to a Westhost shared CPanel account and I am trying to set

17 messages 2012/08/04
[#398077] Re: Gem install or usage problem in shared environment — Tom Moulton <lists@...> 2012/08/06

I got a solution from WestHost and it may help others:

[#398086] Re: Gem install or usage problem in shared environment — Ryan Davis <ryand-ruby@...> 2012/08/07

[#398088] Re: Gem install or usage problem in shared environment — Tom Moulton <lists@...> 2012/08/07

Ryan Davis wrote in post #1071503:

[#398043] Redefining constants for a given instance only — "Andrea Dallera" <andrea@...>

Hello,=0A=0A=C2=A0 =C2=A0 let's say we have two empty classes:=0A=0Aclass=

9 messages 2012/08/05

[#398063] Join with ActiveRecord using non-standard schema — Tedi Roca <lists@...>

Hi,

13 messages 2012/08/06

[#398135] Help with database-related code pls — Kaye Ng <lists@...>

Hi guys! This is just a part of the code of a program that can load a

12 messages 2012/08/08

[#398190] How do you order your class methods? — masta Blasta <lists@...>

Just getting some layout ideas from other fellow devs.

11 messages 2012/08/10

[#398245] namespace instance methods? — John Doe <lists@...>

I have a large class with many instance methods that I want to

14 messages 2012/08/13

[#398287] Idea: def ... end returns the symbolized version of the newly-defined method, instead of nil — Peter <lumbergh@...>

This would allow useful syntax constructs such as this:

9 messages 2012/08/13

[#398362] case vs if-else — ajay paswan <lists@...>

Which one is faster?

20 messages 2012/08/16

[#398385] A Ruby class is never closed — Rubyist Rohit <lists@...>

Is it true that a Ruby class definition is never closed? Even after

18 messages 2012/08/16

[#398504] How to create an EXecutable file (Linux) — Fosiul Alam <lists@...>

Hi

13 messages 2012/08/22

[#398506] Save a file by clicking on a link — ajay paswan <lists@...>

I clicked a link to download a file using ruby, now I see the open-save

41 messages 2012/08/22

[#398641] force child threads run paralelly? — ajay paswan <lists@...>

I have created two child thread using main thread- child1 and child2.

19 messages 2012/08/28
[#398644] Re: force child threads run paralelly? — ajay paswan <lists@...> 2012/08/28

Ruby version:

[#398648] Re: force child threads run paralelly? — Tony Arcieri <tony.arcieri@...> 2012/08/28

On Tue, Aug 28, 2012 at 7:19 AM, ajay paswan <lists@ruby-forum.com> wrote:

[#398684] Can I do this with Ruby and sqlite alone? — Kaye Ng <lists@...>

Hi guys.

16 messages 2012/08/29

Re: TCPserver how to signal EOT

From: tammy roberts2 <lists@...>
Date: 2012-08-21 02:17:43 UTC
List: ruby-talk #398488
Robert Klemme wrote in post #1072878:
> On Mon, Aug 20, 2012 at 11:57 AM, tammy roberts2 <lists@ruby-forum.com>
> wrote:
>> Hi Robert, it is me again, my computer crashed and I lost my login
>> information. Here is what I am using right now, it seems to be working
>> fine, but maybe you see problems with it or a way to improve. Also maybe
>> it will help someone else out who is struggling with the same problem I
>> was.
>
> This is a completely different approach: you do not use a termination
> byte any more but transmit the message length beforehand.
>>         data_received = []
>>           end
>>
>>   def send_data(socket, message)
>>     forward_message = [message.bytesize].pack('N*') + message
>>     socket.send(forward_message, 0)
>>     yield(socket)
>>   end
>
> Why do you yield the socket?


So that it can be passed to the get_reply method if the client expects a 
reply from the server, or closed by the calling method if it does not.

>>     yield(reply, socket)
>>   end
>> end
>
> If you use #send then I'd also use #read for reading instead of
> #recvfrom.  I'd only use that method if I needed the extra options.
> Method #read will also block until as many bytes have arrived so you
> do not take care of fragment messages yourself.

So am I correct in thinking that if I use read I do not need to put it 
in a loop because it will always wait until that many bytes have 
arrived?

> I'd probably choose a tad different approach by wrapping the
> connection with something that does the message handling and creation
> of a message type (for specific parsing etc.):


The listen method currently yields to the caller an array with the parts 
of the data that has been transmitted to it, and the calling method then 
knows how to process this array depending on what it is (the message 
type).


> # could be more sophisticated
> Message = Struct.new :bytes
>
> Connection = Struct.new :socket do
>   def send(msg)
>     b = msg.bytes
>     socket.write [b.bytesize].pack 'N'
>     socket.write b
>     self
>   end
>
>   def close
>     socket.close
>   end
>
>   def each_msg
>       until socket.eof?
>         size = socket.read(4).unpack('N').first
>         msg = socket.read(size)
>         yield Message.new(msg)
>       end
>     end
>
>     self
>   end
> end
>
> loop do
>   Thread.new(server.accept) do |client|
>     conn = Connection.new client
>
>     conn.each_msg do |msg|
>       yield msg, conn
>     end
>   end
> end
>
>
> Kind regards
>
> robert

Thanks for your advice I will be seriously considering the way you 
presented this :).

-- 
Posted via http://www.ruby-forum.com/.

In This Thread