active_model_serializers 0.8.3 → 0.10.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.travis.yml +19 -20
  4. data/CHANGELOG.md +8 -67
  5. data/CONTRIBUTING.md +31 -0
  6. data/Gemfile +14 -1
  7. data/{MIT-LICENSE.txt → LICENSE.txt} +3 -2
  8. data/README.md +166 -495
  9. data/Rakefile +6 -12
  10. data/active_model_serializers.gemspec +21 -19
  11. data/lib/action_controller/serialization.rb +28 -27
  12. data/lib/active_model/serializer/adapter/fragment_cache.rb +78 -0
  13. data/lib/active_model/serializer/adapter/json/fragment_cache.rb +15 -0
  14. data/lib/active_model/serializer/adapter/json.rb +52 -0
  15. data/lib/active_model/serializer/adapter/json_api/fragment_cache.rb +22 -0
  16. data/lib/active_model/serializer/adapter/json_api.rb +152 -0
  17. data/lib/active_model/serializer/adapter/null.rb +11 -0
  18. data/lib/active_model/serializer/adapter.rb +87 -0
  19. data/lib/active_model/serializer/array_serializer.rb +32 -0
  20. data/lib/active_model/serializer/configuration.rb +13 -0
  21. data/lib/active_model/serializer/fieldset.rb +40 -0
  22. data/lib/active_model/{serializers → serializer}/version.rb +1 -1
  23. data/lib/active_model/serializer.rb +179 -436
  24. data/lib/active_model_serializers.rb +9 -86
  25. data/lib/generators/serializer/USAGE +0 -3
  26. data/lib/generators/serializer/serializer_generator.rb +1 -6
  27. data/lib/generators/serializer/templates/serializer.rb +2 -13
  28. data/test/action_controller/adapter_selector_test.rb +51 -0
  29. data/test/action_controller/explicit_serializer_test.rb +110 -0
  30. data/test/action_controller/json_api_linked_test.rb +173 -0
  31. data/test/{serialization_scope_name_test.rb → action_controller/serialization_scope_name_test.rb} +7 -11
  32. data/test/action_controller/serialization_test.rb +365 -0
  33. data/test/adapter/fragment_cache_test.rb +27 -0
  34. data/test/adapter/json/belongs_to_test.rb +41 -0
  35. data/test/adapter/json/collection_test.rb +59 -0
  36. data/test/adapter/json/has_many_test.rb +36 -0
  37. data/test/adapter/json_api/belongs_to_test.rb +147 -0
  38. data/test/adapter/json_api/collection_test.rb +89 -0
  39. data/test/adapter/json_api/has_many_embed_ids_test.rb +45 -0
  40. data/test/adapter/json_api/has_many_explicit_serializer_test.rb +98 -0
  41. data/test/adapter/json_api/has_many_test.rb +106 -0
  42. data/test/adapter/json_api/has_one_test.rb +59 -0
  43. data/test/adapter/json_api/linked_test.rb +257 -0
  44. data/test/adapter/json_test.rb +34 -0
  45. data/test/adapter/null_test.rb +25 -0
  46. data/test/adapter_test.rb +43 -0
  47. data/test/array_serializer_test.rb +21 -67
  48. data/test/fixtures/poro.rb +206 -0
  49. data/test/serializers/adapter_for_test.rb +50 -0
  50. data/test/serializers/associations_test.rb +106 -0
  51. data/test/serializers/attribute_test.rb +23 -0
  52. data/test/serializers/attributes_test.rb +28 -0
  53. data/test/serializers/cache_test.rb +128 -0
  54. data/test/serializers/configuration_test.rb +15 -0
  55. data/test/serializers/fieldset_test.rb +26 -0
  56. data/test/{generators_test.rb → serializers/generators_test.rb} +1 -27
  57. data/test/serializers/meta_test.rb +78 -0
  58. data/test/serializers/options_test.rb +21 -0
  59. data/test/serializers/serializer_for_test.rb +56 -0
  60. data/test/serializers/urls_test.rb +26 -0
  61. data/test/test_helper.rb +22 -13
  62. metadata +101 -42
  63. data/DESIGN.textile +0 -586
  64. data/Gemfile.edge +0 -9
  65. data/bench/perf.rb +0 -43
  66. data/cruft.md +0 -19
  67. data/lib/active_model/array_serializer.rb +0 -104
  68. data/lib/active_model/serializer/associations.rb +0 -233
  69. data/lib/active_record/serializer_override.rb +0 -16
  70. data/lib/generators/resource_override.rb +0 -13
  71. data/test/association_test.rb +0 -592
  72. data/test/caching_test.rb +0 -96
  73. data/test/no_serialization_scope_test.rb +0 -34
  74. data/test/serialization_test.rb +0 -392
  75. data/test/serializer_support_test.rb +0 -51
  76. data/test/serializer_test.rb +0 -1465
  77. data/test/test_fakes.rb +0 -217
