I have a need for some relatively fancy searching in a hash, and I am
wondering if there's anything that does some kind of pattern matching on
Hash contents.
Specifically here's an example of what I would like to be able to write:
http://www.pastie.org/1127920
Yes, I can write the iterators, collects, merges and what else, but
nicer would be some kind of structured query syntax. Any ideas?
Thanks!
Pito
···
--
Posted via http://www.ruby-forum.com/.
Might be something useful here:
http://eigenclass.org/hiki/Pattern+matching+over+Ruby+objects
···
On 08/30/2010 05:29 PM, Pito Salas wrote:
I have a need for some relatively fancy searching in a hash, and I am
wondering if there's anything that does some kind of pattern matching on
Hash contents.
Specifically here's an example of what I would like to be able to write:
http://www.pastie.org/1127920
Yes, I can write the iterators, collects, merges and what else, but
nicer would be some kind of structured query syntax. Any ideas?
Thanks!
Pito
For the simple case one could do
class Hash
def nested_value? *keys, val
val.eql?( keys.inject(self) {|h,k| h.fetch(k) { return false } } )
rescue return false
end
def nested_key? *keys
keys.inject(self) {|h,k| h.fetch(k) { return false } } rescue return false
true
end
end
Note, you need 1.9* for this - otherwise you need to manually
distribute arguments.
Kind regards
robert
···
2010/8/31 Pito Salas <rps@salas.com>:
I have a need for some relatively fancy searching in a hash, and I am
wondering if there's anything that does some kind of pattern matching on
Hash contents.
Specifically here's an example of what I would like to be able to write:
http://www.pastie.org/1127920
Yes, I can write the iterators, collects, merges and what else, but
nicer would be some kind of structured query syntax. Any ideas?
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/