Class: NetLinx::Project
- Inherits:
-
Object
- Object
- NetLinx::Project
- Defined in:
- lib/netlinx/workspace/project.rb
Overview
A collection of NetLinx systems. Workspace -> Project -> System
Instance Attribute Summary collapse
-
#dealer ⇒ Object
Returns the value of attribute dealer.
-
#description ⇒ Object
Returns the value of attribute description.
-
#designer ⇒ Object
Returns the value of attribute designer.
-
#name ⇒ Object
Returns the value of attribute name.
-
#purchase_order ⇒ Object
Returns the value of attribute purchase_order.
-
#sales_order ⇒ Object
Returns the value of attribute sales_order.
-
#systems ⇒ Object
Returns the value of attribute systems.
-
#workspace ⇒ Object
A reference to the project’s parent workspace.
Instance Method Summary collapse
-
#<<(system) ⇒ Object
Alias to add a system.
-
#compile ⇒ Object
Compile all systems in this project.
-
#include?(file) ⇒ Boolean
True if the project contains the specified file.
-
#initialize(**kwargs) ⇒ Project
constructor
A new instance of Project.
-
#to_s ⇒ Object
The project name.
-
#to_xml_element ⇒ REXML::Element
An XML element representing this project.
Constructor Details
#initialize(**kwargs) ⇒ Project
Returns a new instance of Project.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/netlinx/workspace/project.rb', line 25 def initialize **kwargs @workspace = kwargs.fetch :workspace, nil @name = kwargs.fetch :name, '' @description = kwargs.fetch :description, '' @dealer = kwargs.fetch :dealer, '' @designer = kwargs.fetch :designer, '' @sales_order = kwargs.fetch :sales_order, '' @purchase_order = kwargs.fetch :purchase_order, '' @systems = [] project_element = kwargs.fetch :element, nil parse_xml_element project_element if project_element end |
Instance Attribute Details
#dealer ⇒ Object
Returns the value of attribute dealer.
12 13 14 |
# File 'lib/netlinx/workspace/project.rb', line 12 def dealer @dealer end |
#description ⇒ Object
Returns the value of attribute description.
11 12 13 |
# File 'lib/netlinx/workspace/project.rb', line 11 def description @description end |
#designer ⇒ Object
Returns the value of attribute designer.
13 14 15 |
# File 'lib/netlinx/workspace/project.rb', line 13 def designer @designer end |
#name ⇒ Object
Returns the value of attribute name.
10 11 12 |
# File 'lib/netlinx/workspace/project.rb', line 10 def name @name end |
#purchase_order ⇒ Object
Returns the value of attribute purchase_order.
15 16 17 |
# File 'lib/netlinx/workspace/project.rb', line 15 def purchase_order @purchase_order end |
#sales_order ⇒ Object
Returns the value of attribute sales_order.
14 15 16 |
# File 'lib/netlinx/workspace/project.rb', line 14 def sales_order @sales_order end |
#systems ⇒ Object
Returns the value of attribute systems.
16 17 18 |
# File 'lib/netlinx/workspace/project.rb', line 16 def systems @systems end |
#workspace ⇒ Object
A reference to the project’s parent workspace.
9 10 11 |
# File 'lib/netlinx/workspace/project.rb', line 9 def workspace @workspace end |
Instance Method Details
#<<(system) ⇒ Object
Alias to add a system.
42 43 44 45 |
# File 'lib/netlinx/workspace/project.rb', line 42 def << system @systems << system system.project = self end |
#compile ⇒ Object
Compile all systems in this project.
65 66 67 68 69 |
# File 'lib/netlinx/workspace/project.rb', line 65 def compile compiler_results = [] @systems.each {|system| compiler_results << (system.compile).first} compiler_results end |
#include?(file) ⇒ Boolean
Returns true if the project contains the specified file.
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/netlinx/workspace/project.rb', line 53 def include? file included = false systems.each do |system| included = system.include? file break if included end included end |
#to_s ⇒ Object
Returns the project name.
48 49 50 |
# File 'lib/netlinx/workspace/project.rb', line 48 def to_s @name end |
#to_xml_element ⇒ REXML::Element
Returns an XML element representing this project.
72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/netlinx/workspace/project.rb', line 72 def to_xml_element REXML::Element.new('Project').tap do |project| project.add_element('Identifier').tap { |e| e.text = name } project.add_element('Designer').tap { |e| e.text = designer } project.add_element('DealerID').tap { |e| e.text = dealer } project.add_element('SalesOrder').tap { |e| e.text = sales_order } project.add_element('PurchaseOrder').tap { |e| e.text = purchase_order } project.add_element('Comments').tap { |e| e.text = description } @systems.each { |system| project << system.to_xml_element } end end |