Trans
11/15/2007 2:53:00 PM
On Nov 15, 8:16 am, "Pena, Botp" <b...@delmonte-phil.com> wrote:
> From: Trans [mailto:transf...@gmail.com]
> # On Nov 13, 10:35 am, Kamil <kamil.kuk...@gmail.com> wrote:
> # > I wish there would be this simple method in the core:
> # > class Object
> # > def in?(an_array)
> # > an_array.include?(self)
> # > end
> # > end
> # > Having that it's nice to write:
> # > a = %w(hello world out there)
> # > puts 'world'.in?(a)
> # concise, but it inverts the oop flow. is it really a big deal to do:
> # a.include?('world')
>
> i'm not sure what you mean by oop flow, but i use it like,
>
> obj="world"
> array = %w(hello world out there)
>
> obj.method if obj in? array
>
> in english eg, i'd say
>
> john will swim if he is on the swimming team.
>
> not
>
> john will swim if the swimming team includes him (??) [ or replace include w other relevant words]
>
> but yes, that is english, so in ruby we prefer the latter? (just teasing ;-)
true enough, computer language tend to force different order though.
try to imagine it forth ;)
> in fact, i would even like to extend #in? to return the position (if array) or pair (if hash) of obj in collection (nil otherwise); currently include?only returns plain true/false.
not a bad idea.
> kind regards -botp
>
> ps: heheh, note that i'm also using #in in facets among other things :) why (in ruby) can't an object ask itself if it's a member of a collection??
Haha! yep. you got me ;) but i think its fine for add-on, i mean Ruby
can't do everything on it's own, can it ;)
the reason ruby itself should not, is because it adds a method to all
objects that simply inverts the actual oop order. techincally we could
do that with just about every method.
a.index(e)
e.index_of(a)
h.key?(k)
k.key_of?(h)
etc.
Now this reminds me though, why don't we have String#puts ?
t.