Module: Locomotive::Plugin::Liquid::ContextHelpers

Defined in:
lib/locomotive/plugin/liquid/context_helpers.rb

Overview

Adds the plugin object to the liquid context.

Class Method Summary collapse

Class Method Details

.add_plugin_object_to_context(plugin_id, context) ⇒ Object

Adds the plugin object to the liquid context object to be used by tags, filters, and drops. This method looks in the :site register for an object which responds to #plugin_object_for_id in order to populate the :plugin_object register. If such an object does not exist, the method simply yields without altering the context object. Otherwise, after yielding, the context object is reset to its previous state.

Parameters:

  • plugin_id (String)

    the plugin id to use

  • context (Liquid::Context)

    the liquid context object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/locomotive/plugin/liquid/context_helpers.rb', line 20

def self.add_plugin_object_to_context(plugin_id, context)
  site = self.fetch_site(context)
  if site
    old = context.registers[:plugin_object]
    obj = site.plugin_object_for_id(plugin_id)
    context.registers[:plugin_object] = obj
    yield
    context.registers[:plugin_object] = old
  else
    yield
  end
end