Class: WebammToRails::Sources::Migrations::ActiveStorageDefinition::Presenter

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

Instance Method Summary collapse

Constructor Details

#initialize(waml_definition:) ⇒ Presenter

Returns a new instance of Presenter.



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

def initialize(waml_definition:)
  @waml_definition = waml_definition
end

Instance Method Details

#file_name(migration_timestamp) ⇒ Object



10
11
12
# File 'lib/webamm_to_rails/sources/migrations/active_storage_definition/presenter.rb', line 10

def file_name(migration_timestamp)
  "db/migrate/#{migration_timestamp}_create_active_storage_tables.rb"
end

#renderObject



14
15
16
17
18
19
20
# File 'lib/webamm_to_rails/sources/migrations/active_storage_definition/presenter.rb', line 14

def render
  template_path = File.expand_path('template.erb', __dir__)
  template_content = File.read(template_path)
  raw_content = ERB.new(template_content, trim_mode: '-').result(instance_eval { binding })

  ::WebammToRails::Utils::FormatCode.call(raw_content)
end

#render?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/webamm_to_rails/sources/migrations/active_storage_definition/presenter.rb', line 22

def render?
  @waml_definition.database.schema.any? { |table| table.columns.any? { |column| column.type == 'file' } }
end