Sha256: 2711297b92fed0c9e91f151a3ebf072961b3dcc5697eb1a5552918c4d4e31db2

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

module GitCompound
  class Component
    module Version
      # Abstraction for component versions like
      #   gem version, sha and branch
      #
      class VersionStrategy
        def initialize
          raise NotImplementedError
        end

        # Should return git reference (ex branch, tag or sha)
        # This should not raise exception if unreachable
        #
        def ref
          raise NotImplementedError
        end

        # Should return sha for specified reference
        #   (ex tagged commit sha or head of specified branch)
        #
        def sha
          raise NotImplementedError
        end

        # Should return true if this reference in source repository
        #   is reachable
        #
        def reachable?
          raise NotImplementedError
        end

        # String representation of this version strategy
        #
        def to_s
          raise NotImplementedError
        end

        def ==(other)
          to_s == other.to_s
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
git_compound-0.1.2 lib/git_compound/component/version/version_strategy.rb
git_compound-0.1.1 lib/git_compound/component/version/version_strategy.rb
git_compound-0.1.0 lib/git_compound/component/version/version_strategy.rb
git_compound-0.0.10 lib/git_compound/component/version/version_strategy.rb
git_compound-0.0.9 lib/git_compound/component/version/version_strategy.rb