Class: Vedeu::Views::Composition

Inherits:
Object
  • Object
show all
Includes:
Model, Presentation
Defined in:
lib/vedeu/models/views/composition.rb

Overview

A composition is a collection of interfaces.

Instance Attribute Summary collapse

Attributes included from Model

#repository

Instance Method Summary collapse

Methods included from Presentation

#render_colour, #render_position, #render_style, #to_s

Methods included from Presentation::Styles

#style, #style=

Methods included from Presentation::Colour

#background, #background=, #colour, #colour=, #foreground, #foreground=

Methods included from Model

#deputy, #dsl_class, included, #store

Methods included from Common

#demodulize, #present?, #snake_case

Constructor Details

#initialize(attributes = {}) ⇒ Vedeu::Views::Composition

Returns a new instance of Vedeu::Views::Composition.

Parameters:

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

Options Hash (attributes):



31
32
33
34
35
36
37
# File 'lib/vedeu/models/views/composition.rb', line 31

def initialize(attributes = {})
  @attributes = defaults.merge!(attributes)

  @attributes.each do |key, value|
    instance_variable_set("@#{key}", value)
  end
end

Instance Attribute Details

#attributesHash (readonly)

Returns:

  • (Hash)


17
18
19
# File 'lib/vedeu/models/views/composition.rb', line 17

def attributes
  @attributes
end

#parentNilClass (readonly)

Returns Composition objects do not have a parent.

Returns:

  • (NilClass)

    Composition objects do not have a parent.



21
22
23
# File 'lib/vedeu/models/views/composition.rb', line 21

def parent
  @parent
end

Instance Method Details

#add(child) ⇒ Vedeu::Views::ViewCollection Also known as: <<

Parameters:

Returns:



41
42
43
# File 'lib/vedeu/models/views/composition.rb', line 41

def add(child)
  @value = value.add(child)
end

#defaultsHash (private)

The default values for a new instance of this class.

Returns:

  • (Hash)


57
58
59
60
61
62
63
64
65
# File 'lib/vedeu/models/views/composition.rb', line 57

def defaults
  {
    client: nil,
    colour: nil,
    parent: nil,
    style:  nil,
    value:  [],
  }
end

#valueVedeu::Views::ViewCollection Also known as: views



47
48
49
# File 'lib/vedeu/models/views/composition.rb', line 47

def value
  collection.coerce(@value, self)
end