Class: ThroughHierarchy::Associations::Association

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

Direct Known Subclasses

HasMany, HasOne, HasUniq

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Association.


4
5
6
7
8
9
10
11
12
13
# File 'lib/through_hierarchy/associations/association.rb', line 4

def initialize(name, model, members, options = {})
  @name = name
  @model = model
  @members = members

  set_options(options)
  validate_options

  @associated = Hierarchicals::Hierarchical.new(foreign_arel_table, model, members, as: @polymorphic_name)
end

Instance Method Details

#create(member, attributes) ⇒ Object


28
29
30
# File 'lib/through_hierarchy/associations/association.rb', line 28

def create(member, attributes)
  # NIY
end

#find(instance) ⇒ Object


15
16
17
18
19
20
# File 'lib/through_hierarchy/associations/association.rb', line 15

def find(instance)
  results = get_matches(instance)
  results = results.create_with(associated_instance(instance).create_with)
  results = results.instance_exec(&@scope) if @scope.present?
  return results
end

#joinObject


22
23
24
25
26
# File 'lib/through_hierarchy/associations/association.rb', line 22

def join
  results = get_joins
  results = results.merge(foreign_class.instance_exec(&@scope)) if @scope.present?
  return results
end