class Capistrano::Slacky::Command::Diff
Attributes
current[R]
previous[R]
Public Class Methods
call(previous:, current:)
click to toggle source
# File lib/capistrano/slacky/command/diff.rb, line 7 def self.call(previous:, current:) output = nil ::Capistrano::Slacky.on(within: :repository) do output = new(previous: previous, current: current).call end output end
new(previous:, current:)
click to toggle source
# File lib/capistrano/slacky/command/diff.rb, line 17 def initialize(previous:, current:) @previous = previous @current = current end
Public Instance Methods
call()
click to toggle source
# File lib/capistrano/slacky/command/diff.rb, line 22 def call log = ::SSHKit::Backend.current.capture( :git, :log, "--oneline", "--first-parent", "#{previous}..#{current}" ).split("\n") log.map.with_index(1) do |line, index| sha, commit = line.match(/^(\w+) (.*+?)/).captures if /^Merge pull request/.match?(commit) commit = ::SSHKit::Backend.current.capture(:git, :log, "-1", sha, '--pretty=format:"%b"') end Message.new(index: index, sha: sha, commit: commit) end end