Class: Habdsl::Model::Equipment
- Inherits:
-
Object
- Object
- Habdsl::Model::Equipment
- Defined in:
- lib/habdsl/model/equipment.rb
Overview
Represents a piece of equipment in the DSL.
Instance Attribute Summary collapse
-
#icon ⇒ Object
readonly
Returns the value of attribute icon.
-
#label ⇒ Object
readonly
Returns the value of attribute label.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#parent ⇒ Object
readonly
Returns the value of attribute parent.
-
#points ⇒ Object
readonly
Returns the value of attribute points.
-
#sub_equipments ⇒ Object
readonly
Returns the value of attribute sub_equipments.
Instance Method Summary collapse
- #equipment(name:, label:, icon:, parent: nil) ⇒ Object
-
#initialize(name:, label:, icon:, parent: nil) ⇒ Equipment
constructor
A new instance of Equipment.
- #location ⇒ Object
- #point(name:, label:, type:, icon:, tags:, parent: nil, channel: nil) ⇒ Object
- #to_s(parent_name = nil) ⇒ Object
Constructor Details
#initialize(name:, label:, icon:, parent: nil) ⇒ Equipment
Returns a new instance of Equipment.
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/habdsl/model/equipment.rb', line 9 def initialize(name:, label:, icon:, parent: nil) validate!(name, "name") validate!(icon, "icon") @name = name @label = label @icon = icon @parent = parent @points = [] @sub_equipments = [] end |
Instance Attribute Details
#icon ⇒ Object (readonly)
Returns the value of attribute icon.
7 8 9 |
# File 'lib/habdsl/model/equipment.rb', line 7 def icon @icon end |
#label ⇒ Object (readonly)
Returns the value of attribute label.
7 8 9 |
# File 'lib/habdsl/model/equipment.rb', line 7 def label @label end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
7 8 9 |
# File 'lib/habdsl/model/equipment.rb', line 7 def name @name end |
#parent ⇒ Object (readonly)
Returns the value of attribute parent.
7 8 9 |
# File 'lib/habdsl/model/equipment.rb', line 7 def parent @parent end |
#points ⇒ Object (readonly)
Returns the value of attribute points.
7 8 9 |
# File 'lib/habdsl/model/equipment.rb', line 7 def points @points end |
#sub_equipments ⇒ Object (readonly)
Returns the value of attribute sub_equipments.
7 8 9 |
# File 'lib/habdsl/model/equipment.rb', line 7 def sub_equipments @sub_equipments end |
Instance Method Details
#equipment(name:, label:, icon:, parent: nil) ⇒ Object
21 22 23 24 25 |
# File 'lib/habdsl/model/equipment.rb', line 21 def equipment(name:, label:, icon:, parent: nil, &) eq = Equipment.new(name: name, label: label, icon: icon, parent: parent) eq.instance_eval(&) if block_given? @sub_equipments << eq end |
#location ⇒ Object
32 33 34 |
# File 'lib/habdsl/model/equipment.rb', line 32 def location(*) raise "Error: location cannot be nested inside equipment" end |
#point(name:, label:, type:, icon:, tags:, parent: nil, channel: nil) ⇒ Object
27 28 29 30 |
# File 'lib/habdsl/model/equipment.rb', line 27 def point(name:, label:, type:, icon:, tags:, parent: nil, channel: nil) @points << Point.new(name: name, label: label, type: type, icon: icon, tags: , parent: parent, channel: channel) end |
#to_s(parent_name = nil) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/habdsl/model/equipment.rb', line 36 def to_s(parent_name = nil) result = "Group #{@name} \"#{@label}\" <#{@icon}>" result += format_parent(parent_name, @parent) result += " [\"Equipment\"]\n" @sub_equipments.each {|sub_eq| result += sub_eq.to_s(@name) } @points.each {|pt| result += pt.to_s(@name) } result end |