I have a hash something like {:schools_name =>
''test", :schools_address => "test, etc....}
What i need to know is does any of the keys contain the word "schools"
in it.
So
hash.has_key? :schools_name will return true
But how can i get it to return true if part of any key contains the
word "schools"
I can think of a couple of ways using a loop but surely there has to
be a quick 1 line way?
JB
There's a few things you can do with enumerable methods
(http://ruby-doc.org/core/classes/Enumerable.html) depending on what
you want to know from the match (just whether it's in there somewhere;
exactly where it is; all the keys that match; etc)
Personally, I'd recommend looking at "select" and "detect" methods as
a start, but here's a line using a loop (like you said ;-)
Run this at the console to see all of the positions of the matches shown.
hash.keys.each { |hash_key| puts hash_key.to_s =~ /schools/ }
But I *think* this is what you're after, but if not, hopefully it puts
you on the right track:
hash.keys.select { |hash_key| hash_key.to_s =~ /schools/ }
hash.keys.collect {|k| k.to_s.include?('schools') }
like the regular expression better though,
cheers,
JB
On 11 Mar, 11:50, Michael Pavling <pavl...@gmail.com> wrote: