module Datagrid::ColumnNamesAttribute

Public Instance Methods

columns(*args, **options) click to toggle source

@!visibility private

Calls superclass method
# File lib/datagrid/column_names_attribute.rb, line 39
def columns(*args, **options)
  super(*selected_column_names(*args), **options)
end
mandatory_columns() click to toggle source

Returns a list of enabled columns with mandatory: true option If no mandatory columns specified than all of them considered mandatory @return [Array<Datagrid::Columns::Column>]

# File lib/datagrid/column_names_attribute.rb, line 46
def mandatory_columns
  available_columns.select {|c| c.mandatory? }
end
optional_columns() click to toggle source

Returns a list of enabled columns without mandatory: true option If no mandatory columns specified than all of them considered mandatory but not optional @return [Array<Datagrid::Columns::Column>]

# File lib/datagrid/column_names_attribute.rb, line 53
def optional_columns
  available_columns - mandatory_columns
end

Protected Instance Methods

columns_enabled_by_default() click to toggle source
# File lib/datagrid/column_names_attribute.rb, line 85
def columns_enabled_by_default
  columns_visibility_enabled? ? mandatory_columns : []
end
columns_visibility_enabled?() click to toggle source
# File lib/datagrid/column_names_attribute.rb, line 79
def columns_visibility_enabled?
  columns_array.any? do |column|
    column.mandatory_explicitly_set?
  end
end
optional_columns_select() click to toggle source
# File lib/datagrid/column_names_attribute.rb, line 59
def optional_columns_select
  optional_columns.map {|c| [c.header, c.name] }
end
selected_column_names(*args) click to toggle source
# File lib/datagrid/column_names_attribute.rb, line 63
def selected_column_names(*args)
  if args.any?
    args.compact!
    args.map! do |column|
      column.is_a?(Datagrid::Columns::Column) ? column.name : column.to_sym
    end
    args
  else
    if column_names && column_names.any?
      column_names + mandatory_columns.map(&:name)
    else
      columns_enabled_by_default.map(&:name)
    end
  end
end