uri_config 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTUwM2NmYmNlY2QxZjJlMmZmYzI0NzNlYzJlYWU2M2Q3ODEzNWU2Ng==
4
+ MmIwYTIwNDIxYzZhNGU4NDViZWU4ZTY0NDMwYjM3YjI0NWY1MjA4NA==
5
5
  data.tar.gz: !binary |-
6
- MWViMjlmYmZiZjE5ZmVlODgwYTZkYTY3ZjA0MWUxMjBmYzRjZTQ2NA==
6
+ ODY2MGUwNDI4Y2RkNTk1MWFkMjk5YjhhYzM3YjFlYzQyYjgzNDM1OQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjhlNmUyNzk1Mzg1ODY2ZDM3NzUxMzc1ZDZkMzczNWFjMGIxOWJmMzIwNzM5
10
- OWZiYWYxOWU0NTNiM2IwMWE1MzFkOWUwYmRhMjIzYThmODhkOTdmMmQ0MmZj
11
- Y2Y2ZGExZjU4ZWIzMWQ5ZDc1YmE1ZTg2OWUzYzFjMWViNzE4MDI=
9
+ MmNhNzkzNTQzYzVhZmFhMjU4OWRkNDQzMzliYjAxMWQ2ZWE4NmM2ZWRiZjA4
10
+ NDQ0ZWY5MGQyZmVkNmQ1OTIzYzQ2ODgxMWZmYTBiZGFiMjY4OTBhMTA1NzIz
11
+ N2ZmZDE0ZDUwZTYwZWVjMDY2OTY5MTFmZTYzMmEwYWI1MTk1ZDg=
12
12
  data.tar.gz: !binary |-
13
- NTEzZmFiMGY0ZTdiNzgyN2RlM2FmNTVkYzg1ZTRmN2FmNDE2ODhkMjYyNzQy
14
- MWU5M2ZmNTAxMGQyY2RiMDRkOGNlOTE2MTdkNmZmZWI1ZTY3ZjVkZTg2NGFm
15
- MTE3MzE4MzI2MzViYzFhN2E3ZmE1YjU4ZjZlMmFkZjIwNDIyM2Q=
13
+ ODk2NDI1M2ZiYTZjY2Y2ZTE0MTM5YmNhZDllOWM2MTc4YjgyZjIzYmFkOTMw
14
+ OGRkOWVmYjA2M2FlNDc2ZmQyNjQ3ZWEyOWJlYjIwZWE2ZmUwZmE0MWU0NTQ4
15
+ MTE0NzhjYmZlZGU5MDk0MTNiN2FiYWM2MTRjMzJkYjFkNTQwMmM=
data/README.md CHANGED
@@ -55,6 +55,16 @@ config.bucket # => "bucket_name"
55
55
  config.config # => {access_key_id: "AKIAJUSERNAME, secret_access_key: "abcd12345678", bucket: "bucket_name" }
56
56
  ```
57
57
 
58
+ Use the `.configure_from` helper to configure based on environment variables, e.g. config/initializers/mandrill.rb:
59
+
60
+ ```ruby
61
+ require "uri_config/action_mailer_config"
62
+
63
+ URIConfig::ActionMailerConfig.configure_from('ACTION_MAILER_URL') do |c|
64
+ Rails.application.config.action_mailer.smtp_settings = c.config
65
+ end
66
+ ```
67
+
58
68
  ## Contributing
59
69
 
60
70
  1. Fork it ( https://github.com/JonathonMA/uri_config/fork )
@@ -17,6 +17,18 @@ module URIConfig
17
17
  end
18
18
  end
19
19
 
20
+ def self.configure_from(env_var)
21
+ return unless (value = ENV[env_var])
22
+
23
+ yield new(value)
24
+ end
25
+
26
+ def ==(other)
27
+ return false unless other.is_a?(self.class)
28
+
29
+ url == other.url
30
+ end
31
+
20
32
  def username
21
33
  CGI.unescape uri.user
22
34
  end
@@ -52,6 +64,10 @@ module URIConfig
52
64
  end
53
65
  end
54
66
 
67
+ protected
68
+
69
+ attr_reader :url
70
+
55
71
  private
56
72
 
57
73
  def query
@@ -59,7 +75,7 @@ module URIConfig
59
75
  end
60
76
 
61
77
  def uri
62
- @uri ||= URI.parse @url
78
+ @uri ||= URI.parse url
63
79
  end
64
80
  end
65
81
  end
@@ -1,3 +1,3 @@
1
1
  module URIConfig
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/spec/config_spec.rb CHANGED
@@ -35,5 +35,31 @@ module URIConfig
35
35
  end
36
36
  end
37
37
  end
38
+
39
+ describe ".configure_from" do
40
+ context "when TEST_URL is not set" do
41
+ specify do
42
+ expect do |b|
43
+ URIConfig::Config.configure_from("TEST_URL", &b)
44
+ end.not_to yield_control
45
+ end
46
+ end
47
+
48
+ context "when TEST_URL is set" do
49
+ before(:each) do
50
+ ENV["TEST_URL"] = "https://example.com/foo"
51
+ end
52
+
53
+ after(:each) do
54
+ ENV["TEST_URL"] = nil
55
+ end
56
+
57
+ specify do
58
+ expect do |b|
59
+ URIConfig::Config.configure_from("TEST_URL", &b)
60
+ end.to yield_with_args(URIConfig::Config.new(ENV["TEST_URL"]))
61
+ end
62
+ end
63
+ end
38
64
  end
39
65
  end
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.2
4
+ version: 0.0.3
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: 2014-11-26 00:00:00.000000000 Z
11
+ date: 2014-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler