Sha256: 92594f9a9f1e16240fec6f1217e0e3975863f589d05e1ba9eeb22b9397cc9781
Contents?: true
Size: 1.2 KB
Versions: 5
Compression:
Stored size: 1.2 KB
Contents
require 'thor' require 'pathname' require 'rugged' require 'thegarage/gitx' module Thegarage module Gitx module Cli class BaseCommand < Thor include Thor::Actions class MergeError < Thor::Error; end 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
5 entries across 5 versions & 1 rubygems