class Greedo::GridHelper::Grid
Constants
- Column
- Field
- Row
Attributes
empty_message_text[R]
fields[R]
order[R]
order_by[R]
paginator[RW]
path_params[R]
presenter[R]
view_context[R]
Public Class Methods
new(view_context:, order: nil, order_by: nil, path_params: nil)
click to toggle source
# File lib/greedo/grid_helper.rb, line 8 def initialize(view_context:, order: nil, order_by: nil, path_params: nil) @view_context = view_context @row_id = ->(record) { default_row_id(record) } @fields = [] @presenter = proc{|r| r} @empty_message_text = "No data to show." @order = order @order_by = order_by @path_params = path_params end
Public Instance Methods
column(name, label: name.to_s.humanize, sort: nil, &block)
click to toggle source
# File lib/greedo/grid_helper.rb, line 37 def column(name, label: name.to_s.humanize, sort: nil, &block) if sort.nil? && name.is_a?(Symbol) sort = name.to_s end if block renderer = ->(record) { view_context.capture(present(record), &block) } else renderer = ->(record) { present(record).public_send(name) } end fields << Field.new(name, label, renderer, order, order_by, view_context, sort, path_params) nil end
configure() { |self| ... }
click to toggle source
# File lib/greedo/grid_helper.rb, line 19 def configure yield self if block_given? end
custom_empty_message(empty_message_text)
click to toggle source
# File lib/greedo/grid_helper.rb, line 23 def custom_empty_message(empty_message_text) @empty_message_text = empty_message_text nil end
empty?()
click to toggle source
# File lib/greedo/grid_helper.rb, line 71 def empty? records.empty? end
empty_message()
click to toggle source
# File lib/greedo/grid_helper.rb, line 79 def empty_message view_context.content_tag(:p) { empty_message_text } end
headers()
click to toggle source
# File lib/greedo/grid_helper.rb, line 67 def headers fields end
ordered_by()
click to toggle source
# File lib/greedo/grid_helper.rb, line 28 def ordered_by fields.find(&:ordered_by?) || Field.new end
present(record)
click to toggle source
# File lib/greedo/grid_helper.rb, line 57 def present(record) @presenter.call(record) end
row_id(&block)
click to toggle source
# File lib/greedo/grid_helper.rb, line 32 def row_id(&block) @row_id = block nil end
rows()
click to toggle source
# File lib/greedo/grid_helper.rb, line 61 def rows records.map do |record| Row.new(record, @row_id, fields) end end
show_pagination?()
click to toggle source
# File lib/greedo/grid_helper.rb, line 75 def show_pagination? paginator.show? end
Private Instance Methods
default_row_id(record)
click to toggle source
# File lib/greedo/grid_helper.rb, line 89 def default_row_id(record) snake_class = record.class.name.underscore.gsub("_", "-") "#{snake_class}-#{record.id}" end
records()
click to toggle source
# File lib/greedo/grid_helper.rb, line 85 def records paginator.records end