Sha256: 47fb442b1222ad152e0d2781ee72da8eb23a66549027e09960638c92825060c3
Contents?: true
Size: 1.05 KB
Versions: 1
Compression:
Stored size: 1.05 KB
Contents
require 'dry-equalizer' module Rodakase module View class Part include Dry::Equalizer(:renderer, :_data, :_value) attr_reader :renderer, :_data, :_value def initialize(renderer, data) @renderer = renderer @_data = data @_value = data.values[0] end def [](key) _value[key] end def each(&block) _value.each(&block) end def render(path, &block) renderer.render(path, self, &block) end def template?(name) renderer.lookup("_#{name}") end def respond_to_missing?(meth, include_private = false) super || _data.key?(meth) || template?(meth) end private 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 end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rodakase-0.0.1 | lib/rodakase/view/part.rb |