Rakefile in bait-0.5.0 vs Rakefile in bait-0.5.1
- old
+ new
@@ -1,10 +1,61 @@
+ENV['RACK_ENV'] = "development"
+
require "bundler/gem_tasks"
require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec)
task :default => :spec
task :pry do
require 'pry'; binding.pry
+end
+
+namespace :assets do
+ task :precompile do
+ public = File.join File.dirname(__FILE__), %w(lib bait public)
+ require 'bait/api'
+ include Sinatra::AssetSnack::InstanceMethods
+ Sinatra::AssetSnack.assets.each do |assets|
+ compiled_path = File.join public, assets[:route]
+ puts "compiling #{compiled_path}"
+ File.open(compiled_path, 'w') do |file|
+ response = compile assets[:paths]
+ file.write response[:body]
+ end
+ end
+ end
+end
+
+
+def git_master?
+ `git branch | grep '* master'`
+ $?.exitstatus == 0
+end
+
+def git_dirty?
+ `git status --porcelain`.match(/^\sM/)
+end
+
+namespace :gem do
+ task :build => 'assets:precompile' do
+ `bundle install`
+ if git_dirty?
+ puts "dirty! commit first before building"
+ else
+ if git_master?
+ puts "On master branch"
+ `rspec spec`
+ if $?.exitstatus == 0
+ puts "Specs pass. you're ready"
+ puts `gem build bait.gemspec`
+ puts "Done! You can gem push that now"
+ else
+ puts "Uhh.. you have failing specs -- not building the gem"
+ end
+ else
+ puts "I'll only build the gem on the master branch"
+ end
+ end
+ end
end