On Jan 8, 2008 8:15 PM, Sur <
sur.max@...> wrote:
> person.author # => I am author
> person.reader # => I am reader
>
> And it works fine with any hierarchy.
try it further, like
botp@jedi-hopeful:~$ irb
irb(main):001:0> def person
irb(main):002:1> def author
irb(main):003:2> p "I am author"
irb(main):004:2> end
irb(main):005:1> def reader
irb(main):006:2> p "I am reader"
irb(main):007:2> end
irb(main):008:1> end
=> nil
irb(main):009:0> person
=> nil
irb(main):010:0> author
"I am author"
=> nil
irb(main):011:0> nil.reader
"I am reader"
=> nil
...
irb(main):020:0> nil.methods.grep /reader/
=> ["reader"]
irb(main):021:0> 1.methods.grep /reader/
=> ["reader"]
irb(main):022:0> "string".methods.grep /author/
=> ["author"]
>
> The same thing doesn't seem to work inside a class.
>
it does, just try it...
sometimes, i play with this behavior to create a second initializer or
a eureka/latemethod definer :)
kind regards -botp