nuclear_secrets 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d66974bc82f621a36295f3ce01fb7e47db738f96
4
- data.tar.gz: 7e31a359874b01264e6ce9ab9d5b395404e65c06
3
+ metadata.gz: 4dd76875fe74fffcbc470049619b65182ea50625
4
+ data.tar.gz: 11c2e408eaa6de7be7ee6b2a15036ccab19334fd
5
5
  SHA512:
6
- metadata.gz: 4e3adf35cd3459902c5630deca8c23a1dda5b9bf258e091c69192719568668a139f2583fa25cf446785d336d065865c6f1547f66954e8eb925da28074821f175
7
- data.tar.gz: 7de5fe9f9b0f148a0c9ceeac8527e2132af021a0e2b891aad016eed2c0c1839252327f684be3dea4586e2e1644a01215865896a4d2d5923097fbae80e1e0e683
6
+ metadata.gz: 53c101780a0d2b3d3e1a12aa982b7a47abe13b00bdfd5a5de88461d3ab13397b899d853ea6e0fea7fee91b9c1dec8043fc363b0c7293f30b578bfb8020472bc7
7
+ data.tar.gz: 0ee7fead105f4bee046a2b637cd0698034fccc9912cdbe8a3738a1c703bf49726f0a7b3abc23d747f17dc68ae3682c028f1f88422e8121085f229ddad78c52bf
data/README.md CHANGED
@@ -35,7 +35,7 @@ In addition to being able to supply NuclearSecrets with the type of a secret,
35
35
  you can also pass a Proc or a Lambda. If the proc or lamba returns true when
36
36
  passed the value of the secret, then the secret will be allowed.
37
37
 
38
- ```
38
+ ```ruby
39
39
  NuclearSecrets.configure do |config|
40
40
  config.required_secrets = {
41
41
  my_string_secret: String,
@@ -45,6 +45,22 @@ NuclearSecrets.configure do |config|
45
45
  end
46
46
  ```
47
47
 
48
+ ## Settings
49
+ You can add a settings object in the configure as well:
50
+
51
+ ```ruby
52
+ NuclearSecrets.configure do |config|
53
+ config.required_secrets = {
54
+ ...
55
+ }
56
+ config.settings = {
57
+ raise_on_extra_secrets: false,
58
+ }
59
+ end
60
+ ```
61
+
62
+ * `raise_on_extra_secrets`: raises an error when extra secrets are present(defaults to `false`)
63
+
48
64
  ## Contributing
49
65
  Contribution directions go here.
50
66
 
@@ -1,14 +1,27 @@
1
1
  require "nuclear_secrets/engine"
2
2
  require "nuclear_secrets/errors"
3
+ require "logger"
3
4
 
4
5
  module NuclearSecrets
5
6
  class << self
6
7
  attr_accessor(:required_secrets)
8
+ attr_accessor(:settings)
7
9
 
8
10
  def configure
9
11
  yield self if block_given?
10
12
  end
11
13
 
14
+ def init_settings
15
+ @settings = {} unless @settings.is_a? Hash
16
+ @settings = default_settings.merge(@settings)
17
+ end
18
+
19
+ def default_settings
20
+ {
21
+ raise_on_extra_secrets: false,
22
+ }
23
+ end
24
+
12
25
  def make_type_check(type)
13
26
  Proc.new { |item| item.class == type }
14
27
  end
@@ -58,6 +71,8 @@ module NuclearSecrets
58
71
  end
59
72
 
60
73
  def check_secrets(secrets)
74
+ logger = Logger.new(STDOUT)
75
+ init_settings
61
76
  raise NuclearSecrets::RequiredSecretsListMissing if required_secrets.nil?
62
77
  req_keys = required_secrets.keys
63
78
  existing_keys = secrets.keys
@@ -73,6 +88,9 @@ module NuclearSecrets
73
88
  assertions = build_assertions(secrets, existing_keys)
74
89
  error_pairs = check_assertions(secrets, assertions)
75
90
  raise MismatchedSecretType.new(error_pairs) if !error_pairs.empty?
91
+ rescue ExtraSecretsError => e
92
+ logger.warn e.message
93
+ raise e if @settings[:raise_on_extra_secrets] == true
76
94
  end
77
95
  end
78
96
  end
@@ -1,3 +1,3 @@
1
1
  module NuclearSecrets
2
- VERSION = "1.0.3".freeze
2
+ VERSION = "1.0.4".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nuclear_secrets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Atomic Jolt
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-03-20 00:00:00.000000000 Z
12
+ date: 2018-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails