Repository URL to install this package:
|
Version:
1.0.4 ▾
|
require "buildgem/configuration"
require "buildgem/version"
require "buildgem/committer"
require "buildgem/tagger"
require "buildgem/pusher"
require "buildgem/builder"
require "buildgem/deployer"
require "buildgem/cleaner"
module Buildgem
include ForwardGemMethodsToConfig
VERSION = "1.0.4"
class << self
def run!
prevent_mistakes!
Version.increment!(version_mode)
log "Bumped file up to #{gem_version}!"
Committer.commit!
log "Committed #{gem_version_file_path}!"
Tagger.tag!
log "Tagged #{gem_version}!"
Pusher.push! if config.git_push_tags
Builder.build!
log "Built gem at version #{gem_version}!"
Deployer.deploy! unless ENV['RACK_ENV'] == 'test'
Cleaner.clean!
log "Removed #{gem_top_level_namespace}-#{gem_version}.gem"
end
def configure
yield(configuration)
end
def configuration
@configuration ||= Configuration.new
end
alias :config :configuration
private
def prevent_mistakes!
unless ENV['RACK_ENV'] == 'test'
current_version = gem_version.gsub('"', '')
new_version = Version.get_potential_new_version(version_mode)
log "Are you sure you want to:"
log "-------------------------"
log "* Tag #{gem_top_level_namespace} from #{current_version} to #{new_version}"
if config.git_push_tags
log "* Push #{gem_top_level_namespace} (#{new_version}) to origin"
end
log "* Deploy #{gem_top_level_namespace}-#{new_version}.gem to #{gem_source}?"
log "-------------------------"
log "Answering ANYTHING besides 'y' will abort:"
answer = gets
exit unless answer =~ /y/i
end
end
def version_mode
@version_mode ||= ARGV.shift
end
def log(msg)
unless ENV['RACK_ENV'] == 'test'
print "#{msg}\n"
end
end
end
end