Class: Cassanity::ArgumentGenerators::SetClause

Inherits:
Object
  • Object
show all
Defined in:
lib/cassanity/argument_generators/set_clause.rb

Instance Method Summary collapse

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
# 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
      sets << "#{key} = #{key} #{value.symbol} ?"
      variables << value.value
    else
      sets << "#{key} = ?"
      variables << value
    end
  end
  cql << " SET #{sets.join(', ')}"

  [cql, *variables]
end