Class: Webgen::Block
- Inherits:
-
Object
- Object
- Webgen::Block
- Defined in:
- lib/webgen/page.rb
Overview
A single block within a Page object. The content of the block can be rendered using the #render method.
Instance Attribute Summary collapse
-
#content ⇒ Object
readonly
The content of the block.
-
#name ⇒ Object
readonly
The name of the block.
-
#options ⇒ Object
readonly
The options set specifically for this block.
Instance Method Summary collapse
-
#initialize(name, content, options) ⇒ Block
constructor
Create a new block with the name
name
and the givencontent
andoptions
. -
#render(context) ⇒ Object
Render the block using the provided context object.
Constructor Details
#initialize(name, content, options) ⇒ Block
Create a new block with the name name
and the given content
and options
.
20 21 22 |
# File 'lib/webgen/page.rb', line 20 def initialize(name, content, ) @name, @content, @options = name, content, end |
Instance Attribute Details
#content ⇒ Object (readonly)
The content of the block.
14 15 16 |
# File 'lib/webgen/page.rb', line 14 def content @content end |
#name ⇒ Object (readonly)
The name of the block.
11 12 13 |
# File 'lib/webgen/page.rb', line 11 def name @name end |
#options ⇒ Object (readonly)
The options set specifically for this block.
17 18 19 |
# File 'lib/webgen/page.rb', line 17 def @options end |
Instance Method Details
#render(context) ⇒ Object
Render the block using the provided context object.
The context object needs to respond to #[]
and #[]=
(e.g. a Hash is a valid context object) and the key :processors
needs to contain a Hash which maps processor names to processor objects that respond to #call
.
Uses the content processors specified in the pipeline
key of the options
attribute to do the actual rendering.
Returns the given context with the rendered content.
34 35 36 37 38 39 40 41 42 |
# File 'lib/webgen/page.rb', line 34 def render(context) context[:content] = @content.dup context[:block] = self @options['pipeline'].to_s.split(/,/).each do |processor| raise "No such content processor available: #{processor}" unless context[:processors].has_key?(processor) context[:processors][processor].call(context) end context end |