@@ -0,0 +1,128 @@
1
+ require 'test_helper'
2
+ module ActiveModel
3
+ class Serializer
4
+ class CacheTest < Minitest::Test
5
+ def setup
6
+ ActionController::Base.cache_store.clear
7
+ @comment = Comment.new(id: 1, body: 'ZOMG A COMMENT')
8
+ @blog = Blog.new(id: 999, name: "Custom blog")
9
+ @post = Post.new(title: 'New Post', body: 'Body')
10
+ @bio = Bio.new(id: 1, content: 'AMS Contributor')
11
+ @author = Author.new(name: 'Joao M. D. Moura')
12
+ @role = Role.new(name: 'Great Author')
13
+ @location = Location.new(lat: '-23.550520', lng: '-46.633309')
14
+ @place = Place.new(name: 'Amazing Place')
15
+ @author.posts = [@post]
16
+ @author.roles = [@role]
17
+ @role.author = @author
18
+ @author.bio = @bio
19
+ @bio.author = @author
20
+ @post.comments = [@comment]
21
+ @post.author = @author
22
+ @comment.post = @post
23
+ @comment.author = @author
24
+ @post.blog = @blog
25
+ @location.place = @place
26
+
27
+ @location_serializer = LocationSerializer.new(@location)
28
+ @bio_serializer = BioSerializer.new(@bio)
29
+ @role_serializer = RoleSerializer.new(@role)
30
+ @post_serializer = PostSerializer.new(@post)
31
+ @author_serializer = AuthorSerializer.new(@author)
32
+ @comment_serializer = CommentSerializer.new(@comment)
33
+ end
34
+
35
+ def test_cache_definition
36
+ assert_equal(ActionController::Base.cache_store, @post_serializer.class._cache)
37
+ assert_equal(ActionController::Base.cache_store, @author_serializer.class._cache)
38
+ assert_equal(ActionController::Base.cache_store, @comment_serializer.class._cache)
39
+ end
40
+
41
+ def test_cache_key_definition
42
+ assert_equal('post', @post_serializer.class._cache_key)
43
+ assert_equal('writer', @author_serializer.class._cache_key)
44
+ assert_equal(nil, @comment_serializer.class._cache_key)
45
+ end
46
+
47
+ def test_cache_key_interpolation_with_updated_at
48
+ author = render_object_with_cache(@author)
49
+ assert_equal(nil, ActionController::Base.cache_store.fetch(@author.cache_key))
50
+ assert_equal(@author_serializer.attributes.to_json, ActionController::Base.cache_store.fetch("#{@author_serializer.class._cache_key}/#{@author_serializer.object.id}-#{@author_serializer.object.updated_at}").to_json)
51
+ end
52
+
53
+ def test_default_cache_key_fallback
54
+ comment = render_object_with_cache(@comment)
55
+ assert_equal(@comment_serializer.attributes.to_json, ActionController::Base.cache_store.fetch(@comment.cache_key).to_json)
56
+ end
57
+
58
+ def test_cache_options_definition
59
+ assert_equal({expires_in: 0.1}, @post_serializer.class._cache_options)
60
+ assert_equal(nil, @author_serializer.class._cache_options)
61
+ assert_equal({expires_in: 1.day}, @comment_serializer.class._cache_options)
62
+ end
63
+
64
+ def test_fragment_cache_definition
65
+ assert_equal([:name], @role_serializer.class._cache_only)
66
+ assert_equal([:content], @bio_serializer.class._cache_except)
67
+ end
68
+
69
+ def test_associations_separately_cache
70
+ ActionController::Base.cache_store.clear
71
+ assert_equal(nil, ActionController::Base.cache_store.fetch(@post.cache_key))
72
+ assert_equal(nil, ActionController::Base.cache_store.fetch(@comment.cache_key))
73
+
74
+ post = render_object_with_cache(@post)
75
+
76
+ assert_equal(@post_serializer.attributes, ActionController::Base.cache_store.fetch(@post.cache_key))
77
+ assert_equal(@comment_serializer.attributes, ActionController::Base.cache_store.fetch(@comment.cache_key))
78
+ end
79
+
80
+ def test_associations_cache_when_updated
81
+ # Clean the Cache
82
+ ActionController::Base.cache_store.clear
83
+
84
+ # Generate a new Cache of Post object and each objects related to it.
85
+ render_object_with_cache(@post)
86
+
87
+ # Check if if cache the objects separately
88
+ assert_equal(@post_serializer.attributes, ActionController::Base.cache_store.fetch(@post.cache_key))
89
+ assert_equal(@comment_serializer.attributes, ActionController::Base.cache_store.fetch(@comment.cache_key))
90
+
91
+ # Simulating update on comments relationship with Post
92
+ new_comment = Comment.new(id: 2, body: 'ZOMG A NEW COMMENT')
93
+ new_comment_serializer = CommentSerializer.new(new_comment)
94
+ @post.comments = [new_comment]
95
+
96
+ # Ask for the serialized object
97
+ render_object_with_cache(@post)
98
+
99
+ # Check if the the new comment was cached
100
+ assert_equal(new_comment_serializer.attributes, ActionController::Base.cache_store.fetch(new_comment.cache_key))
101
+ assert_equal(@post_serializer.attributes, ActionController::Base.cache_store.fetch(@post.cache_key))
102
+ end
103
+
104
+ def test_fragment_fetch_with_virtual_associations
105
+ expected_result = {
106
+ id: @location.id,
107
+ lat: @location.lat,
108
+ lng: @location.lng,
109
+ place: 'Nowhere'
110
+ }
111
+
112
+ hash = render_object_with_cache(@location)
113
+
114
+ assert_equal(hash, expected_result)
115
+ assert_equal({place: 'Nowhere'}, ActionController::Base.cache_store.fetch(@location.cache_key))
116
+ end
117
+
118
+ private
119
+ def render_object_with_cache(obj)
120
+ serializer_class = ActiveModel::Serializer.serializer_for(obj)
121
+ serializer = serializer_class.new(obj)
122
+ adapter = ActiveModel::Serializer.adapter.new(serializer)
123
+ adapter.serializable_hash
124
+ end
125
+ end
126
+ end
127
+ end
128
+
@@ -0,0 +1,15 @@
1
+ require 'test_helper'
2
+
3
+ module ActiveModel
4
+ class Serializer
5
+ class ConfigurationTest < Minitest::Test
6
+ def test_array_serializer
7
+ assert_equal ActiveModel::Serializer::ArraySerializer, ActiveModel::Serializer.config.array_serializer
8
+ end
9
+
10
+ def test_default_adapter
11
+ assert_equal :json, ActiveModel::Serializer.config.adapter
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ module ActiveModel
4
+ class Serializer
5
+ class FieldsetTest < Minitest::Test
6
+
7
+ def test_fieldset_with_hash
8
+ fieldset = ActiveModel::Serializer::Fieldset.new({'post' => ['id', 'title'], 'coment' => ['body']})
9
+
10
+ assert_equal(
11
+ {:post=>[:id, :title], :coment=>[:body]},
12
+ fieldset.fields
13
+ )
14
+ end
15
+
16
+ def test_fieldset_with_array_of_fields_and_root_name
17
+ fieldset = ActiveModel::Serializer::Fieldset.new(['title'], 'post')
18
+
19
+ assert_equal(
20
+ {:post => [:title]},
21
+ fieldset.fields
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,5 +1,3 @@
1
- require 'test_helper'
2
-
3
1
  class Foo < Rails::Application
4
2
  if Rails.version.to_s.start_with? '4'
5
3
  config.eager_load = false
@@ -36,30 +34,6 @@ class SerializerGeneratorTest < Rails::Generators::TestCase
36
34
  Object.send :remove_const, :ApplicationSerializer
37
35
  end
38
36
 
39
- def test_serializer_gets_id
40
- run_generator
41
-
42
- assert_file "app/serializers/account_serializer.rb" do |content|
43
- if RUBY_VERSION =~ /1.8/
44
- assert_match /def id/, content
45
- else
46
- assert_no_match /def id/, content
47
- end
48
- end
49
- end
50
-
51
- # def test_uses_namespace_application_serializer_if_one_exists
52
- # Object.const_set(:SerializerNamespace, Module.new)
53
- # SerializerNamespace.const_set(:ApplicationSerializer, Class.new)
54
- # Rails::Generators.namespace = SerializerNamespace
55
- # run_generator
56
- # assert_file "app/serializers/serializer_namespace/account_serializer.rb",
57
- # /module SerializerNamespace\n class AccountSerializer < ApplicationSerializer/
58
- # ensure
59
- # Object.send :remove_const, :SerializerNamespace
60
- # Rails::Generators.namespace = nil
61
- # end
62
-
63
37
  def test_uses_given_parent
64
38
  Object.const_set(:ApplicationSerializer, Class.new)
65
39
  run_generator ["Account", "--parent=MySerializer"]
@@ -72,7 +46,7 @@ class SerializerGeneratorTest < Rails::Generators::TestCase
72
46
  run_generator
73
47
  assert_file "app/serializers/account_serializer.rb" do |serializer|
74
48
  assert_match(/^ attributes :id, :name, :description$/, serializer)
75
- assert_match(/^ has_one :business$/, serializer)
49
+ assert_match(/^ attribute :business$/, serializer)
76
50
  end
77
51
  end
78
52
 
@@ -0,0 +1,78 @@
1
+ require 'test_helper'
2
+
3
+ module ActiveModel
4
+ class Serializer
5
+ class MetaTest < Minitest::Test
6
+ def setup
7
+ ActionController::Base.cache_store.clear
8
+ @blog = Blog.new(id: 1,
9
+ name: 'AMS Hints',
10
+ writer: Author.new(id: 2, name: "Steve"),
11
+ articles: [Post.new(id: 3, title: "AMS")])
12
+ end
13
+
14
+ def test_meta_is_present_with_root
15
+ adapter = load_adapter(root: "blog", meta: {total: 10})
16
+ expected = {
17
+ "blog" => {
18
+ id: 1,
19
+ title: "AMS Hints"
20
+ },
21
+ "meta" => {
22
+ total: 10
23
+ }
24
+ }
25
+ assert_equal expected, adapter.as_json
26
+ end
27
+
28
+ def test_meta_is_not_included_when_root_is_missing
29
+ adapter = load_adapter(meta: {total: 10})
30
+ expected = {
31
+ id: 1,
32
+ title: "AMS Hints"
33
+ }
34
+ assert_equal expected, adapter.as_json
35
+ end
36
+
37
+ def test_meta_key_is_used
38
+ adapter = load_adapter(root: "blog", meta: {total: 10}, meta_key: "haha_meta")
39
+ expected = {
40
+ "blog" => {
41
+ id: 1,
42
+ title: "AMS Hints"
43
+ },
44
+ "haha_meta" => {
45
+ total: 10
46
+ }
47
+ }
48
+ assert_equal expected, adapter.as_json
49
+ end
50
+
51
+ def test_meta_is_not_used_on_arrays
52
+ serializer = ArraySerializer.new([@blog], root: "blog", meta: {total: 10}, meta_key: "haha_meta")
53
+ adapter = ActiveModel::Serializer::Adapter::Json.new(serializer)
54
+ expected = [{
55
+ id: 1,
56
+ name: "AMS Hints",
57
+ writer: {
58
+ id: 2,
59
+ name: "Steve"
60
+ },
61
+ articles: [{
62
+ id: 3,
63
+ title: "AMS",
64
+ body: nil
65
+ }]
66
+ }]
67
+ assert_equal expected, adapter.as_json
68
+ end
69
+
70
+ private
71
+
72
+ def load_adapter(options)
73
+ serializer = AlternateBlogSerializer.new(@blog, options)
74
+ ActiveModel::Serializer::Adapter::Json.new(serializer)
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ module ActiveModel
4
+ class Serializer
5
+ class OptionsTest < Minitest::Test
6
+ def setup
7
+ @profile = Profile.new(name: 'Name 1', description: 'Description 1')
8
+ end
9
+
10
+ def test_options_are_accessible
11
+ @profile_serializer = ProfileSerializer.new(@profile, my_options: :accessible)
12
+ assert @profile_serializer.arguments_passed_in?
13
+ end
14
+
15
+ def test_no_option_is_passed_in
16
+ @profile_serializer = ProfileSerializer.new(@profile)
17
+ refute @profile_serializer.arguments_passed_in?
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,56 @@
1
+ require 'test_helper'
2
+
3
+ module ActiveModel
4
+ class Serializer
5
+ class SerializerForTest < Minitest::Test
6
+ class ArraySerializerTest < Minitest::Test
7
+ def setup
8
+ @array = [1, 2, 3]
9
+ @previous_array_serializer = ActiveModel::Serializer.config.array_serializer
10
+ end
11
+
12
+ def teardown
13
+ ActiveModel::Serializer.config.array_serializer = @previous_array_serializer
14
+ end
15
+
16
+ def test_serializer_for_array
17
+ serializer = ActiveModel::Serializer.serializer_for(@array)
18
+ assert_equal ActiveModel::Serializer.config.array_serializer, serializer
19
+ end
20
+
21
+ def test_overwritten_serializer_for_array
22
+ new_array_serializer = Class.new
23
+ ActiveModel::Serializer.config.array_serializer = new_array_serializer
24
+ serializer = ActiveModel::Serializer.serializer_for(@array)
25
+ assert_equal new_array_serializer, serializer
26
+ end
27
+ end
28
+
29
+ class SerializerTest < Minitest::Test
30
+ class MyProfile < Profile
31
+ end
32
+
33
+ def setup
34
+ @profile = Profile.new
35
+ @my_profile = MyProfile.new
36
+ @model = ::Model.new
37
+ end
38
+
39
+ def test_serializer_for_existing_serializer
40
+ serializer = ActiveModel::Serializer.serializer_for(@profile)
41
+ assert_equal ProfileSerializer, serializer
42
+ end
43
+
44
+ def test_serializer_for_not_existing_serializer
45
+ serializer = ActiveModel::Serializer.serializer_for(@model)
46
+ assert_equal nil, serializer
47
+ end
48
+
49
+ def test_serializer_inherited_serializer
50
+ serializer = ActiveModel::Serializer.serializer_for(@my_profile)
51
+ assert_equal ProfileSerializer, serializer
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ module ActiveModel
4
+ class Serializer
5
+ class UrlsTest < Minitest::Test
6
+
7
+ def setup
8
+ @profile = Profile.new({ name: 'Name 1', description: 'Description 1', comments: 'Comments 1' })
9
+ @post = Post.new({ title: 'New Post', body: 'Body' })
10
+ @comment = Comment.new({ id: 1, body: 'ZOMG A COMMENT' })
11
+ @post.comments = [@comment]
12
+
13
+ @profile_serializer = ProfileSerializer.new(@profile)
14
+ @post_serializer = PostSerializer.new(@post)
15
+ end
16
+
17
+ def test_urls_definition
18
+ assert_equal([:posts, :comments], @profile_serializer.class._urls)
19
+ end
20
+
21
+ def test_url_definition
22
+ assert_equal([:comments], @post_serializer.class._urls)
23
+ end
24
+ end
25
+ end
26
+ end
data/test/test_helper.rb CHANGED
@@ -1,32 +1,41 @@
1
- require "rubygems"
2
- require "bundler/setup"
1
+ require 'bundler/setup'
3
2
 
4
- require "pry"
3
+ require 'rails'
4
+ require 'action_controller'
5
+ require 'action_controller/test_case'
6
+ require 'action_controller/railtie'
7
+ require 'active_support/json'
8
+ require 'minitest/autorun'
9
+ # Ensure backward compatibility with Minitest 4
10
+ Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
11
+
12
+ class Foo < Rails::Application
13
+ if Rails.version.to_s.start_with? '4'
14
+ config.action_controller.perform_caching = true
15
+ ActionController::Base.cache_store = :memory_store
16
+ end
17
+ end
5
18
 
6
19
  require "active_model_serializers"
7
- require "active_support/json"
8
- require "minitest/autorun"
9
20
 
10
- require 'rails'
21
+ require 'fixtures/poro'
11
22
 
12
23
  module TestHelper
13
24
  Routes = ActionDispatch::Routing::RouteSet.new
14
25
  Routes.draw do
15
- resource :hypermedia
16
26
  get ':controller(/:action(/:id))'
17
27
  get ':controller(/:action)'
18
28
  end
19
29
 
20
30
  ActionController::Base.send :include, Routes.url_helpers
21
- ActiveModel::Serializer.send :include, Routes.url_helpers
22
31
  end
23
32
 
24
- ActiveSupport::TestCase.class_eval do
25
- setup do
26
- @routes = ::TestHelper::Routes
33
+ ActionController::TestCase.class_eval do
34
+ def setup
35
+ @routes = TestHelper::Routes
27
36
  end
28
37
  end
29
38
 
30
- class Object
31
- undef_method :id if respond_to?(:id)
39
+ def def_serializer(&block)
40
+ Class.new(ActiveModel::Serializer, &block)
32
41
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_model_serializers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.10.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
- - José Valim
8
- - Yehuda Katz
7
+ - Steve Klabnik
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-12-10 00:00:00.000000000 Z
11
+ date: 2015-04-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activemodel
@@ -17,44 +16,44 @@ dependencies:
17
16
  requirements:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
- version: '3.0'
19
+ version: '4.0'
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
24
  - - ">="
26
25
  - !ruby/object:Gem::Version
27
- version: '3.0'
26
+ version: '4.0'
28
27
  - !ruby/object:Gem::Dependency
29
28
  name: rails
30
29
  requirement: !ruby/object:Gem::Requirement
31
30
  requirements:
32
31
  - - ">="
33
32
  - !ruby/object:Gem::Version
34
- version: '3.0'
33
+ version: '4.0'
35
34
  type: :development
36
35
  prerelease: false
37
36
  version_requirements: !ruby/object:Gem::Requirement
38
37
  requirements:
39
38
  - - ">="
40
39
  - !ruby/object:Gem::Version
41
- version: '3.0'
40
+ version: '4.0'
42
41
  - !ruby/object:Gem::Dependency
43
- name: pry
42
+ name: bundler
44
43
  requirement: !ruby/object:Gem::Requirement
45
44
  requirements:
46
- - - ">="
45
+ - - "~>"
47
46
  - !ruby/object:Gem::Version
48
- version: '0'
47
+ version: '1.6'
49
48
  type: :development
50
49
  prerelease: false
51
50
  version_requirements: !ruby/object:Gem::Requirement
52
51
  requirements:
53
- - - ">="
52
+ - - "~>"
54
53
  - !ruby/object:Gem::Version
55
- version: '0'
54
+ version: '1.6'
56
55
  - !ruby/object:Gem::Dependency
57
- name: minitest
56
+ name: rake
58
57
  requirement: !ruby/object:Gem::Requirement
59
58
  requirements:
60
59
  - - ">="
@@ -67,10 +66,10 @@ dependencies:
67
66
  - - ">="
68
67
  - !ruby/object:Gem::Version
69
68
  version: '0'
70
- description: Making it easy to serialize models for client-side use
69
+ description: ActiveModel::Serializers allows you to generate your JSON in an object-oriented
70
+ and convention-driven manner.
71
71
  email:
72
- - jose.valim@gmail.com
73
- - wycats@gmail.com
72
+ - steve@steveklabnik.com
74
73
  executables: []
75
74
  extensions: []
76
75
  extra_rdoc_files: []
@@ -78,39 +77,66 @@ files:
78
77
  - ".gitignore"
79
78
  - ".travis.yml"
80
79
  - CHANGELOG.md
81
- - DESIGN.textile
80
+ - CONTRIBUTING.md
82
81
  - Gemfile
83
- - Gemfile.edge
84
- - MIT-LICENSE.txt
82
+ - LICENSE.txt
85
83
  - README.md
86
84
  - Rakefile
87
85
  - active_model_serializers.gemspec
88
- - bench/perf.rb
89
- - cruft.md
90
86
  - lib/action_controller/serialization.rb
91
- - lib/active_model/array_serializer.rb
92
87
  - lib/active_model/serializer.rb
93
- - lib/active_model/serializer/associations.rb
94
- - lib/active_model/serializers/version.rb
88
+ - lib/active_model/serializer/adapter.rb
89
+ - lib/active_model/serializer/adapter/fragment_cache.rb
90
+ - lib/active_model/serializer/adapter/json.rb
91
+ - lib/active_model/serializer/adapter/json/fragment_cache.rb
92
+ - lib/active_model/serializer/adapter/json_api.rb
93
+ - lib/active_model/serializer/adapter/json_api/fragment_cache.rb
94
+ - lib/active_model/serializer/adapter/null.rb
95
+ - lib/active_model/serializer/array_serializer.rb
96
+ - lib/active_model/serializer/configuration.rb
97
+ - lib/active_model/serializer/fieldset.rb
98
+ - lib/active_model/serializer/version.rb
95
99
  - lib/active_model_serializers.rb
96
- - lib/active_record/serializer_override.rb
97
- - lib/generators/resource_override.rb
98
100
  - lib/generators/serializer/USAGE
99
101
  - lib/generators/serializer/serializer_generator.rb
100
102
  - lib/generators/serializer/templates/serializer.rb
103
+ - test/action_controller/adapter_selector_test.rb
104
+ - test/action_controller/explicit_serializer_test.rb
105
+ - test/action_controller/json_api_linked_test.rb
106
+ - test/action_controller/serialization_scope_name_test.rb
107
+ - test/action_controller/serialization_test.rb
108
+ - test/adapter/fragment_cache_test.rb
109
+ - test/adapter/json/belongs_to_test.rb
110
+ - test/adapter/json/collection_test.rb
111
+ - test/adapter/json/has_many_test.rb
112
+ - test/adapter/json_api/belongs_to_test.rb
113
+ - test/adapter/json_api/collection_test.rb
114
+ - test/adapter/json_api/has_many_embed_ids_test.rb
115
+ - test/adapter/json_api/has_many_explicit_serializer_test.rb
116
+ - test/adapter/json_api/has_many_test.rb
117
+ - test/adapter/json_api/has_one_test.rb
118
+ - test/adapter/json_api/linked_test.rb
119
+ - test/adapter/json_test.rb
120
+ - test/adapter/null_test.rb
121
+ - test/adapter_test.rb
101
122
  - test/array_serializer_test.rb
102
- - test/association_test.rb
103
- - test/caching_test.rb
104
- - test/generators_test.rb
105
- - test/no_serialization_scope_test.rb
106
- - test/serialization_scope_name_test.rb
107
- - test/serialization_test.rb
108
- - test/serializer_support_test.rb
109
- - test/serializer_test.rb
110
- - test/test_fakes.rb
123
+ - test/fixtures/poro.rb
124
+ - test/serializers/adapter_for_test.rb
125
+ - test/serializers/associations_test.rb
126
+ - test/serializers/attribute_test.rb
127
+ - test/serializers/attributes_test.rb
128
+ - test/serializers/cache_test.rb
129
+ - test/serializers/configuration_test.rb
130
+ - test/serializers/fieldset_test.rb
131
+ - test/serializers/generators_test.rb
132
+ - test/serializers/meta_test.rb
133
+ - test/serializers/options_test.rb
134
+ - test/serializers/serializer_for_test.rb
135
+ - test/serializers/urls_test.rb
111
136
  - test/test_helper.rb
112
137
  homepage: https://github.com/rails-api/active_model_serializers
113
- licenses: []
138
+ licenses:
139
+ - MIT
114
140
  metadata: {}
115
141
  post_install_message:
116
142
  rdoc_options: []
@@ -123,14 +149,47 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
149
  version: '0'
124
150
  required_rubygems_version: !ruby/object:Gem::Requirement
125
151
  requirements:
126
- - - ">="
152
+ - - ">"
127
153
  - !ruby/object:Gem::Version
128
- version: '0'
154
+ version: 1.3.1
129
155
  requirements: []
130
156
  rubyforge_project:
131
157
  rubygems_version: 2.2.2
132
158
  signing_key:
133
159
  specification_version: 4
134
- summary: Bringing consistency and object orientation to model serialization. Works
135
- great for client-side MVC frameworks!
136
- test_files: []
160
+ summary: Conventions-based JSON generation for Rails.
161
+ test_files:
162
+ - test/action_controller/adapter_selector_test.rb
163
+ - test/action_controller/explicit_serializer_test.rb
164
+ - test/action_controller/json_api_linked_test.rb
165
+ - test/action_controller/serialization_scope_name_test.rb
166
+ - test/action_controller/serialization_test.rb
167
+ - test/adapter/fragment_cache_test.rb
168
+ - test/adapter/json/belongs_to_test.rb
169
+ - test/adapter/json/collection_test.rb
170
+ - test/adapter/json/has_many_test.rb
171
+ - test/adapter/json_api/belongs_to_test.rb
172
+ - test/adapter/json_api/collection_test.rb
173
+ - test/adapter/json_api/has_many_embed_ids_test.rb
174
+ - test/adapter/json_api/has_many_explicit_serializer_test.rb
175
+ - test/adapter/json_api/has_many_test.rb
176
+ - test/adapter/json_api/has_one_test.rb
177
+ - test/adapter/json_api/linked_test.rb
178
+ - test/adapter/json_test.rb
179
+ - test/adapter/null_test.rb
180
+ - test/adapter_test.rb
181
+ - test/array_serializer_test.rb
182
+ - test/fixtures/poro.rb
183
+ - test/serializers/adapter_for_test.rb
184
+ - test/serializers/associations_test.rb
185
+ - test/serializers/attribute_test.rb
186
+ - test/serializers/attributes_test.rb
187
+ - test/serializers/cache_test.rb
188
+ - test/serializers/configuration_test.rb
189
+ - test/serializers/fieldset_test.rb
190
+ - test/serializers/generators_test.rb
191
+ - test/serializers/meta_test.rb
192
+ - test/serializers/options_test.rb
193
+ - test/serializers/serializer_for_test.rb
194
+ - test/serializers/urls_test.rb
195
+ - test/test_helper.rb