Class: ActiveData::Model::Associations::Association

Inherits:
Object
  • Object
show all
Defined in:
lib/active_data/model/associations/association.rb

Direct Known Subclasses

EmbedsMany, EmbedsOne

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ Association

Returns a new instance of Association.



7
8
9
10
11
# File 'lib/active_data/model/associations/association.rb', line 7

def initialize name, options = {}
  @name, @options = name.to_s, options
  @klass ||= options[:class] || (options[:class_name].to_s.presence || name.to_s.classify).safe_constantize
  raise "Can not determine class for `#{name}` association" unless @klass
end

Instance Attribute Details

#klassObject (readonly)

Returns the value of attribute klass.



5
6
7
# File 'lib/active_data/model/associations/association.rb', line 5

def klass
  @klass
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/active_data/model/associations/association.rb', line 5

def name
  @name
end

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/active_data/model/associations/association.rb', line 5

def options
  @options
end

Instance Method Details

#class_nameObject



13
14
15
# File 'lib/active_data/model/associations/association.rb', line 13

def class_name
  klass.to_s
end

#define_accessor(klass) ⇒ Object



17
18
19
20
# File 'lib/active_data/model/associations/association.rb', line 17

def define_accessor klass
  define_reader klass
  define_writer klass
end

#define_reader(klass) ⇒ Object



22
23
# File 'lib/active_data/model/associations/association.rb', line 22

def define_reader klass
end

#define_writer(klass) ⇒ Object



25
26
# File 'lib/active_data/model/associations/association.rb', line 25

def define_writer klass
end