class Dynamoid::Criteria::IgnoredConditionsDetector

@private

Public Class Methods

new(conditions) click to toggle source
# File lib/dynamoid/criteria/ignored_conditions_detector.rb, line 7
def initialize(conditions)
  @conditions = conditions
  @ignored_keys = ignored_keys
end

Public Instance Methods

found?() click to toggle source
# File lib/dynamoid/criteria/ignored_conditions_detector.rb, line 12
def found?
  @ignored_keys.present?
end
warning_message() click to toggle source
# File lib/dynamoid/criteria/ignored_conditions_detector.rb, line 16
def warning_message
  return unless found?

  'Where conditions may contain only one condition for an attribute. ' \
    "Following conditions are ignored: #{ignored_conditions}"
end

Private Instance Methods

ignored_conditions() click to toggle source
# File lib/dynamoid/criteria/ignored_conditions_detector.rb, line 36
def ignored_conditions
  @conditions.slice(*@ignored_keys)
end
ignored_keys() click to toggle source
# File lib/dynamoid/criteria/ignored_conditions_detector.rb, line 25
def ignored_keys
  @conditions.keys
    .group_by(&method(:key_to_field))
    .select { |_, ary| ary.size > 1 }
    .flat_map { |_, ary| ary[0..-2] }
end
key_to_field(key) click to toggle source
# File lib/dynamoid/criteria/ignored_conditions_detector.rb, line 32
def key_to_field(key)
  key.to_s.split('.')[0]
end