Class: Roda::Project::Bin::Generators::Migration::CodeBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/roda/project/bin/generators/migration/code_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(detection:, fields:) ⇒ CodeBuilder

Returns a new instance of CodeBuilder.



11
12
13
14
# File 'lib/roda/project/bin/generators/migration/code_builder.rb', line 11

def initialize(detection:, fields:)
  @detection = detection || {}
  @fields = fields || []
end

Instance Attribute Details

#detectionObject (readonly)

Returns the value of attribute detection.



9
10
11
# File 'lib/roda/project/bin/generators/migration/code_builder.rb', line 9

def detection
  @detection
end

#fieldsObject (readonly)

Returns the value of attribute fields.



9
10
11
# File 'lib/roda/project/bin/generators/migration/code_builder.rb', line 9

def fields
  @fields
end

Instance Method Details

#buildObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/roda/project/bin/generators/migration/code_builder.rb', line 16

def build
  action = detection[:action]

  case action
  when :create_table
    build_create_table
  when :add_columns
    build_add_columns
  when :drop_columns
    build_drop_columns
  when :create_join_table
    build_create_join_table
  else
    build_generic
  end
end