module PoiseLanguages::System::Mixin::ClassMethods

Public Instance Methods

default_inversion_options(node, resource) click to toggle source

Set some default inversion provider options. Package name can't get a default value here because that would complicate the handling of {system_package_candidates}.

@api private

Calls superclass method
# File lib/poise_languages/system/mixin.rb, line 113
def default_inversion_options(node, resource)
  super.merge({
    # Install dev headers?
    dev_package: true,
    # Manual overrides for package name and/or version.
    package_name: nil,
    package_version: nil,
    # Set to true to use action :upgrade on system packages.
    package_upgrade: false,
  })
end
default_package(name=nil) click to toggle source

@overload default_package()

Return the default package name for platforms not otherwise defined.
@return [String]

@overload default_package(name)

Set the default package name for platforms not defined in {packages}.
@param name [String] Package name.
@return [String]
# File lib/poise_languages/system/mixin.rb, line 152
def default_package(name=nil)
  if name
    @default_package = name
  end
  @default_package
end
included(klass) click to toggle source

@api private

Calls superclass method
# File lib/poise_languages/system/mixin.rb, line 160
def included(klass)
  super
  klass.extend(ClassMethods)
end
packages(default_package=nil, packages=nil) click to toggle source

@overload packages()

Return a hash formatted for value_for_platform returning an Array
of package names.
@return [Hash]

@overload packages(default_package, packages)

Define what system packages are available for this language on each
platform.
@param default_package [String] Default package name for platforms
  not otherwise defined.
@param [Hash] Hash formatted for value_for_platform returning an
  Array of package names.
@return [Hash]
# File lib/poise_languages/system/mixin.rb, line 137
def packages(default_package=nil, packages=nil)
  self.default_package(default_package) if default_package
  if packages
    @packages = packages
  end
  @packages
end
provides_auto?(node, resource) click to toggle source

Install this as a default provider if nothing else matched. Might not work, but worth a try at least for unknown platforms. Windows is a whole different story, and OS X might work sometimes so at least try.

@api private

# File lib/poise_languages/system/mixin.rb, line 104
def provides_auto?(node, resource)
  !node.platform_family?('windows')
end