Class: Quickery::QuickeryBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/quickery/quickery_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model:, association_chains:, dependee_column_name:, depender_column_name:) ⇒ QuickeryBuilder

Returns a new instance of QuickeryBuilder.



8
9
10
11
12
13
# File 'lib/quickery/quickery_builder.rb', line 8

def initialize(model:, association_chains:, dependee_column_name:, depender_column_name:)
  @model = model
  @association_chains = association_chains
  @dependee_column_name = dependee_column_name
  @depender_column_name = depender_column_name
end

Instance Attribute Details

#association_chainsObject (readonly)

Returns the value of attribute association_chains.



6
7
8
# File 'lib/quickery/quickery_builder.rb', line 6

def association_chains
  @association_chains
end

#dependee_column_nameObject (readonly)

Returns the value of attribute dependee_column_name.



5
6
7
# File 'lib/quickery/quickery_builder.rb', line 5

def dependee_column_name
  @dependee_column_name
end

#depender_column_nameObject (readonly)

Returns the value of attribute depender_column_name.



4
5
6
# File 'lib/quickery/quickery_builder.rb', line 4

def depender_column_name
  @depender_column_name
end

#modelObject (readonly)

Returns the value of attribute model.



3
4
5
# File 'lib/quickery/quickery_builder.rb', line 3

def model
  @model
end

Instance Method Details

#add_to_association_chainsObject



20
21
22
23
24
# File 'lib/quickery/quickery_builder.rb', line 20

def add_to_association_chains
  association_chains.each do |association_chain|
    association_chain.quickery_builder = self
  end
end

#add_to_modelObject



15
16
17
18
# File 'lib/quickery/quickery_builder.rb', line 15

def add_to_model
  @model.quickery_builders ||= {}
  @model.quickery_builders[depender_column_name] = self
end

#create_model_callbacksObject



26
27
28
29
# File 'lib/quickery/quickery_builder.rb', line 26

def create_model_callbacks
  @callbacks_builder = CallbacksBuilder.new(quickery_builder: self)
  @callbacks_builder.build_callbacks
end