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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ca81ecce48b54d2665c4a672136ba54f6dd123e
4
- data.tar.gz: b804e9540b55f7adcdfb89f1959f1bf4f0dbd51b
3
+ metadata.gz: f8711bba8f2ccbb40233e7818df22ef4429d86cb
4
+ data.tar.gz: a7eef9286f5ba1ff16c98d47a6b053152114f630
5
5
  SHA512:
6
- metadata.gz: 81afad6a3bab313c253f9b0c8dd72992f05c952e78f526823a1b2ed6a92e8e8e41855c9d53dc2adf58d90acf3531d6ca62ad8d342449e35dc52d985def799ad0
7
- data.tar.gz: 16ef081d0d2289deae6b13aff81f58d29f717223d6343052055ba1b110c8d0edc1223a3b1214179c1556916f7f8d7046773b690ea1750060217cbe2a3d244ec4
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.2
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.1.2 ruby lib
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.1.2"
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
- self.namespace ? "#{self.namespace}/" : ""
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
@@ -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
- it "sets a namespace" do
77
- expect(Conferred.namespace).to eq "section"
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
- it "passes the namespace to etcd" do
81
- expect(Net::HTTP).to receive(:get)
82
- .with(URI('http://localhost:2379/section/secret'))
83
- Conferred.secret
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}}')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conferred
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Kenney