diff --git a/active_model_serializers.gemspec b/active_model_serializers.gemspec index a6fa3dbc..7cdb2871 100644 --- a/active_model_serializers.gemspec +++ b/active_model_serializers.gemspec @@ -12,6 +12,8 @@ Gem::Specification.new do |gem| gem.name = "active_model_serializers" gem.require_paths = ["lib"] gem.version = "0.0.1" - - gem.add_dependency "rails", "~> 3.0" + + gem.add_dependency 'activemodel', '~> 3.0' + + gem.add_development_dependency "rails", "~> 3.0" end diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index 7a1e4c91..97d1cd51 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -16,7 +16,7 @@ module ActionController # # class ApplicationController < ActionController::Base # private - # + # # def serialization_scope # current_user # end @@ -48,4 +48,4 @@ module ActionController end end end -end \ No newline at end of file +end diff --git a/lib/active_model_serializers.rb b/lib/active_model_serializers.rb index 0f1e14b9..cb4a5c7a 100644 --- a/lib/active_model_serializers.rb +++ b/lib/active_model_serializers.rb @@ -23,12 +23,10 @@ ActiveModel::Serialization.class_eval do end end -require "action_controller" - -module ActionController - autoload :Serialization, "action_controller/serialization" +begin + require 'action_controller' + require 'rails' + require 'railtie' +rescue LoadError => ex + # rails on installed, continuing end - -ActiveSupport.on_load(:action_controller) do - include ::ActionController::Serialization -end \ No newline at end of file diff --git a/lib/railtie.rb b/lib/railtie.rb new file mode 100644 index 00000000..8dbb7fbb --- /dev/null +++ b/lib/railtie.rb @@ -0,0 +1,14 @@ +require 'active_model_serializers' +require 'action_controller/serialization' + +module ActiveModel + module Serialization + class Railtie < ::Rails::Railtie + initializer "active_model.serialization.action_controller" do + ActiveSupport.on_load(:action_controller) do + include ::ActionController::Serilization + end + end + end + end +end diff --git a/test/generators_test.rb b/test/generators_test.rb index 0e388633..001a1d7e 100644 --- a/test/generators_test.rb +++ b/test/generators_test.rb @@ -1,4 +1,4 @@ -require 'rails' +require 'test_helper' class Foo < Rails::Application end diff --git a/test/serialization_test.rb b/test/serialization_test.rb index 627baa8c..e4e53d1e 100644 --- a/test/serialization_test.rb +++ b/test/serialization_test.rb @@ -39,6 +39,8 @@ class RenderJsonTest < ActionController::TestCase end class TestController < ActionController::Base + include ActionController::Serialization + protect_from_forgery serialization_scope :current_user @@ -169,4 +171,4 @@ class RenderJsonTest < ActionController::TestCase get :render_json_with_serializer_api_but_without_serializer assert_match '{"serializable_object":true}', @response.body end -end \ No newline at end of file +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 009aac0b..82ca563a 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -21,4 +21,4 @@ ActiveSupport::TestCase.class_eval do setup do @routes = ::TestHelper::Routes end -end \ No newline at end of file +end