Class: RailsZen::WriteToMigration

Inherits:
WriteToModel show all
Defined in:
lib/rails_zen/write_to_files/write_to_migration.rb

Instance Attribute Summary

Attributes inherited from WriteToModel

#attr_type, #model_name, #name, #scope_attr, #type_based_validators, #validator

Instance Method Summary collapse

Methods inherited from WriteToModel

#adding_to_file!

Methods included from ModelLeveLValidation

#validate_belongs_to, #validate_integer, #validate_numericality

Instance Method Details

#append_to_line(line) ⇒ Object



15
16
17
18
19
# File 'lib/rails_zen/write_to_files/write_to_migration.rb', line 15

def append_to_line(line)
  gsub_file file_name, /t.#{attr_type}.+#{name}.*$/ do |match|
    match = line
  end
end

#file_nameObject



21
22
23
24
# File 'lib/rails_zen/write_to_files/write_to_migration.rb', line 21

def file_name
  Dir.glob("db/migrate/*create_#{@model_name.pluralize}.rb")[0]
  # need to use pluralize here
end

#write!Object



6
7
8
9
10
11
12
13
14
# File 'lib/rails_zen/write_to_files/write_to_migration.rb', line 6

def write!
  if @validator
    line = send(@validator)
    append_to_line(line)
  end
  if scope_attr.any?
    inject_into_file file_name, "t.index #{scope_attr.to_s}\n", before: "t.timestamps"
  end
end