Class: DatabaseConsistency::Checkers::BaseChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/database_consistency/checkers/base_checker.rb

Overview

The base class for checkers

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.checker_nameString

Returns:

  • (String)


24
25
26
# File 'lib/database_consistency/checkers/base_checker.rb', line 24

def self.checker_name
  @checker_name ||= name.demodulize
end

.enabled?(configuration) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


10
11
12
# File 'lib/database_consistency/checkers/base_checker.rb', line 10

def self.enabled?(configuration)
  configuration.enabled?('DatabaseConsistencyCheckers', checker_name)
end

.inherited(subclass) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/database_consistency/checkers/base_checker.rb', line 14

def self.inherited(subclass)
  super

  return if subclass.superclass.name == 'DatabaseConsistency::Checkers::BaseChecker'

  processor = subclass.processor
  processor.checkers << subclass
end

Instance Method Details

#enabled?(configuration) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)


49
50
51
# File 'lib/database_consistency/checkers/base_checker.rb', line 49

def enabled?(configuration)
  configuration.enabled?(table_or_model_name, column_or_attribute_name, checker_name)
end

#report(catch_errors: true) ⇒ Hash, ...

Parameters:

  • catch_errors (Boolean) (defaults to: true)

Returns:

  • (Hash, File, nil)


31
32
33
34
35
36
37
38
39
# File 'lib/database_consistency/checkers/base_checker.rb', line 31

def report(catch_errors: true)
  return unless preconditions

  @report ||= check
rescue StandardError => e
  raise e unless catch_errors

  RescueError.call(e)
end

#report_if_enabled?(configuration) ⇒ Hash, ...

Returns:

  • (Hash, File, nil)


42
43
44
# File 'lib/database_consistency/checkers/base_checker.rb', line 42

def report_if_enabled?(configuration)
  report if enabled?(configuration)
end