Class: WebammToRails::Sources::Migrations::IndexDefinition::Presenter

Inherits:
Object
  • Object
show all
Defined in:
lib/webamm_to_rails/sources/migrations/index_definition/presenter.rb

Instance Method Summary collapse

Constructor Details

#initialize(table_name:, index:) ⇒ Presenter

Returns a new instance of Presenter.



6
7
8
9
# File 'lib/webamm_to_rails/sources/migrations/index_definition/presenter.rb', line 6

def initialize(table_name:, index:)
  @table_name = table_name
  @index = index
end

Instance Method Details

#renderObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/webamm_to_rails/sources/migrations/index_definition/presenter.rb', line 11

def render
  base_def = if @index.columns.size == 1
    "add_index :#{@table_name}, :#{@index.columns.first}"
  else
    "add_index :#{@table_name}, %i[#{@index.columns.join(' ')}]"
  end

  base_def += ", unique: true" if @index.unique

  base_def
end