class Rodakase::View::Part

Attributes

_data[R]
_value[R]
renderer[R]

Public Class Methods

new(renderer, data) click to toggle source
# File lib/rodakase/view/part.rb, line 10
def initialize(renderer, data)
  @renderer = renderer
  @_data = data
  @_value = data.values[0]
end

Public Instance Methods

[](key) click to toggle source
# File lib/rodakase/view/part.rb, line 16
def [](key)
  _value[key]
end
each(&block) click to toggle source
# File lib/rodakase/view/part.rb, line 20
def each(&block)
  _value.each(&block)
end
render(path, &block) click to toggle source
# File lib/rodakase/view/part.rb, line 24
def render(path, &block)
  renderer.render(path, self, &block)
end
respond_to_missing?(meth, include_private = false) click to toggle source
Calls superclass method
# File lib/rodakase/view/part.rb, line 32
def respond_to_missing?(meth, include_private = false)
  super || _data.key?(meth) || template?(meth)
end
template?(name) click to toggle source
# File lib/rodakase/view/part.rb, line 28
def template?(name)
  renderer.lookup("_#{name}")
end

Private Instance Methods

method_missing(meth, *args, &block) click to toggle source
Calls superclass method
# File lib/rodakase/view/part.rb, line 38
def method_missing(meth, *args, &block)
  template_path = template?(meth)

  if template_path
    render(template_path, &block)
  elsif _data.key?(meth)
    _data[meth]
  elsif _value.respond_to?(meth)
    _value.public_send(meth, *args, &block)
  else
    super
  end
end