Class: Munge::Transformers::TiltTransformer

Inherits:
Object
  • Object
show all
Defined in:
lib/munge/transformers/tilt_transformer.rb

Instance Method Summary collapse

Constructor Details

#initialize(scope) ⇒ TiltTransformer

Returns a new instance of TiltTransformer.



4
5
6
7
8
# File 'lib/munge/transformers/tilt_transformer.rb', line 4

def initialize(scope)
  @pristine_scope = scope
  @registry       = []
  @demands        = Hash.new { Hash.new }
end

Instance Method Details

#call(item, content = nil, renderer = nil) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/munge/transformers/tilt_transformer.rb', line 14

def call(item, content = nil, renderer = nil)
  scope = @pristine_scope.dup
  scope.instance_variable_set(:@renderer, @renderer)
  dirty_scope = extend_with_helpers(scope)
  dirty_scope.instance_variable_set(:@tilt_options, @demands)
  dirty_scope.render_with_layout(item, content_engines: renderer, content_override: content)
end

#demand(tilt_template, **options) ⇒ Object



26
27
28
# File 'lib/munge/transformers/tilt_transformer.rb', line 26

def demand(tilt_template, **options)
  @demands[tilt_template] = @demands[tilt_template].merge(options)
end

#nameObject



10
11
12
# File 'lib/munge/transformers/tilt_transformer.rb', line 10

def name
  :tilt
end

#register(helper) ⇒ Object



22
23
24
# File 'lib/munge/transformers/tilt_transformer.rb', line 22

def register(helper)
  @registry.push(helper)
end