Sha256: 4a49aa7c933dc7e7aa6c2a2b2a247311d8a30789203da80a853e3e9e58e937ed

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

module TerraspaceBundler
  class Mod
    extend Memoist
    extend Props::Extension
    props :export_to, :name, :sha, :source, :subfolder, :type, :url, :clone_with
    delegate :repo, :org, :repo_folder, :org_folder, to: :org_repo

    include Concerns::StackConcern
    include Concerns::LocalConcern

    attr_reader :props, :version, :ref, :tag, :branch
    def initialize(props={})
      @props = props.symbolize_keys
      # These props are used for version comparing by VersionComparer
      @version, @ref, @tag, @branch = @props[:version], @props[:ref], @props[:tag], @props[:branch]
    end

    # support variety of options, prefer version
    def checkout_version
      @version || @ref || @tag || @branch
    end

    def latest_sha
      fetcher = Fetcher.new(self).instance
      fetcher.run
      fetcher.sha
    end

    def vcs_provider
      if url.include?('http')
        # "https://github.com/org/repo"  => github.com
        url.match(%r{http[s]?://(.*?)/})[1]
      elsif url.include?('http') # git@
        # "git@github.com:org/repo"      => github.com
        url.match(%r{git@(.*?):})[1]
      else # ssh://user@domain.com/path/to/repo
        'none'
      end
    end

  private
    def org_repo
      OrgRepo.new(url)
    end
    memoize :org_repo
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
terraspace-bundler-0.5.0 lib/terraspace_bundler/mod.rb