Class: Origen::Tester::Parser::SearchableHash
Direct Known Subclasses
J750::Parser::DCSpecs, J750::Parser::PatternSets, J750::Parser::TestInstances, Ultraflex::Parser::DCSpecs, Ultraflex::Parser::PatternSets, Ultraflex::Parser::TestInstances
Instance Method Summary (collapse)
Methods inherited from Hash
#filter, #ids, #intersect?, #intersections, #longest_key, #longest_value, #update_common
Instance Method Details
- (Object) where(conditions)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/origen/tester/parser/searchable_hash.rb', line 5 def where(conditions) exact = conditions.delete(:exact) results = SearchableArray.new each do |_key, item| if conditions.all? do |attr, val| if val.is_a?(Array) if exact val.any? { |v| item.send(attr).to_s == v.to_s } else val.any? { |v| item.send(attr).to_s =~ /#{v.to_s}/ } end else if exact item.send(attr).to_s == val.to_s else item.send(attr).to_s =~ /#{val.to_s}/ end end end results << item end end results end |