class Nandi::ForeignKeyGenerator

Attributes

add_foreign_key_name[R]
add_reference_name[R]
validate_foreign_key_name[R]

Public Instance Methods

add_foreign_key() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 37
def add_foreign_key
  self.table = table.to_sym
  self.target = target.to_sym

  @add_foreign_key_name = "add_foreign_key_on_#{table}_to_#{target}"

  template(
    "add_foreign_key.rb",
    "#{base_path}/#{timestamp(1)}_#{add_foreign_key_name}.rb",
  )
end
add_reference() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 24
def add_reference
  return if options["no_create_column"]

  self.table = table.to_sym

  @add_reference_name = "add_reference_on_#{table}_to_#{target}"

  template(
    "add_reference.rb",
    "#{base_path}/#{timestamp}_#{add_reference_name}.rb",
  )
end
validate_foreign_key() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 49
def validate_foreign_key
  self.table = table.to_sym
  self.target = target.to_sym

  @validate_foreign_key_name = "validate_foreign_key_on_#{table}_to_#{target}"

  template(
    "validate_foreign_key.rb",
    "#{base_path}/#{timestamp(2)}_#{validate_foreign_key_name}.rb",
  )
end

Private Instance Methods

any_options?() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 87
def any_options?
  options["name"] || options["column"]
end
base_path() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 71
def base_path
  Nandi.config.migration_directory || "db/safe_migrations"
end
column() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 83
def column
  options["column"]&.to_sym
end
name() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 79
def name
  options["name"]&.to_sym || :"#{@table}_#{@target}_fk"
end
reference_name() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 67
def reference_name
  "#{target.singularize}_id".to_sym
end
timestamp(offset = 0) click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 75
def timestamp(offset = 0)
  (Time.now.utc + offset).strftime("%Y%m%d%H%M%S")
end
type() click to toggle source
# File lib/generators/nandi/foreign_key/foreign_key_generator.rb, line 63
def type
  options["type"].to_sym
end