Module: Vault::Associations

Defined in:
lib/vault/associations.rb

Defined Under Namespace

Classes: HasManyProxy

Instance Method Summary collapse

Instance Method Details

#belongs_to(name, klass_name = name.to_s.classify) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/vault/associations.rb', line 10

def belongs_to(name, klass_name=name.to_s.classify)
  foreign_key = "#{name}_key"

  property(foreign_key)

  define_method name do
    model = klass_name.is_a?(Class) ? klass_name : self.class.const_get(klass_name)
    model[send(foreign_key)]
  end

  define_method "#{name}=" do |object|
    send("#{foreign_key}=", object.key)
  end
end

#has_many(name, klass_name = name.to_s.classify, foreign_key = "#{self.to_s.underscore.singularize}_key") ⇒ Object



3
4
5
6
7
8
# File 'lib/vault/associations.rb', line 3

def has_many(name, klass_name=name.to_s.classify, foreign_key="#{self.to_s.underscore.singularize}_key")
  define_method name do
    model = klass_name.is_a?(Class) ? klass_name : self.class.const_get(klass_name)
    HasManyProxy.new(self, model, foreign_key, foreign_key => key)
  end
end