class Copyable::ColumnChecker

Public Instance Methods

columns(columns) click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 4
def columns(columns)
  @columns = columns.keys.map(&:to_s)
end

Private Instance Methods

columns_to_skip() click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 10
def columns_to_skip
  ['id', 'created_at', 'updated_at', 'created_on', 'updated_on']
end
expected_entries() click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 14
def expected_entries
  columns_in_database = model_class.column_names
  columns_in_database -= columns_to_skip
  columns_in_database
end
extra_entries_found(extra_entries) click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 33
def extra_entries_found(extra_entries)
  message = "The following columns were found in copyable's columns in the model '#{model_class.name}' "
  message << "but not found in the database table '#{model_class.table_name}':\n"
  extra_entries.each {|c| message << "  column: #{c}\n" }
  message << "Note that the #{columns_to_skip.join(', ')} columns are handled "
  message << "automatically and should not be listed.\n"
  raise ColumnError.new(message)
end
missing_entries_found(missing_entries) click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 24
def missing_entries_found(missing_entries)
  message = "The following columns were found in the database table '#{model_class.table_name}' "
  message << "but not found in copyable's columns in the model '#{model_class.name}':\n"
  missing_entries.each {|c| message << "  column: #{c}\n" }
  message << "Basically, if you just added columns to this database table, you need to update "
  message << "the copyable declaration to instruct it how to copy the new columns.\n"
  raise ColumnError.new(message)
end
provided_entries() click to toggle source
# File lib/copyable/syntax_checking/column_checker.rb, line 20
def provided_entries
  @columns
end