mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-23 14:29:31 +00:00
Remove option method just use the reader
This commit is contained in:
parent
5017fb686a
commit
ea3566955c
@ -8,16 +8,8 @@ module ActiveModel
|
|||||||
@options = options
|
@options = options
|
||||||
end
|
end
|
||||||
|
|
||||||
def option(key, default=nil)
|
|
||||||
if @options.key?(key)
|
|
||||||
@options[key]
|
|
||||||
else
|
|
||||||
default
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def target_serializer
|
def target_serializer
|
||||||
serializer = option(:serializer)
|
serializer = options[:serializer]
|
||||||
serializer.is_a?(String) ? serializer.constantize : serializer
|
serializer.is_a?(String) ? serializer.constantize : serializer
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -26,31 +18,31 @@ module ActiveModel
|
|||||||
end
|
end
|
||||||
|
|
||||||
def key
|
def key
|
||||||
option(:key) || @name
|
options[:key] || @name
|
||||||
end
|
end
|
||||||
|
|
||||||
def root
|
def root
|
||||||
option(:root) || @name
|
options[:root] || @name
|
||||||
end
|
end
|
||||||
|
|
||||||
def name
|
def name
|
||||||
option(:name) || @name
|
options[:name] || @name
|
||||||
end
|
end
|
||||||
|
|
||||||
def associated_object
|
def associated_object
|
||||||
option(:value)
|
options[:value]
|
||||||
end
|
end
|
||||||
|
|
||||||
def embed_ids?
|
def embed_ids?
|
||||||
[:id, :ids].include? option(:embed)
|
[:id, :ids].include? options[:embed]
|
||||||
end
|
end
|
||||||
|
|
||||||
def embed_objects?
|
def embed_objects?
|
||||||
[:object, :objects].include? option(:embed)
|
[:object, :objects].include? options[:embed]
|
||||||
end
|
end
|
||||||
|
|
||||||
def embed_in_root?
|
def embed_in_root?
|
||||||
option(:include)
|
options[:include]
|
||||||
end
|
end
|
||||||
|
|
||||||
def embeddable?
|
def embeddable?
|
||||||
@ -61,18 +53,20 @@ module ActiveModel
|
|||||||
|
|
||||||
def find_serializable(object)
|
def find_serializable(object)
|
||||||
if target_serializer
|
if target_serializer
|
||||||
target_serializer.new(object, option(:serializer_options))
|
target_serializer.new(object, options[:serializer_options])
|
||||||
elsif object.respond_to?(:active_model_serializer) && (ams = object.active_model_serializer)
|
elsif object.respond_to?(:active_model_serializer) && (ams = object.active_model_serializer)
|
||||||
ams.new(object, option(:serializer_options))
|
ams.new(object, options[:serializer_options])
|
||||||
else
|
else
|
||||||
object
|
object
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
attr_reader :options
|
||||||
end
|
end
|
||||||
|
|
||||||
class HasMany < Config #:nodoc:
|
class HasMany < Config #:nodoc:
|
||||||
def key
|
def key
|
||||||
if key = option(:key)
|
if key = options[:key]
|
||||||
key
|
key
|
||||||
elsif embed_ids?
|
elsif embed_ids?
|
||||||
"#{@name.to_s.singularize}_ids".to_sym
|
"#{@name.to_s.singularize}_ids".to_sym
|
||||||
@ -82,7 +76,7 @@ module ActiveModel
|
|||||||
end
|
end
|
||||||
|
|
||||||
def embed_key
|
def embed_key
|
||||||
if key = option(:embed_key)
|
if key = options[:embed_key]
|
||||||
key
|
key
|
||||||
else
|
else
|
||||||
:id
|
:id
|
||||||
@ -103,7 +97,7 @@ module ActiveModel
|
|||||||
|
|
||||||
def serialize_ids
|
def serialize_ids
|
||||||
ids_key = "#{@name.to_s.singularize}_ids".to_sym
|
ids_key = "#{@name.to_s.singularize}_ids".to_sym
|
||||||
if !option(:embed_key) && !source_serializer.respond_to?(@name.to_s) && source_serializer.object.respond_to?(ids_key)
|
if !options[:embed_key] && !source_serializer.respond_to?(@name.to_s) && source_serializer.object.respond_to?(ids_key)
|
||||||
source_serializer.object.read_attribute_for_serialization(ids_key)
|
source_serializer.object.read_attribute_for_serialization(ids_key)
|
||||||
else
|
else
|
||||||
associated_object.map do |item|
|
associated_object.map do |item|
|
||||||
@ -123,11 +117,11 @@ module ActiveModel
|
|||||||
end
|
end
|
||||||
|
|
||||||
def polymorphic?
|
def polymorphic?
|
||||||
option :polymorphic
|
options[:polymorphic]
|
||||||
end
|
end
|
||||||
|
|
||||||
def root
|
def root
|
||||||
if root = option(:root)
|
if root = options[:root]
|
||||||
root
|
root
|
||||||
elsif polymorphic?
|
elsif polymorphic?
|
||||||
associated_object.class.to_s.pluralize.demodulize.underscore.to_sym
|
associated_object.class.to_s.pluralize.demodulize.underscore.to_sym
|
||||||
@ -137,7 +131,7 @@ module ActiveModel
|
|||||||
end
|
end
|
||||||
|
|
||||||
def key
|
def key
|
||||||
if key = option(:key)
|
if key = options[:key]
|
||||||
key
|
key
|
||||||
elsif embed_ids? && !polymorphic?
|
elsif embed_ids? && !polymorphic?
|
||||||
"#{@name}_id".to_sym
|
"#{@name}_id".to_sym
|
||||||
@ -147,7 +141,7 @@ module ActiveModel
|
|||||||
end
|
end
|
||||||
|
|
||||||
def embed_key
|
def embed_key
|
||||||
if key = option(:embed_key)
|
if key = options[:embed_key]
|
||||||
key
|
key
|
||||||
else
|
else
|
||||||
:id
|
:id
|
||||||
@ -189,7 +183,7 @@ module ActiveModel
|
|||||||
else
|
else
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
elsif !option(:embed_key) && !source_serializer.respond_to?(@name.to_s) && source_serializer.object.respond_to?(id_key)
|
elsif !options[:embed_key] && !source_serializer.respond_to?(@name.to_s) && source_serializer.object.respond_to?(id_key)
|
||||||
source_serializer.object.read_attribute_for_serialization(id_key)
|
source_serializer.object.read_attribute_for_serialization(id_key)
|
||||||
elsif associated_object
|
elsif associated_object
|
||||||
associated_object.read_attribute_for_serialization(embed_key)
|
associated_object.read_attribute_for_serialization(embed_key)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user