module CsvRowModel::Export::DynamicColumns
Public Instance Methods
define_dynamic_attribute_method(column_name)
click to toggle source
Define default attribute method for a dynamic_column
@param column_name [Symbol] the cell’s column_name
# File lib/csv_row_model/export/dynamic_columns.rb, line 31 def define_dynamic_attribute_method(column_name) define_method(column_name) do context.public_send(column_name).map do |header_model| self.class.format_cell( public_send(self.class.singular_dynamic_attribute_method_name(column_name), header_model), column_name, self.class.dynamic_index(column_name), context ) end end define_method(singular_dynamic_attribute_method_name(column_name)) { |header_model| header_model } end
dynamic_column(column_name, options={})
click to toggle source
See {Model::DynamicColumns#dynamic_column}
Calls superclass method
# File lib/csv_row_model/export/dynamic_columns.rb, line 24 def dynamic_column(column_name, options={}) super define_dynamic_attribute_method(column_name) end
formatted_attributes()
click to toggle source
See Model::Export#formatted_attributes
Calls superclass method
# File lib/csv_row_model/export/dynamic_columns.rb, line 16 def formatted_attributes super.merge(formatted_attributes_from_column_names(self.class.dynamic_column_names)) end
to_row()
click to toggle source
@return [Array] an array of public_send(column_name) of the CSV model
Calls superclass method
# File lib/csv_row_model/export/dynamic_columns.rb, line 11 def to_row super.flatten end