Method: Curator::Memory::DataStore#find_by_attribute

Defined in:
lib/curator/memory/data_store.rb

#find_by_attribute(collection_name, attribute, query) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/curator/memory/data_store.rb', line 72

def find_by_attribute(collection_name, attribute, query)
  return [] if query.nil?
  bucket = _bucket_name(collection_name)
  index = _index(bucket, attribute)
  keys = case query
         when Range
           keys = index.keys.select do |key|
             key.between?(query.first, query.last)
           end
           index.values_at(*keys).flatten
         else
           index.fetch(query, [])
         end
  keys.map do |key|
    find_by_key(collection_name, key)
  end
end