Class: Avm::Git::Issue::Complete

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/git/issue/complete.rb,
lib/avm/git/issue/complete/push.rb,
lib/avm/git/issue/complete/test.rb,
lib/avm/git/issue/complete/remote.rb,
lib/avm/git/issue/complete/commits.rb,
lib/avm/git/issue/complete/tracker.rb,
lib/avm/git/issue/complete/local_tag.rb,
lib/avm/git/issue/complete/validation.rb,
lib/avm/git/issue/complete/validations.rb,
lib/avm/git/issue/complete/git_subrepos.rb,
lib/avm/git/issue/complete/local_branch.rb,
lib/avm/git/issue/complete/working_tree.rb

Defined Under Namespace

Modules: Commits, GitSubrepos, LocalBranch, LocalTag, Push, Remote, Test, Tracker, Validations, WorkingTree Classes: Validation

Constant Summary collapse

BRANCH_NAME_ISSUE_ID_PATTERN =
attr_reader :dir, :skip_validations

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Complete

Returns a new instance of Complete.



18
19
20
21
22
23
# File 'lib/avm/git/issue/complete.rb', line 18

def initialize(options)
  consumer = ::EacRubyUtils::OptionsConsumer.new(options)
  @dir, @skip_validations = consumer.consume_all(:dir, :skip_validations)
  validate_skip_validations
  consumer.validate
end

Instance Method Details

#issue_idObject



39
40
41
# File 'lib/avm/git/issue/complete.rb', line 39

def issue_id
  branch ? issue_id_parser.parse(branch_name) : nil
end

#issue_id_parserEacRubyUtils::RegexpParser

Returns:

  • (EacRubyUtils::RegexpParser)


44
45
46
# File 'lib/avm/git/issue/complete.rb', line 44

def issue_id_parser
  /\A#{Regexp.quote('issue_')}(\d+)\z/.to_parser { |m| m[1].to_i }
end

#runObject



29
30
31
32
33
34
35
36
37
# File 'lib/avm/git/issue/complete.rb', line 29

def run
  return false unless valid?

  assert_tag
  push
  remove_local_branch
  clipboard_copy_tracker_message
  true
end

#start_bannerObject



25
26
27
# File 'lib/avm/git/issue/complete.rb', line 25

def start_banner
  validations_banner
end