[#399938] how to read arrary with an array — "Richard D." <lists@...>

Hello. I believe this is basic question, but I'm just starting to learn

19 messages 2012/10/02

[#400050] img src while sending email ruby cgi — Ferdous ara <lists@...>

Hi

16 messages 2012/10/05

[#400351] Drop 1st and last particular character — ajay paswan <lists@...>

What is the most efficient way to drop '#' from the first place and last

15 messages 2012/10/16

[#400374] database part of a desktop application — "Sebastjan H." <lists@...>

Hi,

14 messages 2012/10/16
[#400375] Re: database part of a desktop application — Chad Perrin <code@...> 2012/10/16

On Wed, Oct 17, 2012 at 05:28:39AM +0900, Sebastjan H. wrote:

[#400377] Re: database part of a desktop application — sto.mar@... 2012/10/17

Am 16.10.2012 23:24, schrieb Chad Perrin:

[#400389] Re: database part of a desktop application — Chad Perrin <code@...> 2012/10/17

On Wed, Oct 17, 2012 at 01:39:21PM +0900, sto.mar@web.de wrote:

[#400386] Unable to send attachment, and dealing with multiple attachment — ajay paswan <lists@...>

Hi,

11 messages 2012/10/17

[#400454] Hash with Integer key issue — Wayne Simmerson <lists@...>

Hi Im new to Ruby and am getting some unexpected results from a

18 messages 2012/10/19

[#400535] Name/symbol/object type clash? What is happening here? — Todd Benson <caduceass@...>

It's nonsense code, but I'm curious as to what is going on behind the scenes...

41 messages 2012/10/23

[#400556] Calling a method foo() or an object foo.method_call_here - both — Marc Heiler <lists@...>

Hello.

13 messages 2012/10/24

[#400650] OpenSSL ECDSA public key from private — Nokan Emiro <uzleepito@...>

Hi,

11 messages 2012/10/27

[#400680] Passing folder as argument ARGV? — Joz Private <lists@...>

Is there an easy way to pass multiple files on the command line?

15 messages 2012/10/28
[#400681] Re: Passing folder as argument ARGV? — brad smith <bradleydsmith@...> 2012/10/28

How are you traversing the directory you pass in on the command line ?

[#400697] File.readable? and /proc — Jeff Moore <lists@...>

root@nail:/projects/proc_fs# uname -a

13 messages 2012/10/28

[#400714] Marshal.load weird issue — "Pierre J." <lists@...>

Hi guys

12 messages 2012/10/28

[#400781] bug?: local variable created in if modifier not available in modified expression — "Mean L." <lists@...>

irb(main):001:0> local1 if local1 = "created"

21 messages 2012/10/30
[#400807] Re: bug?: local variable created in if modifier not available in modified expression — Bartosz Dziewoński <matma.rex@...> 2012/10/31

Oh, and in case it wasn't apparent: you can just add

[#400808] Re: bug?: local variable created in if modifier not available in modified expression — Eliezer Croitoru <eliezer@...> 2012/10/31

On 10/31/2012 4:52 PM, Bartosz Dziewoナгki wrote:

[#400809] Re: bug?: local variable created in if modifier not available in modified expression — Robert Klemme <shortcutter@...> 2012/10/31

On Wed, Oct 31, 2012 at 4:28 PM, Eliezer Croitoru <eliezer@ngtech.co.il>wrote:

[#400784] REXML & HTMLentities incorrectly map to UTF-8 — "Mark S." <lists@...>

I have some XML data (UTF 8) that I'm trying to convert into another XML

13 messages 2012/10/30

Re: cannot reverse string using drb :(

From: Jes俍 Gabriel y Gal疣 <jgabrielygalan@...>
Date: 2012-10-01 16:56:04 UTC
List: ruby-talk #399896
On Mon, Oct 1, 2012 at 6:34 PM, ajay paswan <lists@ruby-forum.com> wrote:
> Just playing with DRB
>
> serv.rb:
> #!/usr/bin/env ruby -w
> # simple_service.rb
> # A simple DRb service
>
> # load DRb
> require 'drb'
>
> # start up the DRb service
> a=["first","second","third","fourth"]
> b=false
> object=[a,b]
> DRb.start_service 'druby://127.0.0.1:8008', object
> # We need the uri of the service to connect a client
> puts DRb.uri
> while !object[1]
>         #puts "still its f"
>         sleep(1)
> end
> object[0].each do |aa|
>         puts aa
> end
>
> ----------------------------------------------------------------
> client.rb
> #!/usr/bin/env ruby -w
> # simple_client.rb
> # A simple DRb client
>
> require 'drb'
>
> DRb.start_service
>
> # attach to the DRb server via a URI given on the command line
> remote_array = DRbObject.new nil, ARGV.shift
>
> strs= remote_array[0]
> flag = remote_array[1]
> for i in 0..remote_array[0].length-1
>         remote_array[0][i]=remote_array[0][i].reverse
> end
> puts "all string reversed"
> remote_array[1]=true
> puts "flag made true to finish"
>
> it prints:
> first
> second
> third
> fourth
>
> But U know what I wanted!! :(
>
> --
> Posted via http://www.ruby-forum.com/.
>

If you check the DRB docs here
(http://ruby-doc.org/stdlib-1.9.2/libdoc/drb/rdoc/index.html), you
will see:

"Any type of object can be passed as an argument to a dRuby call or
returned as its return value. By default, such objects are dumped or
marshalled at the local end, then loaded or unmarshalled at the remote
end. The remote end therefore receives a copy of the local object, not
a distributed reference to it; methods invoked upon this copy are
executed entirely in the remote process, not passed on to the local
original. This has semantics similar to pass-by-value."

What this means is that the methods you call on "remote_array" are
passed to the server, executed in the server, and the result of the
method call is marshalled and sent to the client. The client then
unmarshalls it and has a local copy.
So, you have two objects in your example: remote_array and
remote_array[0], which is another array. When you do remote_array[0],
you are calling method [] on the remote array, this call is executed
in the server. This call returns an array, which is is marshalled and
unmarshalled, resulting in the client having another copy. Anything
that you do over this array is only done locally.

To achieve what you want to do, you have to just call methods on the
remote array. So something like this could work:

1.9.2p290 :041 > remote_array.map! do |el|
1.9.2p290 :042 >     if Array === el
1.9.2p290 :043?>     el.map{|s| s.reverse}
1.9.2p290 :044?>     else
1.9.2p290 :045 >       el
1.9.2p290 :046?>     end
1.9.2p290 :047?>   end
 => [["tsrif", "dnoces", "driht", "htruof"], false]
1.9.2p290 :048 > remote_array[1] = true
 => true

Which as you see is a bit weird, but this is because the structure you
chose. I know this is just an example, but it shows that you should
model your server objects in such a way to make easy for the clients
to do the stuff.

Jesus.

In This Thread