module Foreigner::SchemaDumper::ClassMethods

Public Class Methods

remove_prefix_and_suffix(table_name) click to toggle source
# File lib/foreigner/schema_dumper.rb, line 31
def remove_prefix_and_suffix(table_name)
  table_name = table_name.to_s
  pre, suff = ActiveRecord::Base.table_name_prefix, ActiveRecord::Base.table_name_suffix
  if table_name.start_with?(pre) && table_name.end_with?(suff)
    table_name[pre.size..-(suff.size + 1)]
  else
    table_name
  end
end

Public Instance Methods

dump_foreign_key(foreign_key) click to toggle source
# File lib/foreigner/schema_dumper.rb, line 10
def dump_foreign_key(foreign_key)
  statement_parts = [ ('add_foreign_key ' + remove_prefix_and_suffix(foreign_key.from_table).inspect) ]
  statement_parts << remove_prefix_and_suffix(foreign_key.to_table).inspect
  statement_parts << ('name: ' + foreign_key.options[:name].inspect)

  if foreign_key.options[:column] != "#{remove_prefix_and_suffix(foreign_key.to_table).singularize}_id"
    statement_parts << ('column: ' + foreign_key.options[:column].inspect)
  end
  if foreign_key.options[:primary_key] != 'id'
    statement_parts << ('primary_key: ' + foreign_key.options[:primary_key].inspect)
  end
  if foreign_key.options[:dependent].present?
    statement_parts << ('dependent: ' + foreign_key.options[:dependent].inspect)
  end
  if foreign_key.options[:options].present?
    statement_parts << ('options: ' + foreign_key.options[:options].inspect)
  end

  statement_parts.join(', ')
end

Private Instance Methods

remove_prefix_and_suffix(table_name) click to toggle source
# File lib/foreigner/schema_dumper.rb, line 31
def remove_prefix_and_suffix(table_name)
  table_name = table_name.to_s
  pre, suff = ActiveRecord::Base.table_name_prefix, ActiveRecord::Base.table_name_suffix
  if table_name.start_with?(pre) && table_name.end_with?(suff)
    table_name[pre.size..-(suff.size + 1)]
  else
    table_name
  end
end