Class: Cassanity::ArgumentGenerators::SetClause
- Inherits:
-
Object
- Object
- Cassanity::ArgumentGenerators::SetClause
- Defined in:
- lib/cassanity/argument_generators/set_clause.rb
Instance Method Summary collapse
-
#call(args = {}) ⇒ Object
Internal.
Instance Method Details
#call(args = {}) ⇒ Object
Internal
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/cassanity/argument_generators/set_clause.rb', line 9 def call(args = {}) set = args.fetch(:set) cql, variables, sets = '', [], [] set.each do |key, value| case value when Cassanity::Increment, Cassanity::Decrement, Cassanity::Addition, Cassanity::Removal, Cassanity::SetAddition, Cassanity::SetRemoval sets << "#{key} = #{key} #{value.symbol} ?" variables << value.value when Cassanity::CollectionItem sets << "#{key}[?] = ?" variables << value.key << value.value else sets << "#{key} = ?" variables << value end end cql << " SET #{sets.join(', ')}" [cql, *variables] end |