Class: Vedeu::Templating::ViewTemplate
- Defined in:
- lib/vedeu/templating/view_template.rb
Overview
Extend Template to provide client application view specific parsing.
Instance Attribute Summary collapse
- #object ⇒ Class readonly protected
- #options ⇒ Hash readonly protected
Instance Method Summary collapse
-
#content ⇒ String
private
Return a string representing the template processed with ERB.
- #default ⇒ Hash<Symbol => Hash<Symbol => Symbol>,Symbol> private
-
#interface ⇒ Object
(also: #interface?)
private
Returns the interface by name.
-
#lines ⇒ Array<String>
private
Convert the content into an array of strings without the line ending character.
- #name ⇒ String|Symbol private
- #parse ⇒ Vedeu::Views::Lines
-
#stream_colour ⇒ Vedeu::Colours::Colour|Hash<Symbol => NilClass,String,Symbol>
private
Return the interface colours if a name option is set, otherwise use the default colours.
-
#stream_style ⇒ Symbol
private
Return the interface style(s) if a name option is set, otherwise use the default style.
-
#streams_for(line) ⇒ Array<String>
private
Returns the stream directives for the line.
Methods included from Helpers
#background, #colour, #define_stream, #encode, #foreground, #style
Methods included from View
Methods included from Common
#absent?, #array?, #boolean, #boolean?, #empty_value?, #escape?, #falsy?, #hash?, #line_model?, #numeric?, #positionable?, #present?, #snake_case, #stream_model?, #string?, #symbol?, #truthy?, #view_model?
Methods inherited from Template
#initialize, #load, parse, #path
Constructor Details
This class inherits a constructor from Vedeu::Templating::Template
Instance Attribute Details
#object ⇒ Class (readonly, protected)
46 47 48 |
# File 'lib/vedeu/templating/view_template.rb', line 46 def object @object end |
#options ⇒ Hash (readonly, protected)
50 51 52 |
# File 'lib/vedeu/templating/view_template.rb', line 50 def @options end |
Instance Method Details
#content ⇒ String (private)
Return a string representing the template processed with ERB.
117 118 119 |
# File 'lib/vedeu/templating/view_template.rb', line 117 def content ERB.new(load, nil, '-').result(binding) end |
#default ⇒ Hash<Symbol => Hash<Symbol => Symbol>,Symbol> (private)
65 66 67 68 69 70 71 72 73 |
# File 'lib/vedeu/templating/view_template.rb', line 65 def default { colour: { background: :default, foreground: :default, }, style: :normal, } end |
#interface ⇒ Object (private) Also known as: interface?
Returns the interface by name.
78 79 80 |
# File 'lib/vedeu/templating/view_template.rb', line 78 def interface Vedeu.interfaces.by_name(name) end |
#lines ⇒ Array<String> (private)
Convert the content into an array of strings without the line ending character.
110 111 112 |
# File 'lib/vedeu/templating/view_template.rb', line 110 def lines content.lines.map(&:chomp) end |
#name ⇒ String|Symbol (private)
84 85 86 |
# File 'lib/vedeu/templating/view_template.rb', line 84 def name [:name] end |
#parse ⇒ Vedeu::Views::Lines
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/vedeu/templating/view_template.rb', line 16 def parse lines_collection = Vedeu::Views::Lines.new lines.each do |line| line_object = Vedeu::Views::Line.new streams_for(line).each do |stream| next unless present?(stream) line_object << if stream =~ /({{)|(}})/ Vedeu::Templating::Decoder.process(stream) else Vedeu::Views::Stream.new(colour: stream_colour, style: stream_style, value: stream) end end lines_collection << line_object end lines_collection end |
#stream_colour ⇒ Vedeu::Colours::Colour|Hash<Symbol => NilClass,String,Symbol> (private)
Return the interface colours if a name option is set, otherwise use the default colours.
58 59 60 61 62 |
# File 'lib/vedeu/templating/view_template.rb', line 58 def stream_colour return interface.colour if name default[:colour] end |
#stream_style ⇒ Symbol (private)
Return the interface style(s) if a name option is set, otherwise use the default style.
100 101 102 103 104 |
# File 'lib/vedeu/templating/view_template.rb', line 100 def stream_style return interface.style if name default[:style] end |
#streams_for(line) ⇒ Array<String> (private)
Returns the stream directives for the line.
92 93 94 |
# File 'lib/vedeu/templating/view_template.rb', line 92 def streams_for(line) line.split(/({{\s*[^}]+\s*}})/) end |