diff --git a/draper.gemspec b/draper.gemspec index 5e73cbe..b53c02b 100644 --- a/draper.gemspec +++ b/draper.gemspec @@ -16,8 +16,8 @@ Gem::Specification.new do |s| s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ["lib"] - s.add_dependency 'activesupport', '>= 3.2' - s.add_dependency 'actionpack', '>= 3.2' + s.add_dependency 'activesupport', '>= 3.0' + s.add_dependency 'actionpack', '>= 3.0' s.add_development_dependency 'ammeter' s.add_development_dependency 'rake', '~> 0.9.2' diff --git a/lib/draper/railtie.rb b/lib/draper/railtie.rb index f0e158c..8fa4f00 100755 --- a/lib/draper/railtie.rb +++ b/lib/draper/railtie.rb @@ -3,6 +3,8 @@ require 'rails/railtie' module ActiveModel class Railtie < Rails::Railtie generators do |app| + app ||= Rails.application # Rails 3.0.x does not yield `app` + Rails::Generators.configure! app.config.generators require 'generators/resource_override' end diff --git a/lib/draper/test/test_unit_integration.rb b/lib/draper/test/test_unit_integration.rb index 907bd1a..9061e65 100644 --- a/lib/draper/test/test_unit_integration.rb +++ b/lib/draper/test/test_unit_integration.rb @@ -1,8 +1,17 @@ require "rake/testtask" -require "rails/test_unit/sub_test_task" + +klass = nil + +if Rails.version[0,3] == "3.0" + require 'rails/test_unit/railtie' + klass = Rake::TestTask +else + require "rails/test_unit/sub_test_task" + klass = Rails::SubTestTask +end namespace :test do - Rails::SubTestTask.new(:decorators => "test:prepare") do |t| + klass.new(:decorators => "test:prepare") do |t| t.libs << "test" t.pattern = "test/decorators/**/*_test.rb" end diff --git a/lib/generators/decorator/decorator_generator.rb b/lib/generators/decorator/decorator_generator.rb index 185d8c5..802b11e 100644 --- a/lib/generators/decorator/decorator_generator.rb +++ b/lib/generators/decorator/decorator_generator.rb @@ -23,6 +23,14 @@ module Rails "Draper::Decorator" end end - end + + + # Rails 3.0.X compatibility, stolen from https://github.com/jnunemaker/mongomapper/pull/385/files#L1R32 + unless methods.include?(:module_namespacing) + def module_namespacing(&block) + yield if block + end + end + end end end diff --git a/lib/generators/decorator/templates/decorator.rb b/lib/generators/decorator/templates/decorator.rb index af40bd3..eda3279 100644 --- a/lib/generators/decorator/templates/decorator.rb +++ b/lib/generators/decorator/templates/decorator.rb @@ -1,5 +1,9 @@ -<% module_namespacing do -%> +<%- module_namespacing do -%> + <%- if parent_class_name.present? -%> class <%= class_name %>Decorator < <%= parent_class_name %> + <%- else -%> +class <%= class_name %> + <%- end -%> # Accessing Helpers # You can access any helper via a proxy