Sha256: f39ab67835c64ff5953da97fcbd55ca98ec5b4f6e9febd9cb873422bb347234f

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

class Capistrano::Notifier::Base
  def initialize(capistrano)
    @cap = capistrano
  end

  private

  def application
    cap.application
  end

  def branch
    cap.respond_to?(:branch) ? cap.branch : 'master'
  end

  def cap
    @cap
  end

  def git_current_revision
    cap.current_revision[0,7] if cap.respond_to? :current_revision
  end

  def git_log
    return unless git_range

    `git log #{git_range} --no-merges --format=format:"%h %s (%an)"`
  end

  def git_previous_revision
    cap.previous_revision[0,7] if cap.respond_to? :previous_revision
  end

  def git_range
    return unless git_previous_revision && git_current_revision

    "#{git_previous_revision}..#{git_current_revision}"
  end

  def now
    @now ||= Time.now
  end

  def stage
    cap.stage if cap.respond_to? :stage
  end

  def user_name
    user = ENV['DEPLOYER']
    user = `git config --get user.name`.strip if user.nil?
  end
end

# Band-aid for issue with Capistrano
# https://github.com/capistrano/capistrano/issues/168#issuecomment-4144687
Capistrano::Configuration::Namespaces::Namespace.class_eval do
  def capture(*args)
    parent.capture *args
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
capistrano-notifier-0.2.1 lib/capistrano/notifier/base.rb
capistrano-notifier-0.2.0 lib/capistrano/notifier/base.rb