enver 0.1.0 → 1.0.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.md +9 -9
- data/lib/enver/loader.rb +27 -13
- data/lib/enver/version.rb +1 -1
- data/spec/enver/loader_spec.rb +38 -26
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f33b8db91593c565ee79e8f9cc9c831b2d7667dc
|
4
|
+
data.tar.gz: 2c65477773a658a4715f9204b3391d954a30642a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca46784a94a3b3cfda6223615560dc80fd8e5cf3fc650eaf0f4714a2cffd49c998e0de894349b1f3eeedb99f240058a421084f5106ce7a9631b27ac841fc78e5
|
7
|
+
data.tar.gz: 46cdeefe17836fc39ea13e377fa13c96530703cbd1da7cc715c4d9280824256ffc6e8db5f143ae7b38ffb59cd8e95ed29333d235b71bd385cd9f714f305a7a3b
|
data/README.md
CHANGED
@@ -23,21 +23,21 @@ Or install it yourself as:
|
|
23
23
|
```bash
|
24
24
|
export CLIENT_KEY=xxx
|
25
25
|
export CLIENT_SECRET=yyy
|
26
|
-
export
|
26
|
+
export NUM_SERVERS=4
|
27
27
|
export NEW_RELIC_LICENSE_KEY=lisencekey
|
28
28
|
export NEW_RELIC_APP_NAME=appname
|
29
29
|
```
|
30
30
|
|
31
31
|
```ruby
|
32
32
|
env = Enver.load do
|
33
|
-
string :client_key
|
34
|
-
string :client_secret
|
35
|
-
integer :servers, '
|
36
|
-
array :path,
|
37
|
-
|
38
|
-
partial :new_relic
|
39
|
-
string :license_key
|
40
|
-
string :app_name
|
33
|
+
string :client_key
|
34
|
+
string :client_secret
|
35
|
+
integer :servers, 'NUM_SERVERS'
|
36
|
+
array :path, pattern: ':'
|
37
|
+
|
38
|
+
partial :new_relic do
|
39
|
+
string :license_key
|
40
|
+
string :app_name
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
data/lib/enver/loader.rb
CHANGED
@@ -11,50 +11,64 @@ module Enver
|
|
11
11
|
instance_eval(&block) if block
|
12
12
|
end
|
13
13
|
|
14
|
-
def value(
|
14
|
+
def value(*args)
|
15
|
+
options = extract_options! args
|
16
|
+
has_default = options.key? :default
|
17
|
+
name = args.shift
|
18
|
+
env_name = args.shift || name.to_s.upcase
|
19
|
+
|
15
20
|
value = fetch env_name, options
|
16
|
-
|
21
|
+
value = yield value, options if !has_default && block_given?
|
22
|
+
|
23
|
+
store name, value
|
17
24
|
end
|
18
25
|
|
19
|
-
def string(
|
20
|
-
value(
|
26
|
+
def string(*args)
|
27
|
+
value(*args) do |v|
|
21
28
|
v
|
22
29
|
end
|
23
30
|
end
|
24
31
|
|
25
|
-
def integer(
|
26
|
-
value(
|
32
|
+
def integer(*args)
|
33
|
+
value(*args) do |v|
|
27
34
|
Integer(v)
|
28
35
|
end
|
29
36
|
end
|
30
37
|
|
31
|
-
def float(
|
32
|
-
value(
|
38
|
+
def float(*args)
|
39
|
+
value(*args) do |v|
|
33
40
|
Float(v)
|
34
41
|
end
|
35
42
|
end
|
36
43
|
|
37
|
-
def boolean(
|
38
|
-
value(
|
44
|
+
def boolean(*args)
|
45
|
+
value(*args) do |v, options|
|
39
46
|
true_values = options[:true_values] || %w(1 t true y yes)
|
40
47
|
true_values.include?(v)
|
41
48
|
end
|
42
49
|
end
|
43
50
|
|
44
|
-
def array(
|
45
|
-
value(
|
51
|
+
def array(*args)
|
52
|
+
value(*args) do |v, options|
|
46
53
|
pattern = options[:pattern] || ','
|
47
54
|
limit = options[:limit] || 0
|
48
55
|
v.split(pattern, limit)
|
49
56
|
end
|
50
57
|
end
|
51
58
|
|
52
|
-
def partial(
|
59
|
+
def partial(*args, &block)
|
60
|
+
options = extract_options! args
|
61
|
+
name = args.shift
|
62
|
+
env_prefix = args.shift || "#{name.to_s.upcase}_"
|
53
63
|
store name, Loader.new(@env, with_prefix(env_prefix), &block).attributes
|
54
64
|
end
|
55
65
|
|
56
66
|
private
|
57
67
|
|
68
|
+
def extract_options!(args)
|
69
|
+
args.last.is_a?(::Hash) ? args.pop : {}
|
70
|
+
end
|
71
|
+
|
58
72
|
def with_prefix(env_name)
|
59
73
|
"#{@prefix}#{env_name}"
|
60
74
|
end
|
data/lib/enver/version.rb
CHANGED
data/spec/enver/loader_spec.rb
CHANGED
@@ -4,6 +4,7 @@ require 'spec_helper'
|
|
4
4
|
RSpec.describe Enver::Loader do
|
5
5
|
let(:env) do
|
6
6
|
{
|
7
|
+
'VALUE' => 'enver',
|
7
8
|
'STRING1' => '',
|
8
9
|
'STRING2' => 'test',
|
9
10
|
'INTEGER1' => '',
|
@@ -35,46 +36,55 @@ RSpec.describe Enver::Loader do
|
|
35
36
|
it { expect(loader.send(:fetch, 'NOTHING', default: 123)).to eq(123) }
|
36
37
|
end
|
37
38
|
|
39
|
+
describe '#value' do
|
40
|
+
it { expect(loader.value(:v, 'VALUE')).to eq('enver') }
|
41
|
+
it { expect(loader.value(:value)).to eq('enver') }
|
42
|
+
end
|
43
|
+
|
38
44
|
describe '#string' do
|
39
|
-
it { expect(loader.string(:
|
40
|
-
it { expect(loader.string(:
|
45
|
+
it { expect(loader.string(:string1)).to eq('') }
|
46
|
+
it { expect(loader.string(:string2)).to eq('test') }
|
41
47
|
end
|
42
48
|
|
43
49
|
describe '#integer' do
|
44
|
-
it { expect{loader.integer(:
|
45
|
-
it { expect(loader.integer(:
|
46
|
-
it { expect{loader.integer(:
|
47
|
-
it { expect{loader.integer(:
|
50
|
+
it { expect{loader.integer(:integer1)}.to raise_error }
|
51
|
+
it { expect(loader.integer(:integer2)).to eq(1) }
|
52
|
+
it { expect{loader.integer(:integer3)}.to raise_error }
|
53
|
+
it { expect{loader.integer(:integer4)}.to raise_error }
|
48
54
|
end
|
49
55
|
|
50
56
|
describe '#boolean' do
|
51
|
-
it { expect(loader.boolean(:
|
52
|
-
it { expect(loader.boolean(:
|
53
|
-
it { expect(loader.boolean(:
|
54
|
-
it { expect(loader.boolean(:
|
55
|
-
it { expect(loader.boolean(:
|
56
|
-
it { expect(loader.boolean(:
|
57
|
-
it { expect(loader.boolean(:
|
58
|
-
it { expect(loader.boolean(:
|
59
|
-
it { expect(loader.boolean(:
|
60
|
-
it { expect(loader.boolean(:
|
61
|
-
it { expect(loader.boolean(:
|
57
|
+
it { expect(loader.boolean(:boolean1)).to eq(false) }
|
58
|
+
it { expect(loader.boolean(:boolean2)).to eq(true) }
|
59
|
+
it { expect(loader.boolean(:boolean3)).to eq(false) }
|
60
|
+
it { expect(loader.boolean(:boolean4)).to eq(true) }
|
61
|
+
it { expect(loader.boolean(:boolean5)).to eq(false) }
|
62
|
+
it { expect(loader.boolean(:boolean6)).to eq(true) }
|
63
|
+
it { expect(loader.boolean(:boolean7)).to eq(false) }
|
64
|
+
it { expect(loader.boolean(:boolean8)).to eq(true) }
|
65
|
+
it { expect(loader.boolean(:boolean9)).to eq(false) }
|
66
|
+
it { expect(loader.boolean(:boolean10)).to eq(false) }
|
67
|
+
it { expect(loader.boolean(:boolean10, true_values: %w(はい))).to eq(true) }
|
62
68
|
end
|
63
69
|
|
64
70
|
describe '#array' do
|
65
|
-
it { expect(loader.array(:
|
66
|
-
it { expect(loader.array(:
|
67
|
-
it { expect(loader.array(:
|
71
|
+
it { expect(loader.array(:array1)).to eq(['foo', 'bar', 'buzz']) }
|
72
|
+
it { expect(loader.array(:array2, pattern: ':')).to eq(['foo', 'bar', 'buzz']) }
|
73
|
+
it { expect(loader.array(:array1, limit: 2)).to eq(['foo', 'bar,buzz']) }
|
68
74
|
end
|
69
75
|
|
70
76
|
describe '#partial' do
|
71
77
|
it do
|
72
|
-
loader.partial :my
|
73
|
-
string :value1
|
74
|
-
string :value2
|
75
|
-
partial :super
|
76
|
-
string :value1
|
77
|
-
string :value2
|
78
|
+
loader.partial :my do
|
79
|
+
string :value1
|
80
|
+
string :value2
|
81
|
+
partial :super do
|
82
|
+
string :value1
|
83
|
+
string :value2
|
84
|
+
end
|
85
|
+
partial :s2, 'SUPER_' do
|
86
|
+
string :value1
|
87
|
+
string :value2
|
78
88
|
end
|
79
89
|
end
|
80
90
|
env = loader.attributes
|
@@ -82,6 +92,8 @@ RSpec.describe Enver::Loader do
|
|
82
92
|
expect(env.my.value2).to eq('myvalue2')
|
83
93
|
expect(env.my.super.value1).to eq('mysupervalue1')
|
84
94
|
expect(env.my.super.value2).to eq('mysupervalue2')
|
95
|
+
expect(env.my.s2.value1).to eq('mysupervalue1')
|
96
|
+
expect(env.my.s2.value2).to eq('mysupervalue2')
|
85
97
|
end
|
86
98
|
end
|
87
99
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mashiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|