A Context represents the context which a Mustache template is executed within. All Mustache tags reference keys in the Context.
Expect to be passed an instance of `Mustache`.
Alias for `fetch`.
Can be used to add a value to the context in a hash-like way.
context[:name] = “Chris“
Similar to Hash#fetch, finds a value by `name` in the context’s stack. You may specify the default return value by passing a second parameter.
If no second parameter is passed (or raise_on_context_miss is set to true), will raise a ContextMiss exception on miss.
# File lib/mustache/context.rb, line 84 def fetch(name, default = :__raise) @stack.each do |frame| # Prevent infinite recursion. next if frame == self # Is this frame a hash? hash = frame.respond_to?(:has_key?) if hash && frame.has_key?(name) return frame[name] elsif hash && frame.has_key?(name.to_s) return frame[name.to_s] elsif !hash && frame.respond_to?(name) return frame.__send__(name) end end if default == :__raise || mustache_in_stack.raise_on_context_miss? raise ContextMiss.new("Can't find #{name} in #{@stack.inspect}") else default end end
Do we know about a particular key? In other words, will calling `context[key]` give us a result that was set. Basically.
A {{>partial}} tag translates into a call to the context’s `partial` method, which would be this sucker right here.
If the Mustache view handling the rendering (e.g. the view representing your profile page or some other template) responds to `partial`, we call it and render the result.
Removes the most recently added object from the context’s internal stack.
Returns the Context.
Adds a new object to the context’s internal stack.
Returns the Context.
Alias for push