class Datagrid::Columns::Column
Attributes
data_block[RW]
grid_class[RW]
html_block[RW]
name[RW]
options[RW]
query[RW]
Public Class Methods
new(grid_class, name, query, options = {}, &block)
click to toggle source
# File lib/datagrid/columns/column.rb, line 36 def initialize(grid_class, name, query, options = {}, &block) self.grid_class = grid_class self.name = name.to_sym self.options = options if options[:html] == true self.html_block = block else self.data_block = block if options[:html].is_a? Proc self.html_block = options[:html] end end self.query = query end
Public Instance Methods
append_preload(relation)
click to toggle source
# File lib/datagrid/columns/column.rb, line 136 def append_preload(relation) return relation unless preload if preload.respond_to?(:call) return relation unless preload if preload.arity == 1 preload.call(relation) else relation.instance_exec(&preload) end else driver.default_preload(relation, preload) end end
data?()
click to toggle source
# File lib/datagrid/columns/column.rb, line 103 def data? self.data_block != nil end
data_value(model, grid)
click to toggle source
# File lib/datagrid/columns/column.rb, line 52 def data_value(model, grid) # backward compatibility method grid.data_value(name, model) end
driver()
click to toggle source
# File lib/datagrid/columns/column.rb, line 161 def driver grid_class.driver end
enabled?(grid)
click to toggle source
# File lib/datagrid/columns/column.rb, line 115 def enabled?(grid) ::Datagrid::Utils.process_availability(grid, options[:if], options[:unless]) end
generic_value(model, grid)
click to toggle source
# File lib/datagrid/columns/column.rb, line 132 def generic_value(model, grid) grid.generic_value(self, model) end
header()
click to toggle source
# File lib/datagrid/columns/column.rb, line 62 def header if header = options[:header] Datagrid::Utils.callable(header) else Datagrid::Utils.translate_from_namespace(:columns, grid_class, name) end end
html?()
click to toggle source
# File lib/datagrid/columns/column.rb, line 99 def html? options[:html] != false end
html_value(context, asset, grid)
click to toggle source
# File lib/datagrid/columns/column.rb, line 127 def html_value(context, asset, grid) grid.html_value(name, context, asset) end
inspect()
click to toggle source
# File lib/datagrid/columns/column.rb, line 119 def inspect "#<#{self.class} #{grid_class}##{name} #{options.inspect}>" end
label()
click to toggle source
# File lib/datagrid/columns/column.rb, line 58 def label self.options[:label] end
mandatory?()
click to toggle source
# File lib/datagrid/columns/column.rb, line 107 def mandatory? !! options[:mandatory] end
mandatory_explicitly_set?()
click to toggle source
# File lib/datagrid/columns/column.rb, line 111 def mandatory_explicitly_set? options.key?(:mandatory) end
order()
click to toggle source
# File lib/datagrid/columns/column.rb, line 70 def order if options.has_key?(:order) && options[:order] != true self.options[:order] else driver.default_order(grid_class.scope, name) end end
order_by_value(model, grid)
click to toggle source
# File lib/datagrid/columns/column.rb, line 82 def order_by_value(model, grid) if options[:order_by_value] == true grid.data_value(self, model) else Datagrid::Utils.apply_args(model, grid, &options[:order_by_value]) end end
order_by_value?()
click to toggle source
# File lib/datagrid/columns/column.rb, line 90 def order_by_value? !! options[:order_by_value] end
order_desc()
click to toggle source
# File lib/datagrid/columns/column.rb, line 94 def order_desc return nil unless order self.options[:order_desc] end
preload()
click to toggle source
# File lib/datagrid/columns/column.rb, line 150 def preload preload = options[:preload] if preload == true && driver.can_preload?(grid_class.scope, name) name else preload end end
supports_order?()
click to toggle source
# File lib/datagrid/columns/column.rb, line 78 def supports_order? order || order_by_value? end
to_s()
click to toggle source
# File lib/datagrid/columns/column.rb, line 123 def to_s header end