module Datagrid::ColumnNamesAttribute
Public Instance Methods
Source
# File lib/datagrid/column_names_attribute.rb, line 42 def columns(*args, **options) super(*selected_column_names(*args), **options) end
@!visibility private
Calls superclass method
Source
# File lib/datagrid/column_names_attribute.rb, line 49 def mandatory_columns available_columns.select(&:mandatory?) end
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>]
Source
# File lib/datagrid/column_names_attribute.rb, line 56 def optional_columns available_columns - mandatory_columns end
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>]
Protected Instance Methods
Source
# File lib/datagrid/column_names_attribute.rb, line 84 def columns_enabled_by_default columns_visibility_enabled? ? mandatory_columns : [] end
Source
# File lib/datagrid/column_names_attribute.rb, line 80 def columns_visibility_enabled? columns_array.any?(&:mandatory_explicitly_set?) end
Source
# File lib/datagrid/column_names_attribute.rb, line 62 def optional_columns_select optional_columns.map { |c| [c.header, c.name] } end
Source
# File lib/datagrid/column_names_attribute.rb, line 66 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 elsif column_names&.any? column_names + mandatory_columns.map(&:name) else columns_enabled_by_default.map(&:name) end end