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.