From 704838ef5f6cdfd743e9e4742e3f16662f830421 Mon Sep 17 00:00:00 2001 From: Andrew Korzhuev Date: Sun, 12 Oct 2014 21:30:48 +0700 Subject: [PATCH 1/6] Read default serializer options from the controller --- lib/grape-active_model_serializers/formatter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grape-active_model_serializers/formatter.rb b/lib/grape-active_model_serializers/formatter.rb index 87f2b11..1db63bb 100644 --- a/lib/grape-active_model_serializers/formatter.rb +++ b/lib/grape-active_model_serializers/formatter.rb @@ -56,7 +56,7 @@ module Grape end def build_options_from_endpoint(endpoint) - endpoint.namespace_options.merge(endpoint.route_options) + [endpoint.default_serializer_options || {}, endpoint.namespace_options, endpoint.route_options].reduce(:merge) end # array root is the innermost namespace name ('space') if there is one, From cfb80be11e52842613f8108a51f436e628172c78 Mon Sep 17 00:00:00 2001 From: Siong Date: Thu, 20 Nov 2014 13:22:48 -0800 Subject: [PATCH 2/6] better formatting. --- grape-active_model_serializers.gemspec | 2 +- .../endpoint_extension_spec.rb | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/grape-active_model_serializers.gemspec b/grape-active_model_serializers.gemspec index fc2b060..0ab28a8 100644 --- a/grape-active_model_serializers.gemspec +++ b/grape-active_model_serializers.gemspec @@ -22,5 +22,5 @@ Gem::Specification.new do |gem| gem.add_development_dependency "rspec" gem.add_development_dependency "rack-test" gem.add_development_dependency "rake" - gem.add_development_dependency 'guard-rspec' + gem.add_development_dependency "guard-rspec" end diff --git a/spec/grape-active_model_serializers/endpoint_extension_spec.rb b/spec/grape-active_model_serializers/endpoint_extension_spec.rb index e296dd3..0052e7f 100644 --- a/spec/grape-active_model_serializers/endpoint_extension_spec.rb +++ b/spec/grape-active_model_serializers/endpoint_extension_spec.rb @@ -7,12 +7,12 @@ describe 'Grape::EndpointExtension' do let(:serializer) { Grape::Formatter::ActiveModelSerializers } let(:user) do - Object.new do - def name - 'sven' - end - end - end + Object.new do + def name + 'sven' + end + end + end let(:users) { [user, user] } From a2578f893df0f5b9536190b4ee075013969b0a67 Mon Sep 17 00:00:00 2001 From: Siong Date: Thu, 20 Nov 2014 13:23:15 -0800 Subject: [PATCH 3/6] add spec for `default_serializer_options`. --- spec/grape-active_model_serializers/formatter_spec.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spec/grape-active_model_serializers/formatter_spec.rb b/spec/grape-active_model_serializers/formatter_spec.rb index 0529e9d..bed4a93 100644 --- a/spec/grape-active_model_serializers/formatter_spec.rb +++ b/spec/grape-active_model_serializers/formatter_spec.rb @@ -41,6 +41,10 @@ describe Grape::Formatter::ActiveModelSerializers do def endpoint.current_user @current_user ||= User.new(first_name: 'Current user') end + + def endpoint.default_serializer_options + { only: :only, except: :except } + end end subject { described_class.fetch_serializer(user, env) } @@ -48,7 +52,12 @@ describe Grape::Formatter::ActiveModelSerializers do it { should be_a UserSerializer } it 'should have correct scope set' do - expect(subject.scope).to eq(endpoint.current_user) + expect(subject.scope.current_user).to eq(endpoint.current_user) + end + + it 'should read default serializer options' do + expect(subject.instance_variable_get('@only')).to eq([:only]) + expect(subject.instance_variable_get('@except')).to eq([:except]) end end end From 28de380fc21b0f8551d5cae6fcd9a5792468c614 Mon Sep 17 00:00:00 2001 From: Siong Date: Thu, 20 Nov 2014 13:29:41 -0800 Subject: [PATCH 4/6] update README. --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 6ae5b27..30b9ddf 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,16 @@ get "/homes" end ``` +### Support for `default_serializer_options` + +```ruby + helper do + def default_serializer_options + {only: params[:only], except: params[:except]} + end + end +``` + ### current_user One of the nice features of ActiveModel::Serializers is that it From d9c7e7c38d7b214d1bae042a81bc46f1d444b193 Mon Sep 17 00:00:00 2001 From: Jonathan Richard Henry Evans Date: Thu, 20 Nov 2014 22:45:36 +0000 Subject: [PATCH 5/6] Bump version number --- lib/grape-active_model_serializers/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grape-active_model_serializers/version.rb b/lib/grape-active_model_serializers/version.rb index 0031454..b7b5adb 100644 --- a/lib/grape-active_model_serializers/version.rb +++ b/lib/grape-active_model_serializers/version.rb @@ -1,5 +1,5 @@ module Grape module ActiveModelSerializers - VERSION = '1.2.1' + VERSION = '1.3.1' end end From 4085f904320bd3f927efe38d5978fa4cff2d3e39 Mon Sep 17 00:00:00 2001 From: Jonathan Richard Henry Evans Date: Thu, 20 Nov 2014 22:50:13 +0000 Subject: [PATCH 6/6] Adds new maintainers message to readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 30b9ddf..19e72cd 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +## Looking for new maintainer(s) + +As much as I love ruby, grape and AMS, I am no longer using them. I think that it makes sense for someone else to pick this project up as a maintainer so that it can be kept more current as I feel I have been neglecting it. If you want to maintain this project, please email me at contact@jrhe.co.uk. I will continue to merge changes in when I have time. Cheers - JRHE + # Grape::ActiveModelSerializers Use [active_model_serializers](https://github.com/rails-api/active_model_serializers) with [Grape](https://github.com/intridea/grape)!