Class: Blocks::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/blocks/renderers/renderer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(builder) ⇒ Renderer

Returns a new instance of Renderer.



6
7
8
# File 'lib/blocks/renderers/renderer.rb', line 6

def initialize(builder)
  self.builder = builder
end

Instance Attribute Details

#builderObject

Returns the value of attribute builder.



3
4
5
# File 'lib/blocks/renderers/renderer.rb', line 3

def builder
  @builder
end

Instance Method Details

#deferred_render(*args, &block) ⇒ Object

TODO: this needs to be handled by a new renderer

TODO: also get rid of BlockPlaceholder


26
27
28
29
# File 'lib/blocks/renderers/renderer.rb', line 26

def deferred_render(*args, &block)
  block_definition = builder.define(*args, &block)
  Blocks::BlockPlaceholder.new(block_definition)
end

#render_with_overrides(*args, &block) ⇒ Object

TODO: this needs to be handled by a new renderer



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/blocks/renderers/renderer.rb', line 11

def render_with_overrides(*args, &block)
  options = args.extract_options!
  name = args.first
  if name.is_a?(Symbol) || name.is_a?(String)
    # TODO: block needs to be handled differently so as to provide overrides
    block_with_hooks_renderer.render(*args, options, &block)
  elsif options[:partial]
    partial_renderer.render(options.delete(:partial), options, &block)
  else
    # TODO: handle other possible rendering methods such as a custom renderer
  end
end