Class: Localtower::Generators::ServiceObjects::InsertDefaults

Inherits:
Object
  • Object
show all
Defined in:
lib/localtower/generators/service_objects/insert_defaults.rb

Constant Summary collapse

DEFAULTS =
{
  '(no default value)' => '',
  "empty string ('')" => "''",
  'zero (0)' => '0',
  'true' => 'true',
  'false' => 'false',
  'empty array ([])' => '[]',
  'empty hash ({})' => '{}',
  'nil' => 'nil',
}

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ InsertDefaults

Returns a new instance of InsertDefaults.



16
17
18
# File 'lib/localtower/generators/service_objects/insert_defaults.rb', line 16

def initialize(attributes)
  @attributes = attributes
end

Instance Method Details

#callObject



20
21
22
23
24
25
26
27
28
# File 'lib/localtower/generators/service_objects/insert_defaults.rb', line 20

def call
  attributes.each do |attribute|
    attribute.each do |attr_key, attr_value|
      line_str = File.read(Localtower::Tools.last_migration).match(/((.*)t\.(.*)\:#{attr_key})/)[0]
      content = File.read(Localtower::Tools.last_migration).gsub(line_str, "#{line_str}, default: #{attr_value}")
      File.write(Localtower::Tools.last_migration, content)
    end
  end
end