Class: DatastaxRails::Cql::AlterColumnFamily

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

Overview

:nodoc:

Instance Method Summary collapse

Methods inherited from Base

#execute, #using

Constructor Details

#initialize(cf_name) ⇒ AlterColumnFamily

Returns a new instance of AlterColumnFamily.



4
5
6
7
# File 'lib/datastax_rails/cql/alter_column_family.rb', line 4

def initialize(cf_name)
  @cf_name = cf_name
  @action = nil
end

Instance Method Details

#add(column) ⇒ Object



9
10
11
12
13
# File 'lib/datastax_rails/cql/alter_column_family.rb', line 9

def add(column)
  set_column(column)
  @action = 'ADD'
  self
end

#alter(column) ⇒ Object



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

def alter(column)
  set_column(column)
  @action = 'ALTER'
  self
end

#drop(column) ⇒ Object



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

def drop(column)
  set_column(column)
  @action = 'DROP'
  self
end

#rename(col1, col2) ⇒ Object



27
28
29
30
31
# File 'lib/datastax_rails/cql/alter_column_family.rb', line 27

def rename(col1, col2)
  set_column([col1, col2])
  @action = 'RENAME'
  self
end

#set_column(column) ⇒ Object

rubocop:disable Style/AccessorMethodName



33
34
35
36
# File 'lib/datastax_rails/cql/alter_column_family.rb', line 33

def set_column(column) # rubocop:disable Style/AccessorMethodName
  fail ArgumentError, 'Only one operation allowed per CQL call' if @action
  @column = column
end

#to_cqlObject



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

def to_cql
  stmt = "ALTER COLUMNFAMILY #{@cf_name} "
  if (@action == 'ALTER')
    stmt << "ALTER #{@column.keys.first} TYPE #{@column.values.first}"
  elsif (@action == 'ADD')
    stmt << "ADD #{@column.keys.first} #{@column.values.first}"
  elsif (@action == 'DROP')
    stmt << "DROP #{@column}"
  elsif (@action == 'RENAME')
    stmt << "RENAME \"#{@column[0]}\" TO \"#{@column[1]}\""
  end

  stmt
end