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