Skip to content

Commit

Permalink
Merge pull request #909 from joaomdmoura/json-api-default
Browse files Browse the repository at this point in the history
Defining Json-API Adapter as Default
  • Loading branch information
guilleiguaran committed May 21, 2015
2 parents a59cc4c + 9b502a4 commit f7fb4db
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 7 deletions.
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ AMS does this through two components: **serializers** and **adapters**.
Serializers describe _which_ attributes and relationships should be serialized.
Adapters describe _how_ attributes and relationships should be serialized.

By default AMS will use the JsonApi Adapter that follows RC3 of the format specified in [jsonapi.org/format](http://jsonapi.org/format).
Check how to change the adapter in the sections bellow.

# RELEASE CANDIDATE, PLEASE READ

This is the master branch of AMS. It will become the `0.10.0` release when it's
Expand Down Expand Up @@ -47,17 +50,17 @@ end
```

Generally speaking, you as a user of AMS will write (or generate) these
serializer classes. If you want to use a different adapter, such as a JsonApi, you can
serializer classes. If you want to use a different adapter, such as a normal Json adapter without the JsonApi conventions, you can
change this in an initializer:

```ruby
ActiveModel::Serializer.config.adapter = ActiveModel::Serializer::Adapter::JsonApi
ActiveModel::Serializer.config.adapter = ActiveModel::Serializer::Adapter::Json
```

or

```ruby
ActiveModel::Serializer.config.adapter = :json_api
ActiveModel::Serializer.config.adapter = :json
```

You won't need to implement an adapter unless you wish to use a new format or
Expand Down
2 changes: 1 addition & 1 deletion lib/active_model/serializer/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module Configuration

included do |base|
base.config.array_serializer = ActiveModel::Serializer::ArraySerializer
base.config.adapter = :json
base.config.adapter = :json_api
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions test/action_controller/adapter_selector_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module ActionController
module Serialization
class AdapterSelectorTest < ActionController::TestCase
class MyController < ActionController::Base
def render_using_default_adapter
def render_using_the_initializer_defined_adapter
@profile = Profile.new({ name: 'Name 1', description: 'Description 1', comments: 'Comments 1' })
render json: @profile
end
Expand All @@ -23,7 +23,7 @@ def render_skipping_adapter
tests MyController

def test_render_using_default_adapter
get :render_using_default_adapter
get :render_using_the_initializer_defined_adapter
assert_equal '{"name":"Name 1","description":"Description 1"}', response.body
end

Expand Down
4 changes: 3 additions & 1 deletion test/fixtures/poro.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
ActiveModel::Serializer.config.adapter = :json

class Model
def initialize(hash={})
@attributes = hash
Expand Down Expand Up @@ -64,7 +66,7 @@ class ProfilePreviewSerializer < ActiveModel::Serializer
Bio = Class.new(Model)
Blog = Class.new(Model)
Role = Class.new(Model)
User = Class.new(Model)
User = Class.new(Model)
Location = Class.new(Model)
Place = Class.new(Model)

Expand Down

0 comments on commit f7fb4db

Please sign in to comment.