# module Chef::DSL::PlatformIntrospection

## Chef::DSL::PlatformIntrospection¶ ↑

Provides the DSL for platform-dependent switch logic, such as value_for_platform.

### Public Instance Methods

platform?(*args) click to toggle source

Given a list of platforms, returns true if the current recipe is being run on a node with that platform, false otherwise.

### Parameters¶ ↑

args

  A list of platforms. Each platform can be in string or symbol format.

### Returns¶ ↑

true

  If the current platform is in the list

false

  If the current platform is not in the list

    # File lib/chef/dsl/platform_introspection.rb, line 119
    def platform?(*args)
      has_platform = false

      args.flatten.each do |platform|
        has_platform = true if platform.to_s == node[:platform]
      end

      has_platform
    end

platform_family?(*args) click to toggle source

Given a list of platform families, returns true if the current recipe is being run on a node within that platform family, false otherwise.

### Parameters¶ ↑

args

  A list of platform families. Each platform family can be in string or symbol format.

### Returns¶ ↑

true

  if the current node platform family is in the list.

false

  if the current node platform family is not in the list.

    # File lib/chef/dsl/platform_introspection.rb, line 205
    def platform_family?(*args)
      args.flatten.any? do |platform_family|
        platform_family.to_s == node[:platform_family]
      end
    end

value_for_platform(platform_hash) click to toggle source

Given a hash similar to the one we use for Platforms, select a value from the hash. Supports per platform defaults, along with a single base default. Arrays may be passed as hash keys and will be expanded.

### Parameters¶ ↑

platform_hash

  A platform-style hash.

### Returns¶ ↑

value

  Whatever the most specific value of the hash is.

    # File lib/chef/dsl/platform_introspection.rb, line 106
    def value_for_platform(platform_hash)
      PlatformDependentValue.new(platform_hash).value_for_node(node)
    end

value_for_platform_family(platform_family_hash) click to toggle source

Given a hash mapping platform families to values, select a value from the hash. Supports a single base default if platform family is not in the map. Arrays may be passed as hash keys and will be expanded

### Parameters¶ ↑

platform_family_hash

  A hash in the form { platform_family_name => value }

### Returns¶ ↑

value

  Whatever the most specific value of the hash is.

    # File lib/chef/dsl/platform_introspection.rb, line 192
    def value_for_platform_family(platform_family_hash)
      PlatformFamilyDependentValue.new(platform_family_hash).value_for_node(node)
    end