class DatastaxRails::Cql::CreateColumnFamily

CQL generation for CREATE COLUMNFAMILY

Public Class Methods

new(cf_name) click to toggle source
# File lib/datastax_rails/cql/create_column_family.rb, line 5
def initialize(cf_name)
  @cf_name = cf_name
  @columns = {}
  @storage_parameters = []
  @primary_key = 'id'
end

Public Instance Methods

columns(columns) click to toggle source
# File lib/datastax_rails/cql/create_column_family.rb, line 22
def columns(columns)
  @columns.merge! columns
  self
end
comment=(comment) click to toggle source

Migration helpers

# File lib/datastax_rails/cql/create_column_family.rb, line 28
def comment=(comment)
  with('comment' => comment)
end
comparator=(comp) click to toggle source
# File lib/datastax_rails/cql/create_column_family.rb, line 32
def comparator=(comp)
  with('comparator' => comp)
end
default_validation=(val) click to toggle source
# File lib/datastax_rails/cql/create_column_family.rb, line 36
def default_validation=(val)
  with('default_validation' => val)
end
primary_key(pk) click to toggle source
# File lib/datastax_rails/cql/create_column_family.rb, line 12
def primary_key(pk)
  @primary_key = pk
  self
end
to_cql() click to toggle source
# File lib/datastax_rails/cql/create_column_family.rb, line 40
def to_cql
  stmt = "CREATE COLUMNFAMILY #{@cf_name} ("
  @columns.each do |name, type|
    stmt << "#{name} #{type}, "
  end
  stmt << "PRIMARY KEY (#{@primary_key}))"
  unless @storage_parameters.empty?
    stmt << ' WITH '
    stmt << @storage_parameters.flatten.join(' AND ')
  end

  stmt
end
with(with) click to toggle source
# File lib/datastax_rails/cql/create_column_family.rb, line 17
def with(with)
  @storage_parameters << with
  self
end