class AutomateIt::PlatformManager::Struct
PlatformManager::Struct¶ ↑
A simple PlatformManager driver that queries a hash for results. Although not useful on its own, it’s inherited by other drivers that provide platform-specific methods to query the system.
Attributes
key_aliases[RW]
Hash
mapping of keys that have many common names, e.g., “release” and “version”
Public Instance Methods
query(search)
click to toggle source
See PlatformManager#query
# File lib/automateit/platform_manager/struct.rb, line 36 def query(search) result = "" for key in search.to_s.split(/#/) result << "_" unless result.empty? result << _query_key(key) end result end
setup(opts={})
click to toggle source
Options:
-
:struct – The hash to use for queries.
Calls superclass method
AutomateIt::Plugin::Driver#setup
# File lib/automateit/platform_manager/struct.rb, line 18 def setup(opts={}) super(opts) @@struct_cache ||= {} if opts[:struct] @struct = opts[:struct] else @struct ||= {} end # Generate bi-directional map @key_aliases ||= @@key_aliases ||= { :version => :release, }.inject({}){|s,v| s[v[0]] = v[1]; s[v[1]] = v[0]; s} end
single_vendor?()
click to toggle source
See PlatformManager#single_vendor?
# File lib/automateit/platform_manager/struct.rb, line 60 def single_vendor? return false end
Private Instance Methods
_query_key(key)
click to toggle source
# File lib/automateit/platform_manager/struct.rb, line 45 def _query_key(key) key = key.to_sym unless @struct.has_key?(key) key_alias = key_aliases[key] if @struct.has_key?(key_alias) key = key_alias else raise IndexError.new("platform doesn't provide key: #{key}") end end return @struct[key] end