class DynamicScaffold::List::Item

Attributes

classnames[R]
html_attributes[R]

Public Class Methods

new(config, *args, block) click to toggle source
# File lib/dynamic_scaffold/list/item.rb, line 6
def initialize(config, *args, block)
  @config = config
  @html_attributes = args.extract_options!
  @classnames = @html_attributes.delete(:class)
  @attribute_name = args[0]
  @block = block
  @show_only = nil
end

Public Instance Methods

label(label = nil) click to toggle source
# File lib/dynamic_scaffold/list/item.rb, line 34
def label(label = nil)
  if label
    @label = label
    self
  elsif @label
    @label
  elsif @attribute_name
    @config.model.human_attribute_name @attribute_name
  end
end
show?(view, record) click to toggle source
# File lib/dynamic_scaffold/list/item.rb, line 20
def show?(view, record)
  return true if @show_only.nil?

  view.instance_exec(record, &@show_only)
end
show_only(&block) click to toggle source
# File lib/dynamic_scaffold/list/item.rb, line 15
def show_only(&block)
  @show_only = block
  self
end
value(view, record) click to toggle source
# File lib/dynamic_scaffold/list/item.rb, line 26
def value(view, record)
  if @block
    view.instance_exec(record, @attribute_name, &@block)
  else
    record.public_send(@attribute_name)
  end
end