enver 0.1.0 → 1.0.0

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: 6a3f8bffa9a3c689bfc89db10641b37addb7df20
4
- data.tar.gz: a0517f566731d2fa42fa6a1e088d2928b9d14e5e
3
+ metadata.gz: f33b8db91593c565ee79e8f9cc9c831b2d7667dc
4
+ data.tar.gz: 2c65477773a658a4715f9204b3391d954a30642a
5
5
  SHA512:
6
- metadata.gz: ba2784cd3efc0072717a1ddca43d8a00bc21c3668f3d6b1a3f87fe5207c1254dbb6ef84d39c4987934dc5d67aa23b965c9fc65b39c4bce76aae8387f0df7b35c
7
- data.tar.gz: 8ee7c7dd6fde84d0e9b163c0d55d6e9e83418122a9646ccc0dd219e67d9dd4ef72b1512da3f92c79f0fa485c0a9f46519450e48cc92ac4bb022fe0e787b0579d
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 SERVERS=4
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, 'CLIENT_KEY'
34
- string :client_secret, 'CLIENT_SECRET'
35
- integer :servers, 'SERVERS'
36
- array :path, 'PATH', pattern: ':'
37
-
38
- partial :new_relic, 'NEW_RELIC_' do
39
- string :license_key, 'LICENSE_KEY'
40
- string :app_name, '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
 
@@ -11,50 +11,64 @@ module Enver
11
11
  instance_eval(&block) if block
12
12
  end
13
13
 
14
- def value(name, env_name, options = {})
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
- store(name, value.is_a?(String) ? yield(value) : value)
21
+ value = yield value, options if !has_default && block_given?
22
+
23
+ store name, value
17
24
  end
18
25
 
19
- def string(name, env_name, options = {})
20
- value(name, env_name, options) do |v|
26
+ def string(*args)
27
+ value(*args) do |v|
21
28
  v
22
29
  end
23
30
  end
24
31
 
25
- def integer(name, env_name, options = {})
26
- value(name, env_name, options) do |v|
32
+ def integer(*args)
33
+ value(*args) do |v|
27
34
  Integer(v)
28
35
  end
29
36
  end
30
37
 
31
- def float(name, env_name, options = {})
32
- value(name, env_name, options) do |v|
38
+ def float(*args)
39
+ value(*args) do |v|
33
40
  Float(v)
34
41
  end
35
42
  end
36
43
 
37
- def boolean(name, env_name, options = {})
38
- value(name, env_name, options) do |v|
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(name, env_name, options = {})
45
- value(name, env_name, options) do |v|
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(name, env_prefix, options = {}, &block)
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
@@ -1,3 +1,3 @@
1
1
  module Enver
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -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(:v, 'STRING1')).to eq('') }
40
- it { expect(loader.string(:v, 'STRING2')).to eq('test') }
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(:v, 'INTEGER1')}.to raise_error }
45
- it { expect(loader.integer(:v, 'INTEGER2')).to eq(1) }
46
- it { expect{loader.integer(:v, 'INTEGER3')}.to raise_error }
47
- it { expect{loader.integer(:v, 'INTEGER4')}.to raise_error }
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(:v, 'BOOLEAN1')).to eq(false) }
52
- it { expect(loader.boolean(:v, 'BOOLEAN2')).to eq(true) }
53
- it { expect(loader.boolean(:v, 'BOOLEAN3')).to eq(false) }
54
- it { expect(loader.boolean(:v, 'BOOLEAN4')).to eq(true) }
55
- it { expect(loader.boolean(:v, 'BOOLEAN5')).to eq(false) }
56
- it { expect(loader.boolean(:v, 'BOOLEAN6')).to eq(true) }
57
- it { expect(loader.boolean(:v, 'BOOLEAN7')).to eq(false) }
58
- it { expect(loader.boolean(:v, 'BOOLEAN8')).to eq(true) }
59
- it { expect(loader.boolean(:v, 'BOOLEAN9')).to eq(false) }
60
- it { expect(loader.boolean(:v, 'BOOLEAN10')).to eq(false) }
61
- it { expect(loader.boolean(:v, 'BOOLEAN10', true_values: %w(はい))).to eq(true) }
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(:v, 'ARRAY1')).to eq(['foo', 'bar', 'buzz']) }
66
- it { expect(loader.array(:v, 'ARRAY2', pattern: ':')).to eq(['foo', 'bar', 'buzz']) }
67
- it { expect(loader.array(:v, 'ARRAY1', limit: 2)).to eq(['foo', 'bar,buzz']) }
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, 'MY_' do
73
- string :value1, 'VALUE1'
74
- string :value2, 'VALUE2'
75
- partial :super, 'SUPER_' do
76
- string :value1, 'VALUE1'
77
- string :value2, '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: 0.1.0
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-10-02 00:00:00.000000000 Z
11
+ date: 2014-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler