move add_relationship to each class method

This commit is contained in:
Kyle Reeves 2018-07-02 11:04:18 -05:00 committed by Shishir Kakaraddi
parent 6e7d8b7ee0
commit 30596c4488

View File

@ -184,15 +184,18 @@ module FastJsonapi
end end
def has_many(relationship_name, options = {}, &block) def has_many(relationship_name, options = {}, &block)
create_relationship(relationship_name, :has_many, options, block) relationship = create_relationship(relationship_name, :has_many, options, block)
add_relationship(relationship)
end end
def has_one(relationship_name, options = {}, &block) def has_one(relationship_name, options = {}, &block)
create_relationship(relationship_name, :has_one, options, block) relationship = create_relationship(relationship_name, :has_one, options, block)
add_relationship(relationship)
end end
def belongs_to(relationship_name, options = {}, &block) def belongs_to(relationship_name, options = {}, &block)
create_relationship(relationship_name, :belongs_to, options, block) relationship = create_relationship(relationship_name, :belongs_to, options, block)
add_relationship(relationship)
end end
def create_relationship(base_key, relationship_type, options, block) def create_relationship(base_key, relationship_type, options, block)
@ -206,7 +209,7 @@ module FastJsonapi
base_key_sym = name base_key_sym = name
id_postfix = '_id' id_postfix = '_id'
end end
relationship = Relationship.new( Relationship.new(
key: options[:key] || run_key_transform(base_key), key: options[:key] || run_key_transform(base_key),
name: name, name: name,
id_method_name: options[:id_method_name] || "#{base_serialization_key}#{id_postfix}".to_sym, id_method_name: options[:id_method_name] || "#{base_serialization_key}#{id_postfix}".to_sym,
@ -219,7 +222,6 @@ module FastJsonapi
polymorphic: fetch_polymorphic_option(options), polymorphic: fetch_polymorphic_option(options),
conditional_proc: options[:if] conditional_proc: options[:if]
) )
add_relationship(relationship)
end end
def compute_serializer_name(serializer_key) def compute_serializer_name(serializer_key)