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)
And it works with Interval instance too.
This is a bit of a perma-thread on this mailing list. I guess it's
hard to Google for But it's been talked about a lot.
David
--
Upcoming training by David A. Black/Ruby Power and Light, LLC:
* Advancing With Rails, Berlin, Germany, November 19-22
* Intro to Rails, London, UK, December 3-6 (by Skills Matter)
See http://www.rubypal.com for details!
# > 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
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.
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??
From: Trans [mailto:transf...@gmail.com]
# > 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.
···
On Nov 15, 8:16 am, "Pena, Botp" <b...@delmonte-phil.com> wrote:
# On Nov 13, 10:35 am, Kamil <kamil.kuk...@gmail.com> wrote: