class TabulaRasa::Row
Constants
- ATTRIBUTES
NOTE: Need to handle ALL valid HTML5 attributes
Attributes
base[R]
options[R]
Public Class Methods
new(base, options = {}) { |self| ... }
click to toggle source
# File lib/tabula_rasa/row.rb, line 8 def initialize(base, options = {}, &block) @base = base @options = options yield self if block_given? end
Public Instance Methods
data(key, &block)
click to toggle source
# File lib/tabula_rasa/row.rb, line 21 def data(key, &block) options[:data] ||= {} options[:data][key] = block end
options_for(instance)
click to toggle source
# File lib/tabula_rasa/row.rb, line 14 def options_for(instance) { id: [id_value_for(instance), dom_id_for(instance)].compact.join(' ').squish, class: [class_value_for(instance), zebrastripe, dom_class_for(instance)].compact.join(' ').squish }.merge data_values_for(instance) end
Private Instance Methods
data_values_for(instance)
click to toggle source
# File lib/tabula_rasa/row.rb, line 58 def data_values_for(instance) return {} if options[:data].blank? options[:data].inject({}) do |m, x| key, value = x m["data-#{key}"] = value.call(instance) m end end
dom_class_for(instance)
click to toggle source
# File lib/tabula_rasa/row.rb, line 54 def dom_class_for(instance) dom_class(instance) if base.options[:dom_class] == true end
dom_id_for(instance)
click to toggle source
# File lib/tabula_rasa/row.rb, line 49 def dom_id_for(instance) return unless base.options[:dom_id] == true dom_id(instance) unless id_value_for(instance).present? end
zebrastripe()
click to toggle source
# File lib/tabula_rasa/row.rb, line 36 def zebrastripe case base.options[:zebra] when false # Nothing when nil cycle *%w{even odd} when Array cycle *base.options[:zebra] else raise ArgumentError, "Invalid value for options[:zebra]: #{base.options[:zebra]}. Should be array." end end