database_consistency 1.7.19 → 1.7.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43676fecc34589198204d39c8f3e1b1a46b6a616fb5c226ee368a009e84cab24
4
- data.tar.gz: 53980d4481038860da1dd9c673d83b54b4cd5eddd2e98224a0772217dae66d10
3
+ metadata.gz: 2565af47d96e1c040b197300b6952c0e8c110606f82a842296e50146de96e9eb
4
+ data.tar.gz: 879efffc98e6e937acbf15e742357d2a5570a19a95f3f43b9ec34ed4a042c5c7
5
5
  SHA512:
6
- metadata.gz: ff3b416001fee6e744e60ae1a199e74ce7fc4f5e14259cfac8114dab4246d4ca869e545dfe7c3ebee31efc5346c954736fa38606035b7526d7fbe0095aeff152
7
- data.tar.gz: 8daea1d6b71e9ec2c2a8089a22bce987b1d0e3237cc4d61130cb59fb721d3f0b39b2f8ee094f489ccab5349c6c6ffbf9832be3d40062ade2b03dce7faafd054f
6
+ metadata.gz: 6024ff7d235558f6b0ca703bddee252f4537e305df584ff37c1d8569e291b26e7838f31aa9817820d2ac686196e38ed420b5e2b42d608ad234d91003ebacabac
7
+ data.tar.gz: 0f5fe6203dbad2c91acbb99cdf4a82cb86cdbc0e5c13535942810f19a30c8b0d72b93392aa75f501b9bfa0b5965780ef798c3439fd19f0512099d0069f1de572
@@ -34,7 +34,23 @@ module DatabaseConsistency
34
34
  end
35
35
 
36
36
  def weak_option?
37
- validators.all? { |validator| validator.options.slice(*WEAK_OPTIONS).any? }
37
+ validators.all? do |validator|
38
+ result = validator.options.slice(*WEAK_OPTIONS).any?
39
+
40
+ result = false if required_with_if?(validator)
41
+
42
+ result
43
+ end
44
+ end
45
+
46
+ def belongs_to_required_validates_foreign_key_disabled?
47
+ ActiveRecord.version >= Gem::Version.new('7.1.0') &&
48
+ !ActiveRecord.belongs_to_required_validates_foreign_key
49
+ end
50
+
51
+ def required_with_if?(validator)
52
+ belongs_to_required_validates_foreign_key_disabled? &&
53
+ validator.options[:message] == :required && validator.options[:if].present?
38
54
  end
39
55
 
40
56
  def check
@@ -38,7 +38,9 @@ module DatabaseConsistency
38
38
  # Returns list of models to check
39
39
  def models
40
40
  project_models.select do |klass|
41
- !klass.abstract_class? && !klass.name.include?('HABTM_')
41
+ !klass.abstract_class? &&
42
+ klass.connection.table_exists?(klass.table_name) &&
43
+ !klass.name.include?('HABTM_')
42
44
  end
43
45
  end
44
46
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DatabaseConsistency
4
- VERSION = '1.7.19'
4
+ VERSION = '1.7.21'
5
5
  end
@@ -81,7 +81,7 @@ require 'database_consistency/checkers/column_checkers/length_constraint_checker
81
81
  require 'database_consistency/checkers/column_checkers/primary_key_type_checker'
82
82
  require 'database_consistency/checkers/column_checkers/enum_value_checker'
83
83
  require 'database_consistency/checkers/column_checkers/three_state_boolean_checker'
84
- require 'database_consistency/checkers/column_checkers/implicit_ordering_checker.rb'
84
+ require 'database_consistency/checkers/column_checkers/implicit_ordering_checker'
85
85
 
86
86
  require 'database_consistency/checkers/validator_checkers/validator_checker'
87
87
  require 'database_consistency/checkers/validator_checkers/missing_unique_index_checker'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database_consistency
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.19
4
+ version: 1.7.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evgeniy Demin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-17 00:00:00.000000000 Z
11
+ date: 2023-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord