class ActiveResource::Reflection::AssociationReflection

Attributes

macro[R]

Returns the macro type.

has_many :clients returns :has_many

name[R]

Returns the name of the macro.

has_many :clients returns :clients

options[R]

Returns the hash of options used for the macro.

has_many :clients returns +{}+

Public Class Methods

new(macro, name, options) click to toggle source
# File lib/active_resource/reflection.rb, line 30
def initialize(macro, name, options)
  @macro, @name, @options = macro, name, options
end

Public Instance Methods

class_name() click to toggle source

Returns the class name for the macro.

has_many :clients returns 'Client'

# File lib/active_resource/reflection.rb, line 59
def class_name
  @class_name ||= derive_class_name
end
foreign_key() click to toggle source

Returns the foreign_key for the macro.

# File lib/active_resource/reflection.rb, line 64
def foreign_key
  @foreign_key ||= derive_foreign_key
end
klass() click to toggle source

Returns the class for the macro.

has_many :clients returns the Client class

# File lib/active_resource/reflection.rb, line 52
def klass
  @klass ||= class_name.constantize
end

Private Instance Methods

derive_class_name() click to toggle source
# File lib/active_resource/reflection.rb, line 69
def derive_class_name
  options[:class_name] ? options[:class_name].to_s.camelize : name.to_s.classify
end
derive_foreign_key() click to toggle source
# File lib/active_resource/reflection.rb, line 73
def derive_foreign_key
  options[:foreign_key] ? options[:foreign_key].to_s : "#{name.to_s.downcase}_id"
end