Class: Unico::SimilarityControlAdjuster

Inherits:
Object
  • Object
show all
Defined in:
app/business/unico/similarity_control_adjuster.rb

Direct Known Subclasses

SimilarityControlAdjuster

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(similarity_control, options = {}) ⇒ SimilarityControlAdjuster

Returns a new instance of SimilarityControlAdjuster.



2
3
4
5
6
7
# File 'app/business/unico/similarity_control_adjuster.rb', line 2

def initialize(similarity_control, options = {})
  @similarity_control = similarity_control

  @connection = options.delete(:connection) { ActiveRecord::Base.connection }
  @similarity_control_table_repository = options.delete(:similarity_control_table_repository) { ::SimilarityControlTable }
end

Class Method Details

.inactivate!(*attr) ⇒ Object



9
10
11
# File 'app/business/unico/similarity_control_adjuster.rb', line 9

def self.inactivate!(*attr)
  new(*attr).inactivate!
end

Instance Method Details

#inactivate!Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/business/unico/similarity_control_adjuster.rb', line 13

def inactivate!
  return unless similarity_control.can_edit?

  similarity_control.transaction do
    iterate_items do |item|
      update_record(item.field_id, item.agglutinate?)
    end

    destiny_tables.each do |table_name|
      record = similarity_control_table_repository.new
      record.similarity_control = similarity_control
      record.table_name = table_name
      record.save!

      fix_table!(record)
    end
  end
end