Class: Stasis::Helpers

Inherits:
Plugin
  • Object
show all
Defined in:
lib/stasis/plugins/helpers.rb

Instance Method Summary collapse

Methods inherited from Plugin

#_match_key?, _priority, #_within?, inherited, plugins, priority

Constructor Details

#initialize(stasis) ⇒ Helpers

Returns a new instance of Helpers.



8
9
10
11
# File 'lib/stasis/plugins/helpers.rb', line 8

def initialize(stasis)
  @stasis = stasis
  reset
end

Instance Method Details

#before_renderObject

This event triggers before each file renders through Stasis. For each helper block, evaluate the block in the scope of the action class.



15
16
17
18
19
20
21
# File 'lib/stasis/plugins/helpers.rb', line 15

def before_render
  @blocks.each do |(path, block)|
    if _within?(path)
      @stasis.action.class.class_eval(&block)
    end
  end
end

#helpers(&block) ⇒ Object

This method is bound to all controllers. Stores a block in the ‘@blocks` Array.



24
25
26
27
28
# File 'lib/stasis/plugins/helpers.rb', line 24

def helpers(&block)
  if block
    @blocks << [ @stasis.path, block ]
  end
end

#resetObject

This event resets all instance variables.



31
32
33
# File 'lib/stasis/plugins/helpers.rb', line 31

def reset
  @blocks = []
end