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
-
#absent?(variable) ⇒ Boolean
included
from Common
private
Returns a boolean indicating whether a variable is nil or empty.
- #background(value, &block) ⇒ Vedeu::Views::Stream (also: #bg) included from Helpers
- #colour(attributes = {}, &block) ⇒ Vedeu::Views::Stream included from Helpers
-
#content ⇒ String
private
Return a string representing the template processed with ERB.
-
#default_colour ⇒ Vedeu::Colours::Colour|Hash<Symbol => Symbol>
private
Return the interface colours if a name option is set, otherwise use the default colours.
-
#default_style ⇒ Symbol
private
Return the interface style(s) if a name option is set, otherwise use the default style.
- #define_stream(attributes = {}, &block) ⇒ Object included from Helpers private
-
#demodulize(klass) ⇒ String
included
from Common
private
Removes the module part from the expression in the string.
- #encode(data) ⇒ String included from Helpers private
- #foreground(value, &block) ⇒ Vedeu::Views::Stream (also: #fg) included from Helpers
-
#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.
- #parse ⇒ Vedeu::Views::Lines
-
#present?(variable) ⇒ Boolean
included
from Common
private
Returns a boolean indicating whether a variable has a useful value.
-
#snake_case(name) ⇒ String
included
from Common
private
Converts a class name to a lowercase snake case string.
-
#streams_for(line) ⇒ Array<String>
private
Returns the stream directives for the line.
- #style(value, &block) ⇒ Vedeu::Views::Stream included from Helpers
-
#time_now ⇒ String
included
from View
Returns the current local time.
Constructor Details
This class inherits a constructor from Vedeu::Templating::Template
Instance Attribute Details
#object ⇒ Class (readonly, protected)
44 45 46 |
# File 'lib/vedeu/templating/view_template.rb', line 44 def object @object end |
#options ⇒ Hash (readonly, protected)
48 49 50 |
# File 'lib/vedeu/templating/view_template.rb', line 48 def end |
Instance Method Details
#absent?(variable) ⇒ Boolean Originally defined in module Common
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a boolean indicating whether a variable is nil or empty.
#background(value, &block) ⇒ Vedeu::Views::Stream Also known as: bg Originally defined in module Helpers
#colour(attributes = {}, &block) ⇒ Vedeu::Views::Stream Originally defined in module Helpers
#content ⇒ String (private)
Return a string representing the template processed with ERB.
102 103 104 |
# File 'lib/vedeu/templating/view_template.rb', line 102 def content ERB.new(load, nil, '-').result(binding) end |
#default_colour ⇒ Vedeu::Colours::Colour|Hash<Symbol => Symbol> (private)
Return the interface colours if a name option is set, otherwise use the default colours.
56 57 58 59 60 61 62 63 |
# File 'lib/vedeu/templating/view_template.rb', line 56 def default_colour return interface.colour if [:name] { background: :default, foreground: :default, } end |
#default_style ⇒ Symbol (private)
Return the interface style(s) if a name option is set, otherwise use the default style.
69 70 71 72 73 |
# File 'lib/vedeu/templating/view_template.rb', line 69 def default_style return interface.style if [:name] :normal end |
#define_stream(attributes = {}, &block) ⇒ Object (private) Originally defined in module Helpers
#demodulize(klass) ⇒ String Originally defined in module Common
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Removes the module part from the expression in the string.
#encode(data) ⇒ String (private) Originally defined in module Helpers
#foreground(value, &block) ⇒ Vedeu::Views::Stream Also known as: fg Originally defined in module Helpers
#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.
95 96 97 |
# File 'lib/vedeu/templating/view_template.rb', line 95 def lines content.lines.map(&:chomp) end |
#parse ⇒ Vedeu::Views::Lines
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/vedeu/templating/view_template.rb', line 14 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: default_colour, style: default_style, value: stream) end end lines_collection << line_object end lines_collection end |
#present?(variable) ⇒ Boolean Originally defined in module Common
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a boolean indicating whether a variable has a useful value.
#snake_case(name) ⇒ String Originally defined in module Common
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Converts a class name to a lowercase snake case string.
#streams_for(line) ⇒ Array<String> (private)
Returns the stream directives for the line.
87 88 89 |
# File 'lib/vedeu/templating/view_template.rb', line 87 def streams_for(line) line.split(/({{\s*[^}]+\s*}})/) end |
#style(value, &block) ⇒ Vedeu::Views::Stream Originally defined in module Helpers
#time_now ⇒ String Originally defined in module View
Returns the current local time.