Module: Train::Platforms
- Defined in:
- lib/train/platforms.rb,
lib/train/platforms/common.rb,
lib/train/platforms/detect.rb,
lib/train/platforms/family.rb,
lib/train/platforms/platform.rb
Defined Under Namespace
Modules: Common, Detect Classes: Family, Platform
Class Method Summary collapse
-
.families ⇒ Hash
Retrieve the current family list.
-
.family(name, condition = {}) ⇒ Object
Create or update a family.
-
.list ⇒ Hash
Retrieve the current platform list.
-
.list_all ⇒ Object
List all platforms and families in a readable output.
-
.name(name, condition = {}) ⇒ Object
Create or update a platform.
- .print_children(parent, pad = 2) ⇒ Object
-
.top_platforms ⇒ Hash
Find the families or top level platforms.
Class Method Details
.families ⇒ Hash
Retrieve the current family list
24 25 26 |
# File 'lib/train/platforms.rb', line 24 def families @families ||= {} end |
.family(name, condition = {}) ⇒ Object
Create or update a family
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/train/platforms.rb', line 47 def self.family(name, condition = {}) # Check the families to see if one is already created family = families[name] unless family.nil? # Pass the condition incase we are adding a family relationship family.condition = condition unless condition.nil? return family end Train::Platforms::Family.new(name, condition) end |
.list ⇒ Hash
Retrieve the current platform list
17 18 19 |
# File 'lib/train/platforms.rb', line 17 def list @list ||= {} end |
.list_all ⇒ Object
List all platforms and families in a readable output
69 70 71 72 73 74 75 |
# File 'lib/train/platforms.rb', line 69 def self.list_all top_platforms = self.top_platforms top_platforms.each_value do |platform| puts platform.title print_children(platform) if defined?(platform.children) end end |
.name(name, condition = {}) ⇒ Object
Create or update a platform
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/train/platforms.rb', line 32 def self.name(name, condition = {}) # Check the list to see if one is already created plat = list[name] unless plat.nil? # Pass the condition incase we are adding a family relationship plat.condition = condition unless condition.nil? return plat end Train::Platforms::Platform.new(name, condition) end |
.print_children(parent, pad = 2) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/train/platforms.rb', line 77 def self.print_children(parent, pad = 2) parent.children.each do |key, value| obj = key puts "#{' ' * pad}-> #{obj.title}#{value unless value.empty?}" print_children(obj, pad + 2) if defined?(obj.children) && !obj.children.nil? end end |
.top_platforms ⇒ Hash
Find the families or top level platforms
62 63 64 65 66 |
# File 'lib/train/platforms.rb', line 62 def self.top_platforms top_platforms = list.select { |_key, value| value.families.empty? } top_platforms.merge!(families.select { |_key, value| value.families.empty? }) top_platforms end |