mirror of
https://github.com/samsonjs/grape-active_model_serializers.git
synced 2026-03-25 08:45:55 +00:00
support active model serializer 0.9.x
This commit is contained in:
parent
cfc6a02c65
commit
e30af569b2
2 changed files with 15 additions and 12 deletions
|
|
@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|||
gem.licenses = ['MIT']
|
||||
|
||||
gem.add_dependency "grape", "~> 0.3"
|
||||
gem.add_dependency "active_model_serializers", ">= 0.8.1"
|
||||
gem.add_dependency "active_model_serializers", ">= 0.9.0.alpha1"
|
||||
|
||||
gem.add_development_dependency "rspec"
|
||||
gem.add_development_dependency "rack-test"
|
||||
|
|
|
|||
|
|
@ -16,28 +16,27 @@ module Grape
|
|||
endpoint = env['api.endpoint']
|
||||
options = build_options_from_endpoint(endpoint)
|
||||
|
||||
if serializer = options.fetch(:serializer, ActiveModel::Serializer.serializer_for(resource))
|
||||
options[:scope] = serialization_scope unless options.has_key?(:scope)
|
||||
if resource.respond_to?(:to_ary) && !resource.empty?
|
||||
# ensure we have an root to fallback on
|
||||
endpoint.controller_name = default_root(endpoint)
|
||||
options[:resource_name] = default_root(endpoint)
|
||||
end
|
||||
serializer.new(resource, options.merge(other_options))
|
||||
end
|
||||
|
||||
::ActiveModel::Serializer.build_json(endpoint,
|
||||
resource,
|
||||
options.merge(other_options)
|
||||
)
|
||||
end
|
||||
|
||||
def other_options
|
||||
options = {}
|
||||
if @meta_content_items
|
||||
meta_option = @meta_content_items[:meta]
|
||||
@meta_content_items.delete(:meta)
|
||||
options[:meta] = meta_option if meta_option
|
||||
if @meta_key
|
||||
key_option = @meta_key[:meta_key]
|
||||
@meta_key.delete(:meta_key)
|
||||
options[:meta_key] = key_option if key_option
|
||||
end
|
||||
meta_option = @meta_content_items[:meta]
|
||||
@meta_content_items.delete(:meta)
|
||||
options[key_option || :meta] = meta_option if meta_option
|
||||
end
|
||||
options
|
||||
end
|
||||
|
|
@ -73,6 +72,10 @@ module Grape
|
|||
endpoint.options[:path][0].to_s.split('/')[-1]
|
||||
end
|
||||
end
|
||||
|
||||
def serialization_scope
|
||||
:current_user
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue