class CassandraRecord::Statement
Public Class Methods
create(table_name, columns, values, options={})
click to toggle source
# File lib/cassandra_record/statement.rb, line 15 def create(table_name, columns, values, options={}) cql = <<-CQL INSERT INTO #{table_name} (#{columns.join(", ")}) VALUES (#{value_placeholders(values).join(", ")}) CQL cql.tap do |statement| statement << ttl(options[:ttl]) if options.has_key?(:ttl) end end
where(table_name, options={})
click to toggle source
# File lib/cassandra_record/statement.rb, line 4 def where(table_name, options={}) cql = base_where_query(table_name) if options.present? cql << 'WHERE ' cql << parse_where_clause_options(options) end cql << ';' end
Private Class Methods
base_where_query(table_name)
click to toggle source
# File lib/cassandra_record/statement.rb, line 40 def base_where_query(table_name) cql = <<-CQL SELECT * FROM #{table_name} CQL end
parse_where_clause_options(options)
click to toggle source
# File lib/cassandra_record/statement.rb, line 47 def parse_where_clause_options(options) return options if options.is_a?(String) clause_count = 0 "".tap do |cql| options.each do |column, value| cql << ' AND' if clause_count > 0 cql << " #{column.to_s} = #{Cassandra::Util.encode_object(value)}" clause_count += 1 end end end
ttl(secs)
click to toggle source
# File lib/cassandra_record/statement.rb, line 28 def ttl(secs) "USING TTL #{secs}" end
value_placeholders(values)
click to toggle source
# File lib/cassandra_record/statement.rb, line 32 def value_placeholders(values) [].tap do |arr| values.count.times do arr << "?" end end end