Class: Kitchen::Platform

Inherits:
Object
  • Object
show all
Defined in:
lib/kitchen/platform.rb

Overview

A target operating system environment in which convergence integration will take place. This may represent a specific operating system, version, and machine architecture.

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Platform

Constructs a new platform.

Parameters:

  • options (Hash) (defaults to: {})

    configuration for a new platform

Options Hash (options):

  • :name (String)

    logical name of this platform (Required)



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/kitchen/platform.rb', line 42

def initialize(options = {})
  @name = options.fetch(:name) do
    raise ClientError, "Platform#new requires option :name"
  end
  @os_type = options.fetch(:os_type) do
    @name.downcase =~ /^win/ ? "windows" : "unix"
  end
  @shell_type = options.fetch(:shell_type) do
    @name.downcase =~ /^win/ ? "powershell" : "bourne"
  end
end

Instance Attribute Details

#nameString (readonly)

Returns logical name of this platform.

Returns:

  • (String)

    logical name of this platform



29
30
31
# File 'lib/kitchen/platform.rb', line 29

def name
  @name
end

#os_typeString (readonly)

Returns operating system type hint (default: "unix").

Returns:

  • (String)

    operating system type hint (default: "unix")



32
33
34
# File 'lib/kitchen/platform.rb', line 32

def os_type
  @os_type
end

#shell_typeString (readonly)

Returns shell command flavor hint (default: "bourne").

Returns:

  • (String)

    shell command flavor hint (default: "bourne")



35
36
37
# File 'lib/kitchen/platform.rb', line 35

def shell_type
  @shell_type
end

Instance Method Details

#diagnoseHash

Returns a Hash of configuration and other useful diagnostic information.

Returns:

  • (Hash)

    a diagnostic hash



57
58
59
# File 'lib/kitchen/platform.rb', line 57

def diagnose
  { :os_type => os_type, :shell_type => shell_type }
end