Class: Ninny::Commands::PullRequestMerge
- Inherits:
-
Ninny::Command
- Object
- Ninny::Command
- Ninny::Commands::PullRequestMerge
- Defined in:
- lib/ninny/commands/pull_request_merge.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#branch_type ⇒ Object
readonly
Returns the value of attribute branch_type.
-
#options ⇒ Object
Returns the value of attribute options.
-
#pull_request ⇒ Object
Public: Find the pull request.
-
#pull_request_id ⇒ Object
Returns the value of attribute pull_request_id.
Instance Method Summary collapse
-
#branch_to_merge_into ⇒ Object
Public: Find the branch.
-
#check_out_branch ⇒ Object
Public: Check out the branch.
-
#comment_about_merge ⇒ Object
Public: Comment that the pull request was merged into the branch.
-
#comment_body ⇒ Object
Public: The content of the comment to post when merged.
- #execute(input: $stdin, output: $stdout) ⇒ Object
-
#initialize(pull_request_id, options) ⇒ PullRequestMerge
constructor
A new instance of PullRequestMerge.
-
#merge_pull_request ⇒ Object
Public: Merge the pull request’s branch into the checked-out branch.
Methods inherited from Ninny::Command
#command, #cursor, #editor, #exec_exist?, #generator, #pager, #platform, #prompt, #screen, #which
Constructor Details
#initialize(pull_request_id, options) ⇒ PullRequestMerge
Returns a new instance of PullRequestMerge.
11 12 13 14 15 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 11 def initialize(pull_request_id, ) @branch_type = [:branch_type] || Ninny::Git::STAGING_PREFIX self.pull_request_id = pull_request_id self. = end |
Instance Attribute Details
#branch_type ⇒ Object (readonly)
Returns the value of attribute branch_type.
9 10 11 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 9 def branch_type @branch_type end |
#options ⇒ Object
Returns the value of attribute options.
8 9 10 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 8 def @options end |
#pull_request ⇒ Object
Public: Find the pull request
Returns a Ninny::Repository::PullRequest
62 63 64 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 62 def pull_request @pull_request end |
#pull_request_id ⇒ Object
Returns the value of attribute pull_request_id.
8 9 10 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 8 def pull_request_id @pull_request_id end |
Instance Method Details
#branch_to_merge_into ⇒ Object
Public: Find the branch
Returns a String
69 70 71 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 69 def branch_to_merge_into @branch_to_merge_into ||= Ninny.git.latest_branch_for(branch_type) end |
#check_out_branch ⇒ Object
Public: Check out the branch
35 36 37 38 39 40 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 35 def check_out_branch Ninny.git.check_out(branch_to_merge_into) rescue Ninny::Git::NoBranchOfType prompt.say "No #{branch_type} branch available. Creating one now." CreateDatedBranch.new(branch: branch_type).execute end |
#comment_about_merge ⇒ Object
Public: Comment that the pull request was merged into the branch
48 49 50 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 48 def comment_about_merge pull_request.write_comment(comment_body) end |
#comment_body ⇒ Object
Public: The content of the comment to post when merged
Returns a String
55 56 57 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 55 def comment_body "Merged into #{branch_to_merge_into}." end |
#execute(input: $stdin, output: $stdout) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/ninny/commands/pull_request_merge.rb', line 17 def execute(input: $stdin, output: $stdout) if (!pull_request_id) current = Ninny.repo.current_pull_request self.pull_request_id = current.number if current end self.pull_request_id ||= select_pull_request check_out_branch merge_pull_request comment_about_merge end |