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 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