require 'rubygems' require 'rake' begin require 'jeweler' Jeweler::Tasks.new do |gem| gem.name = "echo" gem.summary = %Q{An API test proxy that learns and repeats} gem.description = %Q{Echo is a test double for API interactions that learns from the real API. In its simplest use case, it extends Net::HTTP and tracks every HTTP call to a registered domain. If it hasn't seen that call, it stores both the request and the response. On subsequent calls it returns the stored response. Explicit scenario start/end markers are also supported for more complex multiple-step interactions.} gem.email = "sfeley@gmail.com" gem.homepage = "http://github.com/SFEley/echo" gem.authors = ["Stephen Eley"] gem.add_development_dependency "rspec", ">= 1.2.9" gem.add_development_dependency "yard", ">= 0" gem.add_development_dependency "cucumber", ">= 0" # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings end Jeweler::GemcutterTasks.new rescue LoadError puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler" end require 'spec/rake/spectask' Spec::Rake::SpecTask.new(:spec) do |spec| spec.libs << 'lib' << 'spec' spec.spec_files = FileList['spec/**/*_spec.rb'] end Spec::Rake::SpecTask.new(:rcov) do |spec| spec.libs << 'lib' << 'spec' spec.pattern = 'spec/**/*_spec.rb' spec.rcov = true end task :spec => :check_dependencies begin require 'cucumber/rake/task' Cucumber::Rake::Task.new(:features) task :features => :check_dependencies rescue LoadError task :features do abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber" end end task :default => :spec begin require 'yard' YARD::Rake::YardocTask.new rescue LoadError task :yardoc do abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard" end end