uri_config 0.0.7 → 0.0.8

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: 019feae44d371f910da27ffc6ad40ce059a48e59
4
- data.tar.gz: ebdfa891a073420acf8f211d5c5f7e82073f5930
3
+ metadata.gz: 3df420447e8f57f3918f652e0bbcdc59cabbdc73
4
+ data.tar.gz: d47ed2b33d353dc82be7cb3876fb1cef14b0d614
5
5
  SHA512:
6
- metadata.gz: 86b4244df375e9e78bdcb10a9941402f9567bd1cc1ddca86f6da5c4cc5a3230969fd83aa2e5a0d77717f3fd089eaace489ff3e2564f8a24b38c6a0d01ffea079
7
- data.tar.gz: 0c19b247a8b9a37a73dc7d54fb6e36cd5a4cfbdb204050bd6659ab832ad6ff6a909c2d328926a5f07ca50fcfee4fdf22ab47c6a666311cd25962eebec3823318
6
+ metadata.gz: bb3963a38308048e2c802caaf60cf6f3bc576ec932cbedf894f314c401bece4754d1365a2b1f27fe155cb78654f3986a6eac3ece5b496387084912723497a13b
7
+ data.tar.gz: ff41f08ced96f8fcda1544be593c3c96247c61589fd88d12c87aa90f5506735bc6239994df4b50aa92804ff017054af7272a43b929685fa58d79cd4e7ab64db8
@@ -23,6 +23,12 @@ module URIConfig
23
23
  yield new(value)
24
24
  end
25
25
 
26
+ def self.configure_from!(env_var)
27
+ return unless (value = ENV.fetch(env_var))
28
+
29
+ yield new(value)
30
+ end
31
+
26
32
  def self.values_from(env_var, *params)
27
33
  config = new(ENV.fetch(env_var))
28
34
  params.map { |param| config.public_send(param) }
@@ -81,7 +87,7 @@ module URIConfig
81
87
 
82
88
  def uri
83
89
  @uri ||= URI.parse url
84
- rescue URI::InvalidURIError => e
90
+ rescue URI::InvalidURIError
85
91
  raise URI::InvalidURIError, "Invalid URI: <URL_SUPPRESSED>"
86
92
  end
87
93
  end
@@ -1,3 +1,3 @@
1
1
  module URIConfig
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
data/spec/config_spec.rb CHANGED
@@ -41,7 +41,7 @@ module URIConfig
41
41
  specify do
42
42
  expect do
43
43
  URIConfig::Config.values_from("TEST_URL")
44
- end.to raise_error
44
+ end.to raise_error KeyError
45
45
  end
46
46
  end
47
47
 
@@ -88,6 +88,32 @@ module URIConfig
88
88
  end
89
89
  end
90
90
 
91
+ describe ".configure_from!" do
92
+ context "when TEST_URL is not set" do
93
+ specify do
94
+ expect do
95
+ URIConfig::Config.configure_from!("TEST_URL") {}
96
+ end.to raise_error KeyError, 'key not found: "TEST_URL"'
97
+ end
98
+ end
99
+
100
+ context "when TEST_URL is set" do
101
+ before(:each) do
102
+ ENV["TEST_URL"] = "https://example.com/foo"
103
+ end
104
+
105
+ after(:each) do
106
+ ENV["TEST_URL"] = nil
107
+ end
108
+
109
+ specify do
110
+ expect do |b|
111
+ URIConfig::Config.configure_from!("TEST_URL", &b)
112
+ end.to yield_with_args(URIConfig::Config.new(ENV["TEST_URL"]))
113
+ end
114
+ end
115
+ end
116
+
91
117
  # This behaviour will make it ... difficult to troubleshoot
92
118
  it "should not leak secrets on error" do
93
119
  url = "https://USER:secret@foo.bar.com@foo.bar.com/"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uri_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathon M. Abbott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-19 00:00:00.000000000 Z
11
+ date: 2015-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -117,3 +117,4 @@ test_files:
117
117
  - spec/action_mailer_config_spec.rb
118
118
  - spec/config_spec.rb
119
119
  - spec/s3_config_spec.rb
120
+ has_rdoc: