mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-23 14:29:31 +00:00
Changes:
- Introduce Adapter::get for use by Serializer.adapter
- Move Adapter-finding logic from Adapter::adapter_class into Adapter::get
Introduced interfaces:
- non-inherited methods
```ruby
ActiveModel::Serializer::Adapter.adapter_map # a Hash<adapter_name, adapter_class>
ActiveModel::Serializer::Adapter.adapters # an Array<adapter_name>
ActiveModel::Serializer::Adapter.register(name, klass) # adds an adapter to the adapter_map
ActiveModel::Serializer::Adapter.get(name_or_klass) # raises Argument error when adapter not found
```
- Automatically register adapters when subclassing
```ruby
def self.inherited(subclass)
ActiveModel::Serializer::Adapter.register(subclass.to_s.demodulize, subclass)
end
```
- Preserves subclass method `::adapter_class(adapter)`
```ruby
def self.adapter_class(adapter)
ActiveModel::Serializer::Adapter.get(adapter)
end
```
- Serializer.adapter now uses `Adapter.get(config.adapter)` rather than have duplicate logic
63 lines
1.6 KiB
Ruby
63 lines
1.6 KiB
Ruby
require 'bundler/setup'
|
|
|
|
begin
|
|
require 'simplecov'
|
|
# HACK: till https://github.com/colszowka/simplecov/pull/400 is merged and released.
|
|
# Otherwise you may get:
|
|
# simplecov-0.10.0/lib/simplecov/defaults.rb:50: warning: global variable `$ERROR_INFO' not initialized
|
|
require 'support/simplecov'
|
|
AppCoverage.start
|
|
rescue LoadError
|
|
STDERR.puts 'Running without SimpleCov'
|
|
end
|
|
|
|
require 'timecop'
|
|
require 'rails'
|
|
require 'action_controller'
|
|
require 'action_controller/test_case'
|
|
require 'action_controller/railtie'
|
|
require 'active_support/json'
|
|
require 'fileutils'
|
|
FileUtils.mkdir_p(File.expand_path('../../tmp/cache', __FILE__))
|
|
|
|
require 'minitest/autorun'
|
|
# Ensure backward compatibility with Minitest 4
|
|
Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
|
|
|
|
require 'capture_warnings'
|
|
@capture_warnings = CaptureWarnings.new(fail_build = true)
|
|
@capture_warnings.before_tests
|
|
if Minitest.respond_to?(:after_run)
|
|
Minitest.after_run do
|
|
@capture_warnings.after_tests
|
|
end
|
|
else
|
|
at_exit do
|
|
STDOUT.puts 'Minitest.after_run not available.'
|
|
@capture_warnings.after_tests
|
|
end
|
|
end
|
|
|
|
require 'active_model_serializers'
|
|
# eager load autoloaded adapters
|
|
# rubocop:disable Lint/Void
|
|
require 'active_model/serializer/adapter'
|
|
ActiveModel::Serializer::Adapter::Null
|
|
ActiveModel::Serializer::Adapter::Json
|
|
ActiveModel::Serializer::Adapter::FlattenJson
|
|
ActiveModel::Serializer::Adapter::JsonApi
|
|
# rubocop:enable Lint/Void
|
|
require 'active_model/serializer/adapter'
|
|
|
|
require 'support/stream_capture'
|
|
|
|
require 'support/rails_app'
|
|
|
|
require 'support/test_case'
|
|
|
|
require 'support/serialization_testing'
|
|
|
|
require 'fixtures/active_record'
|
|
|
|
require 'fixtures/poro'
|