module Motor::BuildSchema::FindDisplayColumn

Constants

DISPLAY_NAMES
DISPLAY_NAME_REGEXP

Public Instance Methods

call(model) click to toggle source
# File lib/motor/build_schema/find_display_column.rb, line 42
def call(model)
  column_names = fetch_column_names(model)

  select_column_name(column_names)
end
fetch_column_names(model) click to toggle source
# File lib/motor/build_schema/find_display_column.rb, line 55
def fetch_column_names(model)
  model.columns.map do |column|
    next unless column.type.in?(BuildSchema::SEARCHABLE_COLUMN_TYPES)
    next if column.respond_to?(:array?) && column.array?

    column.name
  end.compact
end
select_column_name(column_names) click to toggle source
# File lib/motor/build_schema/find_display_column.rb, line 48
def select_column_name(column_names)
  name   = column_names.find { |column_name| column_name.in?(DISPLAY_NAMES) }
  name ||= column_names.find { |column_name| column_name.match?(DISPLAY_NAME_REGEXP) }

  name
end