Class: Lolita::Adapter::ActiveRecord::Association

Inherits:
Object
  • Object
show all
Defined in:
lib/lolita/adapter/active_record.rb

Overview

Association adapter

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(assoc_object, adapter) ⇒ Association

Returns a new instance of Association.



17
18
19
20
# File 'lib/lolita/adapter/active_record.rb', line 17

def initialize(assoc_object,adapter)
  @association = assoc_object
  @adapter = adapter
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



22
23
24
# File 'lib/lolita/adapter/active_record.rb', line 22

def method_missing(method, *args, &block)
  @association.send(method,*args,&block)
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



15
16
17
# File 'lib/lolita/adapter/active_record.rb', line 15

def adapter
  @adapter
end

#associationObject (readonly)

Returns the value of attribute association.



15
16
17
# File 'lib/lolita/adapter/active_record.rb', line 15

def association
  @association
end

Instance Method Details

#association_keyObject



34
35
36
# File 'lib/lolita/adapter/active_record.rb', line 34

def association_key
  @association.association_foreign_key
end

#foreign_keyObject



38
39
40
# File 'lib/lolita/adapter/active_record.rb', line 38

def foreign_key
  @association.foreign_key
end

#keyObject

maybe this isn’t neccessery any more



26
27
28
29
30
31
32
# File 'lib/lolita/adapter/active_record.rb', line 26

def key # maybe this isn't neccessery any more
  if @association.macro == :has_and_belongs_to_many || through?
    association_key
  else
    @association.foreign_key
  end
end

#macroObject



58
59
60
61
62
63
64
# File 'lib/lolita/adapter/active_record.rb', line 58

def macro
  convertator = {
    :has_many => :many, :has_one => :one, :belongs_to => :one,
    :has_and_belongs_to_many => :many_to_many
  }
  convertator[@association.macro]
end

#native_macroObject



54
55
56
# File 'lib/lolita/adapter/active_record.rb', line 54

def native_macro
  @association.macro
end

#polymorphic?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/lolita/adapter/active_record.rb', line 50

def polymorphic?
  @association.options[:polymorphic]
end

#throughObject



42
43
44
# File 'lib/lolita/adapter/active_record.rb', line 42

def through
  @association.options[:through]
end

#through?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/lolita/adapter/active_record.rb', line 46

def through?
  @association.options.has_key?(:through)
end