Class: Datagrid::Renderer
- Inherits:
-
Object
- Object
- Datagrid::Renderer
- Defined in:
- lib/datagrid/renderer.rb
Overview
:nodoc:
Class Method Summary collapse
Instance Method Summary collapse
- #_safe(string) ⇒ Object
- #form_for(grid, options = {}) ⇒ Object
- #format_value(grid, column, asset) ⇒ Object
- #header(grid, options = {}) ⇒ Object
-
#initialize(template) ⇒ Renderer
constructor
A new instance of Renderer.
- #order_for(grid, column) ⇒ Object
- #rows(grid, assets, options = {}) ⇒ Object
- #table(grid, *args) ⇒ Object
Constructor Details
#initialize(template) ⇒ Renderer
Returns a new instance of Renderer.
10 11 12 |
# File 'lib/datagrid/renderer.rb', line 10 def initialize(template) @template = template end |
Class Method Details
.for(template) ⇒ Object
6 7 8 |
# File 'lib/datagrid/renderer.rb', line 6 def self.for(template) new(template) end |
Instance Method Details
#_safe(string) ⇒ Object
71 72 73 |
# File 'lib/datagrid/renderer.rb', line 71 def _safe(string) string.respond_to?(:html_safe) ? string.html_safe : string end |
#form_for(grid, options = {}) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/datagrid/renderer.rb', line 29 def form_for(grid, = {}) [:method] ||= :get [:html] ||= {} [:html][:class] ||= "datagrid-form #{@template.dom_class(grid)}" @template.render :partial => "datagrid/form", :locals => {:grid => grid, :options => } end |
#format_value(grid, column, asset) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/datagrid/renderer.rb', line 14 def format_value(grid, column, asset) if column.is_a?(String) || column.is_a?(Symbol) column = grid.column_by_name(column) end value = column.html_value(@template, asset, grid) url = column.[:url] && column.[:url].call(asset) if url @template.link_to(value, url) else _safe(value) end end |
#header(grid, options = {}) ⇒ Object
53 54 55 56 57 |
# File 'lib/datagrid/renderer.rb', line 53 def header(grid, = {}) [:order] = true unless .has_key?(:order) @template.render :partial => "datagrid/head", :locals => {:grid => grid, :options => } end |
#order_for(grid, column) ⇒ Object
67 68 69 |
# File 'lib/datagrid/renderer.rb', line 67 def order_for(grid, column) @template.render :partial => "datagrid/order_for", :locals => { :grid => grid, :column => column } end |
#rows(grid, assets, options = {}) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/datagrid/renderer.rb', line 59 def rows(grid, assets, = {}) result = assets.map do |asset| @template.render :partial => "datagrid/row", :locals => {:grid => grid, :options => , :asset => asset} end.join _safe(result) end |
#table(grid, *args) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/datagrid/renderer.rb', line 36 def table(grid, *args) = args. [:html] ||= {} [:html][:class] ||= "datagrid #{@template.dom_class(grid)}" if [:cycle] ::Datagrid::Utils.warn_once("datagrid_table cycle option is deprecated. Use css to style odd/even rows instead.") end assets = args.any? ? args.shift : grid.assets paginate = [:paginate] if paginate ::Datagrid::Utils.warn_once(":paginate option is deprecated. Look to https://github.com/bogdan/datagrid/wiki/Frontend.") assets = assets.paginate(paginate) end @template.render :partial => "datagrid/table", :locals => {:grid => grid, :options => , :assets => assets} end |