class Luban::Deployment::Package::Dependency

Attributes

apply_to[R]
name[R]
options[R]
type[R]
version[R]

Public Class Methods

new(apply_to, type, name, version, **opts) click to toggle source
# File lib/luban/deployment/cli/package/dependency.rb, line 13
def initialize(apply_to, type, name, version, **opts)
  @apply_to = apply_to
  @type = type
  @name = name
  @version = version
  @options = opts
  validate
end

Public Instance Methods

applicable_to?(version) click to toggle source
# File lib/luban/deployment/cli/package/dependency.rb, line 22
def applicable_to?(version)
  if @apply_to == :all
    true
  else
    Gem::Requirement.new(@apply_to).satisfied_by?(Gem::Version.new(version))
  end
end

Protected Instance Methods

validate() click to toggle source
# File lib/luban/deployment/cli/package/dependency.rb, line 32
def validate
  if @apply_to.nil?
    raise ArgumentError, 'The version requirement that the dependency applies to is NOT provided.'
  end
  unless DependencyTypes.include?(@type)
    raise ArgumentError, "Invalid dependency type: #{type.inspect}"
  end
  if @name.nil?
    raise ArgumentError, 'Dependency name is NOT provided.'
  end
  if @version.nil?
    raise ArgumentError, 'Dependency version is NOT provided.'
  end
end