foreign_key_validation 1.1.0 → 1.1.1

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDU3ZTY0MGMyNmIzYTJiOWFjMjZjMzE5NjllMWM1MjAyNmI5MTcwOA==
4
+ YjZkZDY5NzBlNGQ2ZTQ0MThkMjc5OWY4MGU3ZDVjZDVkMTg5NjdiNQ==
5
5
  data.tar.gz: !binary |-
6
- OTRhOTc5NzlmZDBjODAxNmE4Mzk4NjM1ZDQ2NDJhMjkyMTFhZWY4YQ==
6
+ NmU5Y2NmNGQ3M2YyNjFlOWI4YmI3M2JlZTZhYTM3NDA0MWU0NzFmYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODdiYzEzM2FhNTE1ZGVjZmMzYWY2ZmMxMGFmZDM2NTIxZjlmYjcxMGY1Njdk
10
- NmZmN2Q3ZmY1YTkzN2NlYjZiNzhhNjhmNDUwNTAxOTkyYjMwMzRlYjg1NWU3
11
- ZTc2ZWE1ZTAxZDYzMzQ1MmRkNmVmYmZkOGViOGZjNTRiNGNhYTY=
9
+ YmY4NTllNGJhZTc0ODhlNmE0YjM3ZmYyNWU0OTZhMDQzOGYwMzVjZDkwYzIy
10
+ Y2VhOWNiZGE4MDczNTU4OGRlYWZmNmY0ODQ0YTU1ZmU5Mjg4MDZjNDY4NGNk
11
+ ZDM4NjgxYzM4NDQwODk1NzlmYWZkNzRkYmQ5NDczMzYzNGU4Y2Y=
12
12
  data.tar.gz: !binary |-
13
- NTczZTBjNGFjNTgyYThkNThlZTQwZDUzNTZlZTQ3ZTk2MGIzMDY1ODRhMTg1
14
- OWE2MDRhMGUxYzA5Yzg2NTEwYmEzMDk2NDUzOTU3MjhjNjNiMmFlY2NiOTc0
15
- OTUxNTMwMmQzZDNhZTEyNjk3MWRhN2JhMmVlODE4NzczZGI2MDk=
13
+ Y2QwMTRkNzg4ZWE5MjVmOTc3N2I4NTM1YTk5OTg2Zjk4N2VkODE0OTJlYWYx
14
+ ODUxOTdjMDBhZWNmMzcwNmJiZGExOTI0MTExY2I0NGZmYTU1MzBiNDkwZmE4
15
+ MWE0MTM1YmJhYmFlODMzM2FlNzZiZGEwYTM4MmRmOGVhNDNhN2E=
data/README.md CHANGED
@@ -37,11 +37,12 @@ This would only check `model.project.admin_user_id` to match `model.admin_user_i
37
37
 
38
38
  ## Configuration
39
39
 
40
- You can customize the behaviour of the gem by calling the `configure` method on the module with a block (e.g. initializer).
40
+ You can customize the default behaviour of the gem by calling the `configure` method on the module with a block (e.g. initializer).
41
41
 
42
42
  ForeignKeyValidation.configure do |config|
43
43
  config.error_message = proc { |key, name, object| "My custom msg!" }
44
- config.inject_subclasses = true
44
+ config.inject_subclasses = false # default: true
45
+ config.validate_against = :admin # default: :user
45
46
  end
46
47
 
47
48
  ## Note
@@ -3,8 +3,6 @@ module ForeignKeyValidation
3
3
  class Collector
4
4
  attr_accessor :options
5
5
 
6
- DEFAULT_VALIDATE_AGAINST = :user
7
-
8
6
  def initialize(opt={})
9
7
  self.options = opt
10
8
  end
@@ -21,7 +19,7 @@ module ForeignKeyValidation
21
19
  end
22
20
 
23
21
  def validate_against
24
- @validate_against ||= (options[:on] || DEFAULT_VALIDATE_AGAINST).to_s
22
+ @validate_against ||= (options[:on] || ForeignKeyValidation.configuration.validate_against).to_s
25
23
  end
26
24
 
27
25
  def validate_with
@@ -1,3 +1,3 @@
1
1
  module ForeignKeyValidation
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
@@ -10,8 +10,9 @@ module ForeignKeyValidation
10
10
 
11
11
  DEFAULT_CONFIG = {
12
12
  inject_subclasses: true,
13
- error_message: proc { |validate_against_key, reflection_name, object|
14
- "#{validate_against_key} of #{reflection_name} does not match #{object.class.name.tableize} #{validate_against_key}."
13
+ validate_against: :user,
14
+ error_message: proc { |key, reflection_name, object|
15
+ "#{key} of #{reflection_name} does not match #{object.class.name.tableize} #{key}."
15
16
  }
16
17
  }
17
18
 
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe ForeignKeyValidation do
4
+
5
+ describe ".configuration" do
6
+
7
+ subject { ForeignKeyValidation }
8
+
9
+ it "initializes configuration as open struct" do
10
+ expect(subject.configuration).to be_instance_of OpenStruct
11
+ end
12
+
13
+ it "defaults to true for injecting subclasses" do
14
+ expect(subject.configuration.inject_subclasses).to eq true
15
+ end
16
+
17
+ it "defaults to proc for error messages" do
18
+ expect(subject.configuration.error_message).to be_a Proc
19
+ expect(subject.configuration.error_message.call).to match /does not match/
20
+ end
21
+
22
+ it "defaults to :user for validate against key" do
23
+ expect(subject.configuration.validate_against).to eq :user
24
+ end
25
+
26
+ end
27
+
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreign_key_validation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcus Geißler
@@ -168,6 +168,7 @@ files:
168
168
  - lib/foreign_key_validation/validator.rb
169
169
  - lib/foreign_key_validation/version.rb
170
170
  - spec/collector/base_spec.rb
171
+ - spec/config_spec.rb
171
172
  - spec/model_extension/validation_with_config_block_spec.rb
172
173
  - spec/model_extension/validation_with_custom_attrs_spec.rb
173
174
  - spec/model_extension/validation_with_exceptions_spec.rb
@@ -205,6 +206,7 @@ specification_version: 4
205
206
  summary: Protect the foreign keys in your Rails models.
206
207
  test_files:
207
208
  - spec/collector/base_spec.rb
209
+ - spec/config_spec.rb
208
210
  - spec/model_extension/validation_with_config_block_spec.rb
209
211
  - spec/model_extension/validation_with_custom_attrs_spec.rb
210
212
  - spec/model_extension/validation_with_exceptions_spec.rb