Sha256: 54a64c44b135db153ac586cdea84468efdc7294016573a03fd0345514391de91

Contents?: true

Size: 1.15 KB

Versions: 11

Compression:

Stored size: 1.15 KB

Contents

require 'thor'
require 'pathname'
require 'rugged'
require 'thegarage/gitx'

module Thegarage
  module Gitx
    module Cli
      class BaseCommand < Thor
        include Thor::Actions

        AGGREGATE_BRANCHES = %w( staging prototype )
        RESERVED_BRANCHES = %w( HEAD master next_release ) + AGGREGATE_BRANCHES
        add_runtime_options!

        method_option :trace, :type => :boolean, :aliases => '-v'
        def initialize(*args)
          super(*args)
        end

        private

        def repo
          @repo ||= begin
            path = Dir.pwd
            Rugged::Repository.discover(path)
          end
        end

        def checkout_branch(branch_name)
          run_cmd "git checkout #{branch_name}"
        end

        # lookup the current branch of the repo
        def current_branch
          repo.branches.find(&:head?)
        end

        def aggregate_branch?(branch)
          AGGREGATE_BRANCHES.include?(branch)
        end

        def assert_not_protected_branch!(branch, action)
          raise "Cannot #{action} reserved branch" if RESERVED_BRANCHES.include?(branch) || aggregate_branch?(branch)
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
thegarage-gitx-2.5.0.beta5 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.5.0.beta4 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.5.0.beta3 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.5.0.beta2 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.5.0.beta1 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.4.2 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.5.0.alpha1 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.4.1 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.4.0 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.4.0.pre1 lib/thegarage/gitx/cli/base_command.rb
thegarage-gitx-2.3.0 lib/thegarage/gitx/cli/base_command.rb