Refactor to separate files
This commit is contained in:
parent
6af34f3d35
commit
7cf528700f
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
require "open3"
|
require "open3"
|
||||||
require "thor"
|
require "thor"
|
||||||
|
require_relative "./lib/git_ticket"
|
||||||
|
|
||||||
##
|
##
|
||||||
# CLI interface to the GitTicket class below
|
# CLI interface to the GitTicket class below
|
||||||
|
@ -29,63 +30,4 @@ class GitTicketCli < Thor
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
|
||||||
# Provides an interface to the git commits related to a specific ticket
|
|
||||||
class GitTicket
|
|
||||||
attr_reader :ticket
|
|
||||||
attr_accessor :git_command
|
|
||||||
|
|
||||||
##
|
|
||||||
# Creates a new diff from all commits referencing a given ticket.
|
|
||||||
#
|
|
||||||
# @param [String] ticket_reference The ticket reference to use
|
|
||||||
# @param [String] diff_target The git reference to diff against.
|
|
||||||
def initialize(ticket_reference)
|
|
||||||
@ticket = ticket_reference
|
|
||||||
@git_command = "git -c color.ui=always" # So our output is colourised
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Sets and returns the commit messages for each commit
|
|
||||||
# @return [Array<String>] The commit messages
|
|
||||||
def commit_messages
|
|
||||||
return @commit_messages if @commit_messages
|
|
||||||
|
|
||||||
@commit_messages = []
|
|
||||||
shas.each do |sha|
|
|
||||||
message, _status = Open3.capture2("#{git_command} show #{sha} -s")
|
|
||||||
@commit_messages.push(message)
|
|
||||||
end
|
|
||||||
|
|
||||||
@commit_messages
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Sets and returns the patches for each commit.
|
|
||||||
#
|
|
||||||
# @return [Array<String>] The diffs
|
|
||||||
def patches
|
|
||||||
return @patches if @patches
|
|
||||||
|
|
||||||
@patches = []
|
|
||||||
shas.each do |sha|
|
|
||||||
patch, _status = Open3.capture2("#{git_command} show #{sha} --patch")
|
|
||||||
@patches.push(patch)
|
|
||||||
end
|
|
||||||
|
|
||||||
@patches
|
|
||||||
end
|
|
||||||
##
|
|
||||||
|
|
||||||
# Sets and returns the commit SHAs referenced.
|
|
||||||
#
|
|
||||||
# @return [Array<String>] The commit SHAs
|
|
||||||
def shas
|
|
||||||
return @shas if @shas
|
|
||||||
|
|
||||||
@shas, _status = Open3.capture2("#{git_command} log --all --grep #{@ticket} --format=%H")
|
|
||||||
@shas = @shas.split("\n")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
GitTicketCli.start
|
GitTicketCli.start
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
##
|
||||||
|
# Provides an interface to the git commits related to a specific ticket
|
||||||
|
class GitTicket
|
||||||
|
attr_reader :ticket
|
||||||
|
attr_accessor :git_command
|
||||||
|
|
||||||
|
##
|
||||||
|
# Creates a new diff from all commits referencing a given ticket.
|
||||||
|
#
|
||||||
|
# @param [String] ticket_reference The ticket reference to use
|
||||||
|
# @param [String] diff_target The git reference to diff against.
|
||||||
|
def initialize(ticket_reference)
|
||||||
|
@ticket = ticket_reference
|
||||||
|
@git_command = "git -c color.ui=always" # So our output is colourised
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Sets and returns the commit messages for each commit
|
||||||
|
# @return [Array<String>] The commit messages
|
||||||
|
def commit_messages
|
||||||
|
return @commit_messages if @commit_messages
|
||||||
|
|
||||||
|
@commit_messages = []
|
||||||
|
shas.each do |sha|
|
||||||
|
message, _status = Open3.capture2("#{git_command} show #{sha} -s")
|
||||||
|
@commit_messages.push(message)
|
||||||
|
end
|
||||||
|
|
||||||
|
@commit_messages
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Sets and returns the patches for each commit.
|
||||||
|
#
|
||||||
|
# @return [Array<String>] The diffs
|
||||||
|
def patches
|
||||||
|
return @patches if @patches
|
||||||
|
|
||||||
|
@patches = []
|
||||||
|
shas.each do |sha|
|
||||||
|
patch, _status = Open3.capture2("#{git_command} show #{sha} --patch")
|
||||||
|
@patches.push(patch)
|
||||||
|
end
|
||||||
|
|
||||||
|
@patches
|
||||||
|
end
|
||||||
|
##
|
||||||
|
|
||||||
|
# Sets and returns the commit SHAs referenced.
|
||||||
|
#
|
||||||
|
# @return [Array<String>] The commit SHAs
|
||||||
|
def shas
|
||||||
|
return @shas if @shas
|
||||||
|
|
||||||
|
@shas, _status = Open3.capture2("#{git_command} log --all --grep #{@ticket} --format=%H")
|
||||||
|
@shas = @shas.split("\n")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue