lib/jsonapi/relationship.rb in jsonapi-resources-0.7.1.beta1 vs lib/jsonapi/relationship.rb in jsonapi-resources-0.7.1.beta2
- old
+ new
@@ -1,8 +1,8 @@
module JSONAPI
class Relationship
- attr_reader :acts_as_set, :foreign_key, :type, :options, :name,
+ attr_reader :acts_as_set, :foreign_key, :options, :name,
:class_name, :polymorphic, :always_include_linkage_data,
:parent_resource
def initialize(name, options = {})
@name = name.to_s
@@ -20,17 +20,21 @@
def primary_key
@primary_key ||= resource_klass._primary_key
end
def resource_klass
- @resource_klass = @parent_resource.resource_for(@class_name)
+ @resource_klass ||= @parent_resource.resource_for(@class_name)
end
def table_name
@table_name ||= resource_klass._table_name
end
+ def type
+ @type ||= resource_klass._type.to_sym
+ end
+
def relation_name(options)
case @relation_name
when Symbol
# :nocov:
@relation_name
@@ -59,11 +63,10 @@
attr_reader :foreign_key_on
def initialize(name, options = {})
super
@class_name = options.fetch(:class_name, name.to_s.camelize)
- @type = class_name.underscore.pluralize.to_sym
@foreign_key ||= "#{name}_id".to_sym
@foreign_key_on = options.fetch(:foreign_key_on, :self)
end
def belongs_to?
@@ -77,10 +80,9 @@
class ToMany < Relationship
def initialize(name, options = {})
super
@class_name = options.fetch(:class_name, name.to_s.camelize.singularize)
- @type = class_name.underscore.pluralize.to_sym
@foreign_key ||= "#{name.to_s.singularize}_ids".to_sym
end
end
end
end