Class: Cassanity::ArgumentGenerators::ColumnFamilyInsert

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

Instance Method Summary collapse

Instance Method Details

#call(args = {}) ⇒ Object

Internal



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/cassanity/argument_generators/column_family_insert.rb', line 6

def call(args = {})
  name    = args.fetch(:column_family_name)
  data    = args.fetch(:data)
  using   = args[:using] || {}
  keys    = data.keys
  binders = ['?'] * keys.size

  if (keyspace_name = args[:keyspace_name])
    name = "#{keyspace_name}.#{name}"
  end

  cql = "INSERT INTO #{name} (#{keys.join(', ')}) VALUES (#{binders.join(', ')})"

  unless using.empty?
    statements = []
    using.each do |key, value|
      statements << "#{key.upcase} #{value}"
    end
    cql << " USING #{statements.join(' AND ')}"
  end

  [cql, *data.values]
end