Remove option method just use the reader

This commit is contained in:
Santiago Pastorino 2013-05-16 16:30:41 -07:00
parent 5017fb686a
commit ea3566955c

View File

@ -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)