class ActiveList::Definition::AttributeColumn

Attributes

column[R]
computation_method[R]
label_method[R]
sort_column[R]
value_method[R]

Public Class Methods

new(table, name, options = {}) click to toggle source
Calls superclass method
# File lib/active_list/definition/attribute_column.rb, line 6
def initialize(table, name, options = {})
  super(table, name, options)
  @label_method = (options[:label_method] || @name).to_sym
  @value_method = if options[:value_method].present?
                    options[:value_method].to_sym
                  else
                    @label_method.to_s.gsub('human_', '').to_sym
                  end
  @sort_column = get_sort_column
  @computation_method = options[:on_select]
  @column = @table.model.columns_hash[@label_method.to_s]
end

Public Instance Methods

class_name() click to toggle source

Returns the class name of the used model

# File lib/active_list/definition/attribute_column.rb, line 67
def class_name
  "RECORD.class.name.tableize".c
end
computable?() click to toggle source
# File lib/active_list/definition/attribute_column.rb, line 75
def computable?
  !computation_method.nil?
end
datum_code(record = 'record_of_the_death', child = false) click to toggle source

Code for rows

# File lib/active_list/definition/attribute_column.rb, line 20
def datum_code(record = 'record_of_the_death', child = false)
  code = ''
  code = if child
           if @options[:children].is_a?(FalseClass)
             'nil'
           else
             "#{record}.#{table.options[:children]}.#{@options[:children] || @label_method}"
           end
         else
           "#{record}.#{@label_method}"
         end
  code.c
end
datum_value(record = 'record of the death', child = false) click to toggle source
# File lib/active_list/definition/attribute_column.rb, line 34
def datum_value(record = 'record of the death', child = false)
  code = ''
  code = if child
           if @options[:childer].is_a?(FalseClass)
             'nil'
           else
             "#{record}.#{table.options[:children]}.#{@options[:children] || @value_method}"
           end
         else
           "#{record}.#{@value_method}"
         end
  code.c
end
enumerize?() click to toggle source
# File lib/active_list/definition/attribute_column.rb, line 79
def enumerize?
  table.model.respond_to?(:enumerized_attributes) &&
    !table.model.enumerized_attributes[@label_method].nil?
end
get_sort_column() click to toggle source
# File lib/active_list/definition/attribute_column.rb, line 48
def get_sort_column
  selects = @table.options[:select] || {}
  selects_label = selects.find { |sql_name, name| name.to_s == @label_method.to_s }&.last
  selects_name = selects.find { |sql_name, name| name.to_s == @name.to_s }&.last
  if (selects_label || selects_name) && options[:sort].blank?
    sort_column = (selects_label || selects_name)
  else
    sort_column = options[:sort]
    sort_column ||= if @table.model.columns_hash[@label_method.to_s]
                       @label_method
                     elsif @table.model.columns_hash[@name.to_s]
                       @name
                     end
    sort_column &&= "#{@table.model.table_name}.#{sort_column}"
  end
  sort_column
end
sort_expression() click to toggle source
# File lib/active_list/definition/attribute_column.rb, line 84
def sort_expression
  @sort_column
end
sortable?() click to toggle source
# File lib/active_list/definition/attribute_column.rb, line 71
def sortable?
  !sort_column.nil?
end