Class: Train::Platforms::Platform
- Inherits:
-
Object
- Object
- Train::Platforms::Platform
- Includes:
- Common
- Defined in:
- lib/train/platforms/platform.rb
Instance Attribute Summary collapse
-
#backend ⇒ Object
Returns the value of attribute backend.
-
#condition ⇒ Object
Returns the value of attribute condition.
-
#families ⇒ Object
Returns the value of attribute families.
-
#family_hierarchy ⇒ Object
Returns the value of attribute family_hierarchy.
-
#platform ⇒ Object
Returns the value of attribute platform.
Instance Method Summary collapse
-
#[](name) ⇒ Object
This is for backwords compatability with the current inspec os resource.
-
#add_platform_methods ⇒ Object
Add generic family? and platform methods to an existing platform.
- #clean_name(force: false) ⇒ Object
- #direct_families ⇒ Object
- #family ⇒ Object
-
#initialize(name, condition = {}) ⇒ Platform
constructor
A new instance of Platform.
- #name ⇒ Object
- #title(title = nil) ⇒ Object
- #to_hash ⇒ Object
- #uuid ⇒ Object
Methods included from Common
Constructor Details
#initialize(name, condition = {}) ⇒ Platform
Returns a new instance of Platform.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/train/platforms/platform.rb', line 8 def initialize(name, condition = {}) @name = name @condition = condition @families = {} @family_hierarchy = [] @platform = {} @detect = nil @title = name.to_s.capitalize # add itself to the platform list Train::Platforms.list[name] = self end |
Instance Attribute Details
#backend ⇒ Object
Returns the value of attribute backend.
6 7 8 |
# File 'lib/train/platforms/platform.rb', line 6 def backend @backend end |
#condition ⇒ Object
Returns the value of attribute condition.
6 7 8 |
# File 'lib/train/platforms/platform.rb', line 6 def condition @condition end |
#families ⇒ Object
Returns the value of attribute families.
6 7 8 |
# File 'lib/train/platforms/platform.rb', line 6 def families @families end |
#family_hierarchy ⇒ Object
Returns the value of attribute family_hierarchy.
6 7 8 |
# File 'lib/train/platforms/platform.rb', line 6 def family_hierarchy @family_hierarchy end |
#platform ⇒ Object
Returns the value of attribute platform.
6 7 8 |
# File 'lib/train/platforms/platform.rb', line 6 def platform @platform end |
Instance Method Details
#[](name) ⇒ Object
This is for backwords compatability with the current inspec os resource.
50 51 52 53 54 55 56 |
# File 'lib/train/platforms/platform.rb', line 50 def[](name) if respond_to?(name) send(name) else 'unknown' end end |
#add_platform_methods ⇒ Object
Add generic family? and platform methods to an existing platform
This is done later to add any custom families/properties that were created
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/train/platforms/platform.rb', line 72 def add_platform_methods # Redo clean name if there is a detect override clean_name(force: true) unless @platform[:name].nil? # Add in family methods family_list = Train::Platforms.families family_list.each_value do |k| next if respond_to?(k.name + '?') define_singleton_method(k.name + '?') do family_hierarchy.include?(k.name) end end # Helper methods for direct platform info @platform.each_key do |m| next if respond_to?(m) define_singleton_method(m) do @platform[m] end end # Create method for name if its not already true m = name + '?' return if respond_to?(m) define_singleton_method(m) do true end end |
#clean_name(force: false) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/train/platforms/platform.rb', line 35 def clean_name(force: false) @cleaned_name = nil if force @cleaned_name ||= begin name = (@platform[:name] || @name) name.downcase!.tr!(' ', '_') if name =~ /[A-Z ]/ name end end |
#direct_families ⇒ Object
21 22 23 |
# File 'lib/train/platforms/platform.rb', line 21 def direct_families @families.collect { |k, _v| k.name } end |
#family ⇒ Object
25 26 27 |
# File 'lib/train/platforms/platform.rb', line 25 def family @platform[:family] || @family_hierarchy[0] end |
#name ⇒ Object
29 30 31 32 33 |
# File 'lib/train/platforms/platform.rb', line 29 def name # Override here incase a updated name was set # during the detect logic clean_name end |
#title(title = nil) ⇒ Object
58 59 60 61 62 |
# File 'lib/train/platforms/platform.rb', line 58 def title(title = nil) return @title if title.nil? @title = title self end |
#to_hash ⇒ Object
64 65 66 |
# File 'lib/train/platforms/platform.rb', line 64 def to_hash @platform end |