Sha256: 2f4c82b700e7bbcb44e2c32cc648043ac1eff8f05ffcb0722814dc95d549dc51

Contents?: true

Size: 1.68 KB

Versions: 19

Compression:

Stored size: 1.68 KB

Contents

require 'r10k/module'

class R10K::Module::Definition < R10K::Module::Base

  attr_reader :version

  def initialize(name, dirname:, args:, implementation:, environment: nil)
    @original_name  = name
    @original_args  = args.dup
    @implementation = implementation
    @version        = implementation.statically_defined_version(name, args)

    super(name, dirname, args, environment)
  end

  def to_implementation
    mod = @implementation.new(@title, @dirname, @original_args, @environment)

    mod.origin = origin
    mod.spec_deletable = spec_deletable

    mod
  end

  # syncing is a noop for module definitions
  # Returns false to inidicate the module was not updated
  def sync(args = {})
    logger.debug1(_("Not updating module %{name}, assuming content unchanged") % {name: name})
    false
  end

  def status
    :insync
  end

  def properties
    type = nil

    if @args[:type]
      type = @args[:type]
    elsif @args[:ref] || @args[:commit] || @args[:branch] || @args[:tag]
      type = 'git'
    elsif @args[:svn]
      # This logic is clear and included for completeness sake, though at
      # this time module definitions do not support SVN versions.
      type = 'svn'
    else
      type = 'forge'
    end

    {
      expected: version,
      # We can't get the value for `actual` here because that requires the
      # implementation (and potentially expensive operations by the
      # implementation). Some consumers will check this value, if it exists
      # and if not, fall back to the expected version. That is the correct
      # behavior when assuming modules are unchanged, and why `actual` is set
      # to `nil` here.
      actual: nil,
      type: type
    }
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
r10k-5.0.0 lib/r10k/module/definition.rb
r10k-4.1.0 lib/r10k/module/definition.rb
r10k-4.0.2 lib/r10k/module/definition.rb
r10k-4.0.1 lib/r10k/module/definition.rb
r10k-4.0.0 lib/r10k/module/definition.rb
r10k-4.0.0.pre lib/r10k/module/definition.rb
r10k-3.16.0 lib/r10k/module/definition.rb
r10k-3.15.4 lib/r10k/module/definition.rb
r10k-3.15.3 lib/r10k/module/definition.rb
r10k-3.15.2 lib/r10k/module/definition.rb
r10k-3.15.1 lib/r10k/module/definition.rb
r10k-3.15.0 lib/r10k/module/definition.rb
akerl-r10k-3.14.2.1 lib/r10k/module/definition.rb
r10k-3.14.2 lib/r10k/module/definition.rb
r10k-3.14.1 lib/r10k/module/definition.rb
r10k-3.14.0 lib/r10k/module/definition.rb
r10k-3.13.0 lib/r10k/module/definition.rb
r10k-3.12.1 lib/r10k/module/definition.rb
r10k-3.12.0 lib/r10k/module/definition.rb