Module: Believer::CqlHelper

Included in:
Insert, Update, WhereClause
Defined in:
lib/believer/cql_helper.rb

Overview

Contains various methods for dealing with CQL statements

Constant Summary collapse

CQL_TIMESTAMP_FORMAT =
'%Y-%m-%d %H:%M:%S%z'

Instance Method Summary collapse

Instance Method Details

#to_cql_literal(value) ⇒ Object

Converts a value to a CQL literal

Parameters:

  • value (Object)

    the value to convert



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/believer/cql_helper.rb', line 12

def to_cql_literal(value)
  return 'NULL' if value.nil?
  return "'#{value}'" if value.is_a?(String)
  return "'#{value}'" if value.is_a?(Symbol)
  return "#{value}" if value.is_a?(Numeric)
  return "'#{value.strftime(CQL_TIMESTAMP_FORMAT)}'" if value.is_a?(Time) || value.is_a?(DateTime)
  #return "#{value.to_i * 1000}" if value.is_a?(Time) || value.is_a?(DateTime)

  if value.is_a?(Counter)

  end

  # Set
  if value.is_a?(Set)
    return "{#{value.map {|v| to_cql_literal(v)}.join(',')}}"
  end

  # Map
  if value.is_a?(Hash)
    keys = value.keys
    return "{#{keys.map {|k| "#{to_cql_literal(k)} : #{to_cql_literal(value[k])}" }.join(',')} }"
  end

  # List
  return "[#{value.map {|v| to_cql_literal(v)}.join(',')}]" if value.is_a?(Array)

  return nil
end