module PoiseLanguages::Scl::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/scl/mixin.rb, line 94
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
find_scl_package(node, version) click to toggle source
# File lib/poise_languages/scl/mixin.rb, line 106
def find_scl_package(node, version)
  platform_version = ::Gem::Version.create(node['platform_version'])
  # Filter out anything that doesn't match this EL version.
  candidate_packages = scl_packages.select {|p| p[:platform_version].satisfied_by?(platform_version) }
  # Find something with a prefix match on the Python version.
  candidate_packages.find {|p| p[:version].start_with?(version) }
end
provides_auto?(node, resource) click to toggle source
# File lib/poise_languages/scl/mixin.rb, line 81
def provides_auto?(node, resource)
  # They don't build 32-bit versions for these and only for RHEL/CentOS.
  # TODO: What do I do about Fedora and/or Amazon?
  return false unless node['kernel']['machine'] == 'x86_64' && node.platform?('redhat', 'centos')
  version = inversion_options(node, resource)['version']
  !!find_scl_package(node, version)
end

Private Instance Methods

included(klass) click to toggle source
Calls superclass method
# File lib/poise_languages/scl/mixin.rb, line 124
def included(klass)
  super
  klass.extend(ClassMethods)
end
scl_package(version, name, devel_name=nil, platform_version='>= 6.0') click to toggle source
# File lib/poise_languages/scl/mixin.rb, line 120
def scl_package(version, name, devel_name=nil, platform_version='>= 6.0')
  scl_packages << {version: version, name: name, devel_name: devel_name, platform_version: ::Gem::Requirement.create(platform_version)}
end
scl_packages() click to toggle source
# File lib/poise_languages/scl/mixin.rb, line 116
def scl_packages
  @scl_packages ||= []
end