class Cedar::Context
Inject a component's instance variables into arbre's default context as well as provide implicit handling of snake-cased component names as tags
Public Class Methods
new(component)
click to toggle source
Calls superclass method
# File lib/cedar/context.rb, line 10 def initialize(component) super({}, component) @component = component @component_wardens = ComponentWardens.new(@component) # Copy all of the instance variables from the component to the context, # so we have access to them when rendering @component.instance_variables.each do |iv| instance_variable_set(iv, @component.instance_variable_get(iv)) end end
Public Instance Methods
method_missing(method, *args, &content_block)
click to toggle source
Calls superclass method
# File lib/cedar/context.rb, line 27 def method_missing(method, *args, &content_block) if @component.respond_to?(method) @component.send(method, *args, &content_block) elsif @component_wardens[method].exists? render @component_wardens[method].new(*args, &content_block) else super end end
respond_to_missing?(method, include_all)
click to toggle source
Calls superclass method
# File lib/cedar/context.rb, line 23 def respond_to_missing?(method, include_all) @component.respond_to?(method) || @component_wardens[method].exists? || super end