class Inspec::Resources::PlatformResource
Public Class Methods
new()
click to toggle source
# File lib/inspec/resources/platform.rb, line 17 def initialize @platform = inspec.backend.platform end
Public Instance Methods
[](key)
click to toggle source
# File lib/inspec/resources/platform.rb, line 41 def [](key) # convert string to symbol key = key.to_sym if key.is_a? String return name if key == :name @platform[key] end
arch()
click to toggle source
# File lib/inspec/resources/platform.rb, line 29 def arch @platform[:arch] end
families()
click to toggle source
# File lib/inspec/resources/platform.rb, line 33 def families @platform[:family_hierarchy] end
family()
click to toggle source
# File lib/inspec/resources/platform.rb, line 21 def family @platform[:family] end
in_family?(family)
click to toggle source
# File lib/inspec/resources/platform.rb, line 54 def in_family?(family) @platform.family_hierarchy.include?(family) end
name()
click to toggle source
# File lib/inspec/resources/platform.rb, line 37 def name @platform[:name] end
normalize(key)
click to toggle source
# File lib/inspec/resources/platform.rb, line 92 def normalize(key) # TODO: dumb... push this up or remove need key.to_s.tr("-", "_").to_sym end
params()
click to toggle source
# File lib/inspec/resources/platform.rb, line 58 def params # rubocop:disable Layout/AlignHash h = { name: name, families: families, release: release, arch: arch, } # rubocop:enable Layout/AlignHash h.delete :arch if in_family?("api") # not applicable if api h end
platform?(name)
click to toggle source
# File lib/inspec/resources/platform.rb, line 49 def platform?(name) @platform.name == name || @platform.family_hierarchy.include?(name) end
release()
click to toggle source
# File lib/inspec/resources/platform.rb, line 25 def release @platform[:release] end
supported?(supports)
click to toggle source
# File lib/inspec/resources/platform.rb, line 73 def supported?(supports) raise ArgumentError, "`supports` is nil." unless supports supports.any? { |support| support.all? { |k, v| case normalize(k) when :os_family, :platform_family then in_family?(v) when :os, :platform then platform?(v) when :os_name, :platform_name then check_name(v) when :release then check_release(v) end } } || supports.empty? end
to_s()
click to toggle source
# File lib/inspec/resources/platform.rb, line 96 def to_s "Platform Detection" end
Private Instance Methods
check_name(value)
click to toggle source
# File lib/inspec/resources/platform.rb, line 102 def check_name(value) # allow wild card matching if value.include?("*") cleaned = Regexp.escape(value).gsub('\*', ".*?") name =~ /#{cleaned}/ else name == value end end
check_release(value)
click to toggle source
# File lib/inspec/resources/platform.rb, line 112 def check_release(value) # allow wild card matching if value.include?("*") cleaned = Regexp.escape(value).gsub('\*', ".*?") release =~ /#{cleaned}/ else release == value end end