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