[#16113] Strange idea... exporting from a scope — "Hal E. Fulton" <hal9000@...>

Hello...

33 messages 2001/06/01

[#16364] Re: Garbage Collection? — Michael Davis <mdavis@...>

Windows 2000 and linux (RedHat 6.2). I have run these tests on both OSs.

12 messages 2001/06/09

[#16400] Symbolic Computation III — Mathieu Bouchard <matju@...>

14 messages 2001/06/11

[#16502] Playing with Ruby Syntax (was: Initial thoughts about Ruby From a Smalltalk Programmer) — jweirich@...

Michael> Hi Everyone, I have to say I'm utterly fascinated by Ruby

9 messages 2001/06/15

[#16661] Problem running irb with Ruby 1.6.4 under FreeBSD 4.0 — Bob Alexander <balexander@...>

I've installed Ruby 1.6.4 on a FreeBSD 4.0 machine, and get the

11 messages 2001/06/20

[#16686] opening db files made by apache dbmmanage — Fritz Heinrichmeyer <fritz.heinrichmeyer@...>

14 messages 2001/06/21

[#16801] rb_define_class() vs Class.new() — Kero van Gelder <kero@...4050.upc-d.chello.nl>

Hi,

18 messages 2001/06/23
[#16802] Re: rb_define_class() vs Class.new() — ts <decoux@...> 2001/06/23

>>>>> "K" == Kero van Gelder <kero@d4050.upc-d.chello.nl> writes:

[#16841] RE: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...>

Next week I'll try to rebuild Ruby with Unicode strings. But it would be

15 messages 2001/06/25
[#16842] Re: national characters is strings — matz@... (Yukihiro Matsumoto) 2001/06/25

Hi,

[#16843] Re: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/25

That's good enough. But I'm afraid this could ( not would ) cause string

[#16868] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

14 messages 2001/06/25
[#16873] RE: Something strange with Ruby's inheritance mechanism — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/26

[#16879] Re: Something strange with Ruby's inheritance mechanism — Mathieu Bouchard <matju@...> 2001/06/26

On Tue, 26 Jun 2001, Aleksei Guzev wrote:

[#16869] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

12 messages 2001/06/25

[#16881] — "Aleksei Guzev" <aleksei.guzev@...>

32 messages 2001/06/26
[#16916] Re: Method overloading (option) Was: Re: — "Wayne Blair" <wayne.blair@...> 2001/06/26

[#16920] Re: Method overloading (option) Was: Re: — matz@... (Yukihiro Matsumoto) 2001/06/26

Hi,

[#16888] finalizers, destructors and whatnot — "David Leal" <david@...>

Hi all,

16 messages 2001/06/26

[#17037] keeping an Exception object alive — David Alan Black <dblack@...>

Hello --

19 messages 2001/06/28
[#17055] Re: keeping an Exception object alive — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17066] RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17076] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17079] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17138] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/07/02

Hi,

[#17141] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/07/02

Hello --

[#17142] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — ts <decoux@...> 2001/07/02

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

[ruby-talk:16265] odd obj.send behaviour

From: Patrik Sundberg <ps@...>
Date: 2001-06-06 13:44:50 UTC
List: ruby-talk #16265
hi,

excuse me for the sourcelistings in this mail - i found it hard to explain
without 'em.

I have found a strange thing with Object#send in a little application I am
writing. I can't really figure out what is wrong. Could be drb related. Here
are the files:

-- the drb server (rbobjgw.rb --
require 'drb'

class RbObjGw
    undef :to_s
    undef :to_a
    undef :respond_to?
	undef :gets
	undef :getc

	attr_accessor :key

	def createObj(type, *args)
		obj = nil
		if args.empty?
			p type+".new"
			obj = eval(type+".new")
		else
			cmd = type+".new(*args)"
			obj = eval(cmd)
		end
		@key = type 
		8.times {|i|
			@key = @key + rand(9).to_s
		}
		$rbGwObjects[@key] = obj 
		@key
	end

	def destroyObj
		$rbGwObjects.delete(@key)
	end

	def method_missing(methId, *args, &block)
		obj = $rbGwObjects[@key]
		if args.empty?
			if block.nil?
				obj.send(methId)
			else
				obj.send(methId, &block)
			end
		else
			if block.nil?
				obj.send(methId, *args)
			else
				obj.send(methId, *args, &block)
			end
		end
	end
end


$rbGwObjects = Hash.new

DRb.start_service('druby://localhost:9000', RbObjGw.new)
DRb.thread.join

-- the local client handle object (rbobjhandle.rb) --
class RbObjGwHandle
    undef :to_s
    undef :to_a
    undef :respond_to?
	undef :gets
	undef :getc

	attr_reader :key, :gw

	def initialize(key, gw)
		@key = key
		@gw = gw
	end

	def method_missing(methId, *args, &block)
		print "key: #{@key} - gw: #{@gw} - id: #{methId}\n"
		@gw.key = @key
		if args.empty?
			if block.nil?
				@gw.send(methId)  # see comments below listings 
			else
				@gw.send(methId, &block)
			end
		else
			if block.nil?
				@gw.send(methId, *args)
			else
				@gw.send(methId, *args, &block)
			end
		end
	end
end

-- a small test --
require 'drb'
require 'rbobjgwhandle'

DRb.start_service

factory = DRbObject.new(nil, 'druby://localhost:9000')
io = RbObjGwHandle.new(factory.createObj("File", "/etc/passwd", "r"), factory)
s = io.gets
print "io: #{s}\n"
io.close
io.destroyObj
--------------------

some methods defined in Kernel seems to not correctly propagate via
method_missing. With the File class i have found that gets is such a method.
If i undef it in the drb object i am fine though which seems correct. But when 
gets is sent to the drb object it isn't propagated via method_missing for some
reason.

in the RbObjGwHandle#method_missing method where I placed the comment gets
just hangs. that is @gw.send(:gets) hangs, but if i change this to @gw.gets i
am alright. anyone have an explanation for this?

(please CC me since I am not on this list)

-- 
-----------------------------------------------------------.
Patrik Sundberg  email: ps@raditex.se || ps@radiac.mine.nu |
                 Phone: +46 13 178567 || +46 707 602240    |
.---> UNIX consultant                                      |
|-----> Applied Physics and Electrical Engineering student |
`----------------------------------------------------------'

In This Thread

Prev Next