Module: Motor::BuildSchema::FindSearchableColumns
- Defined in:
- lib/motor/build_schema/find_searchable_columns.rb
Constant Summary collapse
- SELECT_COLUMNS_AMOUNT =
2
- COLUMN_TYPES =
BuildSchema::SEARCHABLE_COLUMN_TYPES
Class Method Summary collapse
Class Method Details
.call(model) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/motor/build_schema/find_searchable_columns.rb', line 11 def call(model) columns = find_searchable_columns(model) selected_columns = columns.grep(BuildSchema::FindDisplayColumn::DISPLAY_NAME_REGEXP).presence selected_columns ||= columns.first(SELECT_COLUMNS_AMOUNT) ([model.primary_key] + selected_columns).compact.sort end |
.find_searchable_columns(model) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/motor/build_schema/find_searchable_columns.rb', line 22 def find_searchable_columns(model) model.columns.map do |column| next unless column.type.in?(COLUMN_TYPES) next if column.respond_to?(:array?) && column.array? next if model.validators_on(column.name).any?(ActiveModel::Validations::InclusionValidator) column.name end.compact end |