Class: Vedeu::Templating::ViewTemplate

Inherits:
Template
  • Object
show all
Includes:
Common, Helpers
Defined in:
lib/vedeu/templating/view_template.rb

Overview

Extend Template to provide client application view specific parsing.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Vedeu::Templating::Template

Instance Attribute Details

#objectClass (readonly, protected)

Returns:

  • (Class)


46
47
48
# File 'lib/vedeu/templating/view_template.rb', line 46

def object
  @object
end

#optionsHash (readonly, protected)

Returns:

  • (Hash)


50
51
52
# File 'lib/vedeu/templating/view_template.rb', line 50

def options
  @options
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.

Parameters:

  • variable (String|Symbol|Array|Fixnum)

    The variable to check.

Returns:

#background(value, &block) ⇒ Vedeu::Views::Stream Also known as: bg Originally defined in module Helpers

Parameters:

  • value (String)

    The HTML/CSS colour.

  • block (Proc)

Returns:

Raises:

#become(klass, attributes) ⇒ Class 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 one class into another.

Parameters:

  • klass (Class)

    The class to become an instance of.

  • attributes (Hash)

    The attributes of klass.

Returns:

  • (Class)

    Returns a new instance of klass.

#boolean(value) ⇒ 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 the value was a boolean.

Parameters:

  • value (void)

Returns:

#boolean?(value) ⇒ 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 the value is a Boolean.

Parameters:

Returns:

#colour(attributes = {}, &block) ⇒ Vedeu::Views::Stream Originally defined in module Helpers

Parameters:

  • attributes (Hash) (defaults to: {})
  • block (Proc)

Options Hash (attributes):

  • foreground (String)

    The HTML/CSS foreground colour.

  • background (String)

    The HTML/CSS background colour.

Returns:

Raises:

#contentString (private)

Return a string representing the template processed with ERB.

Returns:

  • (String)


117
118
119
# File 'lib/vedeu/templating/view_template.rb', line 117

def content
  ERB.new(load, nil, '-').result(binding)
end

#defaultHash<Symbol => Hash<Symbol => Symbol>,Symbol> (private)

Returns:

  • (Hash<Symbol => Hash<Symbol => Symbol>,Symbol>)


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

#define_stream(attributes = {}, &block) ⇒ Object (private) Originally defined in module Helpers

See Also:

#encode(data) ⇒ String (private) Originally defined in module Helpers

Parameters:

  • data (String)

Returns:

  • (String)

#escape?(value) ⇒ 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 the value is an escape sequence object (e.g. Vedeu::Cells::Escape.)

Returns:

#falsy?(value) ⇒ 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 the value should be considered false.

Parameters:

  • value (void)

Returns:

#foreground(value, &block) ⇒ Vedeu::Views::Stream Also known as: fg Originally defined in module Helpers

Parameters:

  • value (String)

    The HTML/CSS colour.

  • block (Proc)

Returns:

Raises:

#hash?(value) ⇒ 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 the value is a Hash.

Parameters:

  • value (Hash|void)

Returns:

#interfaceObject (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

#line_model?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 the model is a Views::Line.

Returns:

#linesArray<String> (private)

Convert the content into an array of strings without the line ending character.

Returns:

  • (Array<String>)


110
111
112
# File 'lib/vedeu/templating/view_template.rb', line 110

def lines
  content.lines.map(&:chomp)
end

#nameString|Symbol (private)

Returns:

  • (String|Symbol)


84
85
86
# File 'lib/vedeu/templating/view_template.rb', line 84

def name
  options[:name]
end

#numeric?(value) ⇒ 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 the value is a Fixnum.

Parameters:

  • value (Fixnum|void)

Returns:

#parseVedeu::Views::Lines

Returns:



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

#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.

Parameters:

  • variable (String|Symbol|Array|Fixnum)

    The variable to check.

Returns:

#snake_case(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.

Converts a class name to a lowercase snake case string.

Examples:

snake_case(MyClassName) # => "my_class_name"
snake_case(NameSpaced::ClassName)
# => "name_spaced/class_name"

snake_case('MyClassName') # => "my_class_name"
snake_case(NameSpaced::ClassName)
# => "name_spaced/class_name"

Parameters:

  • klass (Module|Class|String)

Returns:

  • (String)

#stream_colourVedeu::Colours::Colour|Hash<Symbol => NilClass,String,Symbol> (private)

Return the interface colours if a name option is set, otherwise use the default colours.

Returns:



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_model?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 the model is a Views::Stream.

Returns:

#stream_styleSymbol (private)

Return the interface style(s) if a name option is set, otherwise use the default style.

Returns:

  • (Symbol)


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.

Parameters:

  • line (String)

Returns:

  • (Array<String>)


92
93
94
# File 'lib/vedeu/templating/view_template.rb', line 92

def streams_for(line)
  line.split(/({{\s*[^}]+\s*}})/)
end

#string?(value) ⇒ 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 the value is a Fixnum.

Parameters:

  • value (String|void)

Returns:

#style(value, &block) ⇒ Vedeu::Views::Stream Originally defined in module Helpers

Parameters:

  • value (Symbol)
  • block (Proc)

Returns:

#time_nowString Originally defined in module View

Returns the current local time.

Examples:

time_now # => Mon 29 Jun 19:26

Returns:

  • (String)

#truthy?(value) ⇒ 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 the value should be considered true.

Parameters:

  • value (void)

Returns:

#view_model?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 the model is a Views::View.

Returns: