Class: DatastaxRails::Cql::CreateColumnFamily

Inherits:
Base
  • Object
show all
Defined in:
lib/datastax_rails/cql/create_column_family.rb

Overview

:nodoc:

Instance Method Summary collapse

Methods inherited from Base

#execute, #using

Constructor Details

#initialize(cf_name) ⇒ CreateColumnFamily

Returns a new instance of CreateColumnFamily.



4
5
6
7
8
9
# File 'lib/datastax_rails/cql/create_column_family.rb', line 4

def initialize(cf_name)
  @cf_name = cf_name
  @columns = {}
  @storage_parameters = []
  @primary_key = 'id'
end

Instance Method Details

#columns(columns) ⇒ Object



21
22
23
24
# File 'lib/datastax_rails/cql/create_column_family.rb', line 21

def columns(columns)
  @columns.merge! columns
  self
end

#comment=(comment) ⇒ Object

Migration helpers



27
28
29
# File 'lib/datastax_rails/cql/create_column_family.rb', line 27

def comment=(comment)
  with('comment' => comment)
end

#comparator=(comp) ⇒ Object



31
32
33
# File 'lib/datastax_rails/cql/create_column_family.rb', line 31

def comparator=(comp)
  with('comparator' => comp)
end

#default_validation=(val) ⇒ Object



35
36
37
# File 'lib/datastax_rails/cql/create_column_family.rb', line 35

def default_validation=(val)
  with('default_validation' => val)
end

#primary_key(pk) ⇒ Object



11
12
13
14
# File 'lib/datastax_rails/cql/create_column_family.rb', line 11

def primary_key(pk)
  @primary_key = pk
  self
end

#to_cqlObject



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/datastax_rails/cql/create_column_family.rb', line 39

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) ⇒ Object



16
17
18
19
# File 'lib/datastax_rails/cql/create_column_family.rb', line 16

def with(with)
  @storage_parameters << with
  self
end