active_model_serializers/lib
Benjamin Fleischer d9e76c29d5 Make Adapters registerable so they are not namespace-constrained
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
2015-09-08 22:59:36 -05:00
..
action_controller Rubocop: Consistent spacing 2015-09-03 20:51:40 -05:00
active_model Make Adapters registerable so they are not namespace-constrained 2015-09-08 22:59:36 -05:00
generators/serializer Style/StringLiterals single quote all the things 2015-09-03 20:50:45 -05:00
tasks Add Style enforcer (via Rubocop) 2015-09-03 20:50:45 -05:00
active_model_serializers.rb Rubocop: Consistent spacing 2015-09-03 20:51:40 -05:00