class Dynamoid::Criteria::OverwrittenConditionsDetector

@private

Public Class Methods

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

Public Instance Methods

found?() click to toggle source
# File lib/dynamoid/criteria/overwritten_conditions_detector.rb, line 13
def found?
  @overwritten_keys.present?
end
warning_message() click to toggle source
# File lib/dynamoid/criteria/overwritten_conditions_detector.rb, line 17
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/overwritten_conditions_detector.rb, line 35
def ignored_conditions
  @conditions.slice(*@overwritten_keys.map(&:to_sym))
end
key_to_field(key) click to toggle source
# File lib/dynamoid/criteria/overwritten_conditions_detector.rb, line 31
def key_to_field(key)
  key.to_s.split('.')[0]
end
overwritten_keys() click to toggle source
# File lib/dynamoid/criteria/overwritten_conditions_detector.rb, line 26
def overwritten_keys
  new_fields = @new_conditions.keys.map(&method(:key_to_field))
  @conditions.keys.select { |key| key_to_field(key).in?(new_fields) }
end