rakefile.rb in mudbug-0.4.7.1 vs rakefile.rb in mudbug-0.4.7.2
- old
+ new
@@ -1,133 +1,24 @@
-require 'rubygems/package_task'
+require 'buildar/tasks'
require 'rake/testtask'
-Rake::TestTask.new :test do |t|
- t.pattern = 'test/*.rb'
-end
+Buildar.conf(__FILE__) do |b|
+ b.name = 'mudbug'
+ b.use_version_file = true
+ b.version_filename = 'VERSION'
+ b.use_manifest_file = true
+ b.manifest_filename = 'MANIFEST.txt'
+ b.use_git = true
+ b.publish[:rubygems] = true
-PROJECT_ROOT = File.dirname(__FILE__)
-PROJECT_NAME = File.split(PROJECT_ROOT).last
-VERSION_FILE = File.join(PROJECT_ROOT, 'VERSION')
-MANIFEST_FILE = File.join(PROJECT_ROOT, 'MANIFEST.txt')
+ b.gemspec.summary = "This hardy creature consumes JSON / REST APIs"
+ b.gemspec.description = "GET, POST, PUT, and DELETE JSON payloads. Easy Accept headers. Fine-grained response handling using Mudbug#resource."
+ b.gemspec.author = "Rick Hull"
+ b.gemspec.homepage = "http://github.com/rickhull/mudbug"
+ b.gemspec.license = 'LGPL'
-def version
- File.read(VERSION_FILE).chomp
+ b.gemspec.add_runtime_dependency "rest-client", ["~> 1"]
+ b.gemspec.add_runtime_dependency "json", ["~> 1"]
+ b.gemspec.add_runtime_dependency "lager", [">= 0.2"]
+ b.gemspec.add_development_dependency "minitest", [">= 0"]
+ b.gemspec.add_development_dependency "buildar", ["~> 1.2"]
end
-
-task :version do
- puts "#{PROJECT_NAME} #{version}"
-end
-
-task :tag => [:test] do
- tagname = "v#{version}"
- sh "git tag -a #{tagname} -m 'auto-tagged #{tagname} by Rake'"
- sh "git push origin --tags"
-end
-
-def manifest
- File.readlines(MANIFEST_FILE).map { |line| line.chomp }
-end
-
-task :manifest do
- puts manifest.join("\n")
-end
-
-task :build => [:test, :bump_build] do
- spec = Gem::Specification.new do |s|
- # Static assignments
- s.name = "mudbug"
- s.summary = "This hardy creature consumes JSON / REST APIs"
- s.description = "GET, POST, PUT, and DELETE JSON payloads. Easy Accept headers. Fine-grained response handling using Mudbug#resource."
- s.authors = ["Rick Hull"]
- s.email = "rick@cloudscaling.com"
- s.homepage = "http://github.com/rickhull/mudbug"
- s.licenses = ['LGPL']
-
- # Dynamic assignments
- s.files = manifest
- s.version = version
- s.date = Time.now.strftime("%Y-%m-%d")
-
- s.add_runtime_dependency "rest-client", ["~> 1"]
- s.add_runtime_dependency "json", ["~> 1"]
- s.add_runtime_dependency "lager", [">= 0.2"]
- s.add_development_dependency "minitest", [">= 0"]
- s.add_development_dependency "rake", [">= 0"]
- end
-
- # we're definining the task at runtime, rather than requiretime
- # so that the gemspec will reflect any version bumping since requiretime
- #
- Gem::PackageTask.new(spec).define
- Rake::Task["package"].invoke
-end
-
-# e.g. bump(:minor, '1.2.3') #=> '1.3.0'
-# only works for integers delimited by periods (dots)
-#
-def bump(position, version)
- pos = [:major, :minor, :patch, :build].index(position) || position
- places = version.split('.')
- raise "bad position: #{pos} (for version #{version})" unless places[pos]
- places.map.with_index { |place, i|
- if i < pos
- place
- elsif i == pos
- place.to_i + 1
- else
- 0
- end
- }.join('.')
-end
-
-def write_version new_version
- File.open(VERSION_FILE, 'w') { |f| f.write(new_version) }
-end
-
-[:major, :minor, :patch, :build].each { |v|
- task "bump_#{v}" do
- old_version = version
- new_version = bump(v, old_version)
- puts "bumping #{old_version} to #{new_version}"
- write_version new_version
- sh "git add VERSION"
- sh "git commit -m 'rake bump_#{v}'"
- end
-}
-task :bump => [:bump_patch]
-
-task :verify_publish_credentials do
- creds = '~/.gem/credentials'
- fp = File.expand_path(creds)
- raise "#{creds} does not exist" unless File.exists?(fp)
- raise "can't read #{creds}" unless File.readable?(fp)
-end
-
-task :publish => [:verify_publish_credentials] do
- fragment = "-#{version}.gem"
- pkg_dir = File.join(PROJECT_ROOT, 'pkg')
- Dir.chdir(pkg_dir) {
- candidates = Dir.glob "*#{fragment}"
- case candidates.length
- when 0
- raise "could not find .gem matching #{fragment}"
- when 1
- sh "gem push #{candidates.first}"
- else
- raise "multiple candidates found matching #{fragment}"
- end
- }
-end
-
-task :gitpush do
- # may prompt
- sh "git push origin"
- # this kills the automation
- # use key-based auth?
- # consider a timeout?
-end
-
-task :release => [:build, :tag, :publish, :gitpush]
-task :release_patch => [:bump_patch, :release]
-task :release_minor => [:bump_minor, :release]
-task :release_major => [:bump_major, :release]