Module: DatabaseConsistency

Defined in:
lib/database_consistency.rb,
lib/database_consistency/helper.rb,
lib/database_consistency/report.rb,
lib/database_consistency/version.rb,
lib/database_consistency/configuration.rb,
lib/database_consistency/database_processor.rb,
lib/database_consistency/writers/base_writer.rb,
lib/database_consistency/validators_processor.rb,
lib/database_consistency/writers/simple_writer.rb,
lib/database_consistency/comparators/base_comparator.rb,
lib/database_consistency/column_verifiers/base_verifier.rb,
lib/database_consistency/comparators/presence_comparator.rb,
lib/database_consistency/column_verifiers/presence_missing_verifier.rb

Overview

The root module

Defined Under Namespace

Modules: ColumnVerifiers, Comparators, Helper, Writers Classes: Configuration, DatabaseProcessor, Report, ValidatorsProcessor

Constant Summary collapse

CONFIGURATION_PATH =
'.database_consistency.yml'.freeze
PROCESSORS =
[
  ValidatorsProcessor,
  DatabaseProcessor
].freeze
VERSION =
'0.2.3'.freeze

Class Method Summary collapse

Class Method Details

.configuration ⇒ Object



46
47
48
49
50
51
52
# File 'lib/database_consistency.rb', line 46

def configuration
  @configuration ||= if File.exist?(CONFIGURATION_PATH)
                       Configuration.new(CONFIGURATION_PATH)
                     else
                       Configuration.new
                     end
end

.enabled_processors ⇒ Object



38
39
40
# File 'lib/database_consistency.rb', line 38

def enabled_processors
  PROCESSORS.select { |processor| configuration.enabled?(processor) }
end

.reports ⇒ Object



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

def reports
  enabled_processors.map(&:new).flat_map(&:reports)
end

.run ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/database_consistency.rb', line 29

def run
  Helper.load_environment!

  Writers::SimpleWriter.write(
    reports,
    ENV['LOG_LEVEL'] || 'INFO'
  )
end