From 2614037c748408a695af037503c5e114a30432ae Mon Sep 17 00:00:00 2001 From: Theo Cushion Date: Wed, 10 Aug 2011 14:01:22 +0100 Subject: [PATCH 1/2] Feature: Added Ruby 1.8 support --- Rakefile | 50 ++++++++++++++++++++++++++++++--------- draper.gemspec | 10 ++++++-- lib/draper/all_helpers.rb | 2 +- lib/draper/base.rb | 4 ++-- spec/spec_helper.rb | 8 ++++++- 5 files changed, 57 insertions(+), 17 deletions(-) diff --git a/Rakefile b/Rakefile index 80078df..e014087 100644 --- a/Rakefile +++ b/Rakefile @@ -1,19 +1,47 @@ require 'bundler/gem_tasks' +require 'rake' +require 'rspec/core/rake_task' -namespace :cover_me do +RCOV = RUBY_VERSION.to_f == 1.8 + +namespace :spec do - desc "Generates and opens code coverage report." - task :report do - require 'cover_me' - CoverMe.complete! + RSpec::Core::RakeTask.new(:coverage) do |t| + t.pattern = 'spec/**/*_spec.rb' + + if RCOV + t.rcov = true + t.rcov_opts = '--exclude osx\/objc,spec,gems\/' + end + end + + RSpec::Core::RakeTask.new(:normal) do |t| + t.pattern ='spec/**/*_spec.rb' + t.rcov = false + end + + namespace :coverage do + desc "Cleanup coverage data" + task :cleanup do + rm_rf 'coverage.data' + rm_rf 'coverage' + end + + desc "Browse the code coverage report." + task :report => ["spec:coverage:cleanup", "spec:coverage"] do + if RCOV + require "launchy" + Launchy.open("coverage/index.html") + else + require 'cover_me' + CoverMe.complete! + end + end end end -task :test do - Rake::Task['cover_me:report'].invoke -end +desc "RSpec tests" +task "spec" => "spec:normal" -task :spec do - Rake::Task['cover_me:report'].invoke -end \ No newline at end of file +task "default" => "spec" diff --git a/draper.gemspec b/draper.gemspec index 69f614b..ec3a00c 100644 --- a/draper.gemspec +++ b/draper.gemspec @@ -22,9 +22,15 @@ Gem::Specification.new do |s| s.add_development_dependency "rspec", "~> 2.0.1" s.add_development_dependency "activesupport", "~> 3.0.9" s.add_development_dependency "actionpack", "~> 3.0.9" - s.add_development_dependency "ruby-debug19" s.add_development_dependency "guard" s.add_development_dependency "guard-rspec" s.add_development_dependency "rb-fsevent" - s.add_development_dependency 'cover_me', '>= 1.0.0.rc6' + if RUBY_VERSION.to_f == "1.8" + s.add_development_dependency "ruby-debug" + s.add_development_dependency "rcov" + s.add_development_dependency "launchy" + else + s.add_development_dependency "ruby-debug19" + s.add_development_dependency 'cover_me', '>= 1.0.0.rc6' + end end diff --git a/lib/draper/all_helpers.rb b/lib/draper/all_helpers.rb index 15cb806..e348270 100644 --- a/lib/draper/all_helpers.rb +++ b/lib/draper/all_helpers.rb @@ -31,7 +31,7 @@ module Draper def url_for(*args) if args.last.is_a?(Hash) && !args.last[:only_path] args = args.dup - args << args.pop.merge(host: ActionMailer::Base.default_url_options[:host]) + args << args.pop.merge('host' => ActionMailer::Base.default_url_options[:host]) end super(*args) end diff --git a/lib/draper/base.rb b/lib/draper/base.rb index 3e46b88..cd97d3b 100644 --- a/lib/draper/base.rb +++ b/lib/draper/base.rb @@ -58,8 +58,8 @@ module Draper private def select_methods - specified = self.allowed || (model.public_methods - denied) - (specified - self.public_methods) + FORCED_PROXY + specified = self.allowed || (model.public_methods.map{|s| s.to_sym} - denied.map{|s| s.to_sym}) + (specified - self.public_methods.map{|s| s.to_sym}) + FORCED_PROXY end def build_methods diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b0134af..4f92c1f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,6 +1,12 @@ require 'rubygems' require 'bundler' -require 'cover_me' + +require 'rspec' +begin + require 'cover_me' +rescue LoadError + # Silently fail +end require './spec/samples/application_helper.rb' Bundler.require Dir.glob('./spec/samples/*') {|file| require file} From 8866ead57cb461cb7bfdfe182350d6d5bbca0834 Mon Sep 17 00:00:00 2001 From: Theo Cushion Date: Thu, 11 Aug 2011 10:05:03 +0100 Subject: [PATCH 2/2] Fix: Error in Gemspec detecting Ruby version --- draper.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draper.gemspec b/draper.gemspec index ec3a00c..7829cea 100644 --- a/draper.gemspec +++ b/draper.gemspec @@ -25,7 +25,7 @@ Gem::Specification.new do |s| s.add_development_dependency "guard" s.add_development_dependency "guard-rspec" s.add_development_dependency "rb-fsevent" - if RUBY_VERSION.to_f == "1.8" + if RUBY_VERSION.to_f == 1.8 s.add_development_dependency "ruby-debug" s.add_development_dependency "rcov" s.add_development_dependency "launchy"