require "bundler/gem_tasks" $:.unshift 'lib' dlext = RbConfig::CONFIG['DLEXT'] direc = File.dirname(__FILE__) PROJECT_NAME = "pry-stack_explorer" require 'rake/clean' require 'rubygems/package_task' require "#{PROJECT_NAME}/version" CLOBBER.include("**/*~", "**/*#*", "**/*.log") CLEAN.include("**/*#*", "**/*#*.*", "**/*_flymake*.*", "**/*_flymake", "**/*.rbc", "**/.#*.*") def apply_spec_defaults(s) s.name = PROJECT_NAME s.summary = "Walk the stack in a Pry session" s.version = PryStackExplorer::VERSION s.date = Time.now.strftime '%Y-%m-%d' s.author = "John Mair (banisterfiend)" s.email = 'jrmair@gmail.com' s.description = s.summary s.require_path = 'lib' s.add_dependency("binding_of_caller",">= 0.7") s.add_dependency("pry",">=0.9.11") s.add_development_dependency("bacon","~>1.1.0") s.add_development_dependency('rake', '~> 0.9') s.homepage = "https://github.com/pry/pry-stack_explorer" s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- test/*`.split("\n") end desc "run pry with plugin enabled" task :pry do exec("pry -I#{direc}/lib/ -r #{direc}/lib/#{PROJECT_NAME}") end desc "Run example" task :example do sh "ruby -I#{direc}/lib/ #{direc}/examples/example.rb " end desc "Run example2" task :example2 do sh "ruby -I#{direc}/lib/ #{direc}/examples/example2.rb " end desc "Run example3" task :example3 do sh "ruby -I#{direc}/lib/ #{direc}/examples/example3.rb " end desc "Show version" task :version do puts "PryStackExplorer version: #{PryStackExplorer::VERSION}" end desc "run tests" task :default => :test desc "run tests" task :test do sh "bacon -Itest -a -q" end desc "generate gemspec" task :gemspec => "ruby:gemspec" namespace :ruby do spec = Gem::Specification.new do |s| apply_spec_defaults(s) s.platform = Gem::Platform::RUBY end Gem::PackageTask.new(spec) do |pkg| pkg.need_zip = false pkg.need_tar = false end desc "Generate gemspec file" task :gemspec do File.open("#{spec.name}.gemspec", "w") do |f| f << spec.to_ruby end end end desc "build all platform gems at once" task :gems => [:clean, :rmgems, :gemspec, "ruby:gem"] desc "remove all platform gems" task :rmgems => ["ruby:clobber_package"] desc "reinstall gem" task :reinstall => :gems do sh "gem uninstall pry-stack_explorer" rescue nil sh "gem install -l #{direc}/pkg/#{PROJECT_NAME}-#{PryStackExplorer::VERSION}.gem" end task :install => :reinstall desc "build and push latest gems" task :pushgems => :gems do chdir("#{File.dirname(__FILE__)}/pkg") do Dir["*.gem"].each do |gemfile| sh "gem push #{gemfile}" end end end task :pushgem => :pushgems