Sha256: e0bbb80e3fb997799c70dd5c201b37e923f3812e5475bb7ac346c4bb47098e59

Contents?: true

Size: 816 Bytes

Versions: 107

Compression:

Stored size: 816 Bytes

Contents

module Tester
  module Parser
    class SearchableArray < ::Array
      def where(conditions)
        exact = conditions.delete(:exact)
        results = SearchableArray.new
        each do |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
    end
  end
end

Version data entries

107 entries across 107 versions & 1 rubygems

Version Path
origen_testers-0.52.9 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.8 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.7 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.6 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.5 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.4 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.3 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.1 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.52.0 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.51.5 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.51.4 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.51.3 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.51.2 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.51.1 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.51.0 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.50.0 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.49.4 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.49.3 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.49.2 lib/origen_testers/parser/searchable_array.rb
origen_testers-0.49.1 lib/origen_testers/parser/searchable_array.rb