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
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
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 ⇒ Vedeu::Interfaces::Interface
(also: #interface?)
private
Fetch 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
Returns a boolean indicating whether a variable has a useful value.
-
#snake_case(name) ⇒ String
included
from Common
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 @options end |
Instance Method Details
#absent?(variable) ⇒ Boolean Originally defined in module Common
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
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 ⇒ Vedeu::Interfaces::Interface (private) Also known as: interface?
Fetch 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
Returns a boolean indicating whether a variable has a useful value.
#snake_case(name) ⇒ String Originally defined in module Common
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.