class Dome::Exhibit

Constants

TIMESTAMP_ATTRS

Attributes

model[R]

Public Class Methods

decorate_methods(*names, &block) click to toggle source

decorate_methods(*names) { |x, *ys| … }

# File lib/dome/exhibit.rb, line 20
def decorate_methods(*names, &block)
  names.each do |name|
    define_method(name) { |*xs| instance_exec(@model.send(name), *xs, &block) }
  end
end
localize_timestamps(attrs = TIMESTAMP_ATTRS, format: :default) click to toggle source
# File lib/dome/exhibit.rb, line 26
def localize_timestamps(attrs = TIMESTAMP_ATTRS, format: :default)
  decorate_methods(*attrs) { |x| l(x, format: format) }
end
new(_model, view_context = nil) click to toggle source
Calls superclass method
# File lib/dome/exhibit.rb, line 31
def initialize(_model, view_context = nil)
  raise 'Decorationg Nil object not allowed!' unless _model

  @model, @view_context = _model, view_context
  super(_model)
end
view_path() click to toggle source
# File lib/dome/exhibit.rb, line 15
def view_path
  "app/exhibits"
end

Public Instance Methods

attr_name_with_value(attr_name, separator: ': ') click to toggle source
# File lib/dome/exhibit.rb, line 46
def attr_name_with_value(attr_name, separator: ': ')
  unless self.class.respond_to?(:human_attribute_name)
    raise "You must implement 'human_attribute_name' method on a class"
  end
  [self.class.human_attribute_name(attr_name), send(attr_name)].join(separator)
end
attr_names_with_values(*attr_names, separator: ': ') click to toggle source
# File lib/dome/exhibit.rb, line 53
def attr_names_with_values(*attr_names, separator: ': ')
  attr_names.map { |name| attr_name_with_value(name, separator: separator) }
end
class() click to toggle source
# File lib/dome/exhibit.rb, line 38
def class
  model.class
end
to_model() click to toggle source
# File lib/dome/exhibit.rb, line 42
def to_model
  self
end