From: Robert Klemme Date: 2013-04-30T00:33:53+09:00 Subject: Re: New Rexx like data structure --bcaec519613b963bd404db819c49 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Apr 29, 2013 at 5:29 PM, Robert Klemme wrote: This reminds me of OpenStruct... > We can only make it work if you accept always getting an OpenStruct in return irb(main):011:0> class OpenStruct irb(main):012:1> alias _method_missing method_missing irb(main):013:1> def method_missing(*a,&b) x=_method_missing(*a,&b); x.nil? ? send("#{a.first}=", self.class.new) : x end irb(main):014:1> end => nil irb(main):015:0> o=OpenStruct.new => # irb(main):016:0> o.foo.bar=123 => 123 irb(main):017:0> o => #> Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/ --bcaec519613b963bd404db819c49 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable



On Mon, Apr 29, 2013 at 5:29 PM, Robert Klemme &l= t;shortcutt= er@googlemail.com> wrote:

This remin= ds me of OpenStruct...

We can only make it w= ork if you accept always getting an OpenStruct in return
irb(main):011:0> class OpenStruct
irb(main):= 012:1> alias _method_missing method_missing
irb(main):013:1> def method_missing(*a,&b) x=3D_method_missing(= *a,&b); x.nil? ? send("#{a.first}=3D", self.class.new) : x en= d
irb(main):014:1> end
=3D> nil
irb(mai= n):015:0> o=3DOpenStruct.new
=3D> #<OpenStruct>
irb(main):016:0> o.foo.bar=3D= 123
=3D> 123
irb(main):017:0> o
=3D>= #<OpenStruct foo=3D#<OpenStruct bar=3D123>>
Kind regards

robert

--
remember.guy do |as, often| as.you_can - without endhttp://blog.rubybestpractic= es.com/
--bcaec519613b963bd404db819c49--