conferred 0.1.2 → 0.2.0
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 +4 -4
- data/README.rdoc +9 -1
- data/VERSION +1 -1
- data/conferred.gemspec +2 -2
- data/lib/conferred.rb +13 -7
- data/spec/conferred_spec.rb +39 -13
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8711bba8f2ccbb40233e7818df22ef4429d86cb
|
4
|
+
data.tar.gz: a7eef9286f5ba1ff16c98d47a6b053152114f630
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f653a30ca067c1be29153a5b7bb28801f77746ac060c396b8e559198f8f51e7d3075874df264253419bdfc1bd1755c9a6e0ad825bbcedb6731d54a618a38c32c
|
7
|
+
data.tar.gz: ee5c32b780d81224803a9212609048ac980a35a42cf5fbb5241307a1cb266c8ac0a4da6b206907879e35b7979293b190c45a18cc44fa48cb94f6d8d298660bd7
|
data/README.rdoc
CHANGED
@@ -12,6 +12,7 @@ http://12factor.net/config
|
|
12
12
|
== Usage
|
13
13
|
|
14
14
|
to access the environment use:
|
15
|
+
------------------------------
|
15
16
|
|
16
17
|
Conferred.gmail_user
|
17
18
|
# returns ENV['GMAIL_USER']
|
@@ -23,13 +24,20 @@ to access the environment use:
|
|
23
24
|
# returns ENV['GMAIL_USER'] if it has a non blank value
|
24
25
|
# otherwise raises an error
|
25
26
|
|
26
|
-
to access etcd settings
|
27
|
+
to access etcd settings:
|
28
|
+
------------------------
|
27
29
|
|
28
30
|
Conferred.provider = :etcd
|
29
31
|
Conferred.namespace = :my_app
|
30
32
|
Conferred.gmail_user
|
31
33
|
# returns the value of etcd key at "http://localhost:2379/v2/keys/:my_app/gmail_user"
|
34
|
+
# if etcd does not respond with a value try to lookup in the environment
|
32
35
|
|
36
|
+
to configure from the enviromnent:
|
37
|
+
----------------------------------
|
38
|
+
|
39
|
+
export CONFERRED_PROVIDER=etcd
|
40
|
+
export CONFERRED_ETCD_NAMESPACE=my_app
|
33
41
|
|
34
42
|
== Contributing to conferred
|
35
43
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/conferred.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: conferred 0.
|
5
|
+
# stub: conferred 0.2.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "conferred"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.2.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
data/lib/conferred.rb
CHANGED
@@ -3,8 +3,6 @@ require 'json'
|
|
3
3
|
class Conferred
|
4
4
|
@@provider = "env"
|
5
5
|
class << self
|
6
|
-
attr_accessor :namespace
|
7
|
-
|
8
6
|
def provider=(value)
|
9
7
|
@@provider=value
|
10
8
|
end
|
@@ -13,11 +11,17 @@ class Conferred
|
|
13
11
|
@@provider || ENV["CONFERRED_PROVIDER"] || "env"
|
14
12
|
end
|
15
13
|
|
14
|
+
def namespace=(value)
|
15
|
+
@@namespace=value
|
16
|
+
end
|
17
|
+
|
18
|
+
def namespace
|
19
|
+
@@namespace || ENV["CONFERRED_ETC_NAMESPACE"] || ""
|
20
|
+
end
|
21
|
+
|
22
|
+
|
16
23
|
def method_missing(setting, *args, &block)
|
17
|
-
if setting =~ /#{provider}_setting_value/
|
18
|
-
super
|
19
|
-
return
|
20
|
-
end
|
24
|
+
super if setting =~ /#{provider}_setting_value/
|
21
25
|
method = :setting_value
|
22
26
|
method = :setting_value? if setting[-1] == "?"
|
23
27
|
method = :setting_value! if setting[-1] == "!"
|
@@ -61,7 +65,9 @@ class Conferred
|
|
61
65
|
end
|
62
66
|
|
63
67
|
def etcd_setting_namespace
|
64
|
-
|
68
|
+
return "" unless self.namespace
|
69
|
+
return "" if self.namespace.empty?
|
70
|
+
"#{self.namespace}/"
|
65
71
|
end
|
66
72
|
|
67
73
|
def setting_method_name
|
data/spec/conferred_spec.rb
CHANGED
@@ -5,6 +5,12 @@ def set_envs(params)
|
|
5
5
|
end
|
6
6
|
|
7
7
|
describe "Conferred" do
|
8
|
+
before do
|
9
|
+
#reset to defaults
|
10
|
+
Conferred.namespace = nil
|
11
|
+
Conferred.provider = nil
|
12
|
+
end
|
13
|
+
|
8
14
|
context "simple config methods " do
|
9
15
|
describe "accessor methods" do
|
10
16
|
it "returns environment setting" do
|
@@ -34,6 +40,7 @@ describe "Conferred" do
|
|
34
40
|
set_envs "A_SETTING" => "value 123"
|
35
41
|
expect(Conferred.a_setting?).to eq true
|
36
42
|
end
|
43
|
+
|
37
44
|
it "is false when missing" do
|
38
45
|
expect(Conferred.another_setting?).to eq false
|
39
46
|
end
|
@@ -43,10 +50,6 @@ describe "Conferred" do
|
|
43
50
|
|
44
51
|
describe "providers" do
|
45
52
|
describe "#provider" do
|
46
|
-
before do
|
47
|
-
Conferred.provider= nil
|
48
|
-
end
|
49
|
-
|
50
53
|
it "defaults to 'env'" do
|
51
54
|
expect(Conferred.provider).to eq "env"
|
52
55
|
end
|
@@ -70,24 +73,47 @@ describe "Conferred" do
|
|
70
73
|
describe "#namespace" do
|
71
74
|
before do
|
72
75
|
Conferred.provider = "etcd"
|
73
|
-
Conferred.namespace = "section"
|
74
76
|
end
|
75
77
|
|
76
|
-
|
77
|
-
|
78
|
+
context "configured namespace" do
|
79
|
+
before do
|
80
|
+
Conferred.namespace = "section"
|
81
|
+
end
|
82
|
+
|
83
|
+
it "sets a namespace" do
|
84
|
+
expect(Conferred.namespace).to eq "section"
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
it "passes the namespace to etcd" do
|
89
|
+
expect(Net::HTTP).to receive(:get)
|
90
|
+
.with(URI('http://localhost:2379/section/secret'))
|
91
|
+
Conferred.secret
|
92
|
+
end
|
78
93
|
end
|
79
94
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
95
|
+
context "inferred namespace" do
|
96
|
+
before do
|
97
|
+
set_envs "CONFERRED_ETC_NAMESPACE" => "monty"
|
98
|
+
end
|
99
|
+
|
100
|
+
it "defers to the environment" do
|
101
|
+
expect(Conferred.namespace).to eq "monty"
|
102
|
+
end
|
103
|
+
|
104
|
+
it "configured value overides environment" do
|
105
|
+
Conferred.namespace = "sect"
|
106
|
+
expect(Conferred.namespace).to eq "sect"
|
107
|
+
end
|
84
108
|
end
|
85
109
|
end
|
86
110
|
|
87
111
|
describe "etcd" do
|
112
|
+
before do
|
113
|
+
Conferred.provider = "etcd"
|
114
|
+
end
|
115
|
+
|
88
116
|
it "calls the correct lookup function based on provider" do
|
89
|
-
Conferred.provider="etcd"
|
90
|
-
Conferred.namespace=nil
|
91
117
|
allow(Net::HTTP).to receive(:get)
|
92
118
|
.with(URI('http://localhost:2379/secret'))
|
93
119
|
.and_return('{"action":"get","node":{"key":"/secret","value":"foo","modifiedIndex":2962,"createdIndex":2962}}')
|