Sha256: ad56de555b89f5991015887436c8c07db4f044a4a8c2cc3bf8cbfdb4a79547d9

Contents?: true

Size: 665 Bytes

Versions: 4

Compression:

Stored size: 665 Bytes

Contents

module Moysklad::Resources::WhereFilter

  # Возвращает список элементов по переданному фильтру.
  # Например:
  # > universe.features.where goodUuid: uuid
  #
  # @return [Array of Moysklad::Entities::Base]
  #
  def where filter
    values.select { |v| filtered? v, filter }
  end

  # Возвращает первый найденный по фильтру элемент или
  # nil
  #
  # @return Moysklad::Entities::Base || nil
  def findWhere filter
    where(filter).first
  end

  private

  def filtered? o, filter={}
    filter.select { |k,v| o.send(k)==v }.count == filter.keys.count
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
moysklad-0.2.1 lib/moysklad/resources/where_filter.rb
moysklad-0.2.0 lib/moysklad/resources/where_filter.rb
moysklad-0.1.5 lib/moysklad/resources/where_filter.rb
moysklad-0.1.4 lib/moysklad/resources/where_filter.rb