Class: ActiveGrid::Column

Inherits:
Object
  • Object
show all
Defined in:
app/lib/active_grid/column.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(view, name, options = {}, &block) ⇒ Column

Returns a new instance of Column.



5
6
7
# File 'app/lib/active_grid/column.rb', line 5

def initialize(view, name, options = {}, &block)
  @view, @name, @options, @block = view, name, options, block
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



3
4
5
# File 'app/lib/active_grid/column.rb', line 3

def block
  @block
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'app/lib/active_grid/column.rb', line 3

def name
  @name
end

#optionsObject (readonly)

Returns the value of attribute options.



3
4
5
# File 'app/lib/active_grid/column.rb', line 3

def options
  @options
end

#viewObject (readonly)

Returns the value of attribute view.



3
4
5
# File 'app/lib/active_grid/column.rb', line 3

def view
  @view
end

Instance Method Details

#filterObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/lib/active_grid/column.rb', line 14

def filter
  tag_options = {}
  tag_options["data-activegrid-filter-field"] = name
  tag_options["data-activegrid-filter"] = true

  case filter = options[:filter]
  when "string"
    view.text_field_tag("activegird_filter_#{name}", nil, tag_options)
  when Array
    view.select_tag("activegrid_filter_#{name}", view.options_for_select(options[:blank_filter] ? ["#{options[:blank_filter]}"] + filter : filter), tag_options)
  end
end

#headerObject



9
10
11
12
# File 'app/lib/active_grid/column.rb', line 9

def header
  # TODO: localization?
  options[:header] || name.to_s.titleize
end

#tag_optionsObject



27
28
29
30
31
32
33
34
35
36
# File 'app/lib/active_grid/column.rb', line 27

def tag_options
  tag_options = {}

  if options[:sortable]
    tag_options["class"] = "activegrid-sort"
    tag_options["data-activegrid-sort-field"] = name
    tag_options["data-activegrid-sort"] = options[:sortable]
  end
  tag_options
end

#valueObject



38
39
40
# File 'app/lib/active_grid/column.rb', line 38

def value
  view.capture(&block)
end