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