class ProjectReleaser::Project::Releaser

Public Class Methods

new(git) click to toggle source
# File lib/project_releaser/project/releaser.rb, line 6
def initialize(git)
  @git = git
end

Public Instance Methods

release(version) click to toggle source
# File lib/project_releaser/project/releaser.rb, line 10
def release(version)
  @git.returning_to_current_branch do |git|
    @git = git
    update_local_branches
    merge_branches if branches.size > 1
    push_release version
  end
end

Private Instance Methods

branches() click to toggle source
# File lib/project_releaser/project/releaser.rb, line 38
def branches
  @branches ||= begin
    branches = [:master]
    branches += [:develop] if @git.has_branch? :develop
    branches
  end
end
merge_branches() click to toggle source
# File lib/project_releaser/project/releaser.rb, line 26
def merge_branches
  logger.info "merging 'develop' into 'master'"
  @git.merge :master, :develop
  logger.info "merging back 'master' into 'develop'"
  @git.merge :develop, :master
end
push_release(version) click to toggle source
# File lib/project_releaser/project/releaser.rb, line 33
def push_release(version)
  logger.info "pushing new release `#{version}` to 'master'"
  @git.push :master, version
end
update_local_branches() click to toggle source
# File lib/project_releaser/project/releaser.rb, line 21
def update_local_branches
  logger.info 'updating local branches'
  @git.pull branches
end