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.