Module: RailsTableHelpers

Includes:
RailsTypeHelpers
Included in:
RailsMigrationGenerator
Defined in:
lib/metarecord/generators/rails/migrations/table_helpers.rb

Instance Method Summary collapse

Methods included from RailsTypeHelpers

#get_record_type, #is_integer_type?, #on_unsupported_type, #rails_type_name, #type_options_string

Instance Method Details

#create_column(model_name, column_name, data) ⇒ Object



26
27
28
# File 'lib/metarecord/generators/rails/migrations/table_helpers.rb', line 26

def create_column model_name, column_name, data
  column_operation 'add', model_name, column_name, data
end

#create_table(model_name, columns) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/metarecord/generators/rails/migrations/table_helpers.rb', line 6

def create_table model_name, columns
  _append "create_table :#{get_table_name model_name} do |t|"
  indent do
    columns.each do |name, options|
      record_type = get_record_type options["type"]
      if record_type.nil?
        on_unsupported_type model_name, name, options["type"]
        next
      end
      src = "t."
      src += rails_type_name record_type
      src += " :#{name}"
      src += type_options_string record_type
      src += database_options_string options
      _append src
    end
  end
  _append "end"
end

#drop_column(model_name, column_name) ⇒ Object



38
39
40
# File 'lib/metarecord/generators/rails/migrations/table_helpers.rb', line 38

def drop_column model_name, column_name
  _append "remove_column :#{get_table_name model_name}, :#{column_name}"
end

#drop_table(model_name) ⇒ Object



34
35
36
# File 'lib/metarecord/generators/rails/migrations/table_helpers.rb', line 34

def drop_table model_name
  _append "drop_table :#{get_table_name model_name}"
end

#update_column(model_name, column_name, data) ⇒ Object



30
31
32
# File 'lib/metarecord/generators/rails/migrations/table_helpers.rb', line 30

def update_column model_name, column_name, data
  column_operation 'change', model_name, column_name, data
end