env_helper 1.0.0 → 1.0.1
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 +26 -0
- data/lib/env_helper/version.rb +1 -1
- data/lib/env_helper.rb +36 -0
- 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: 37c3ef98f958fdc8dfa3a43ebfecf104c1b98913
|
4
|
+
data.tar.gz: 55a64936a009e2b1475df41e20269602e55fca2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c597d2f9f6d7ce83cd3f7c6dbf12a5ca097d399c1802af035e1f40bdef49ed95defb6c3e37d94224150257e5a7da08bed9f37c30bbf40dee23aff36b9de88dc6
|
7
|
+
data.tar.gz: 38ffa391190edc5ac3143dd725137afefedc4282000b2a4b91d7d415870a04768e23bd2fc8e281c53e96bbc32b52eb5c96fe712e69b61df598b7b3241f95c16a
|
data/README.md
CHANGED
@@ -29,6 +29,8 @@ ENV['db_name'] = 'foobar'
|
|
29
29
|
ENV['DB_PASSWORD'] = 'password'
|
30
30
|
ENV['max_pool_size'] = '25'
|
31
31
|
ENV['ssl_enabled'] = 'true'
|
32
|
+
ENV['db_hosts'] = 'db1.foobar.com db2.foobar.com db3.foobar.com'
|
33
|
+
ENV['private_keys'] = 'key1:abcdef key2:fedcba'
|
32
34
|
|
33
35
|
ENVHelper.get('db_name')
|
34
36
|
"foobar"
|
@@ -47,6 +49,30 @@ true
|
|
47
49
|
|
48
50
|
ENVHelper.bool('sharding_enabled', false)
|
49
51
|
false
|
52
|
+
|
53
|
+
ENVHelper.array('db_hosts')
|
54
|
+
['db1.foobar.com', 'db2.foobar.com', 'db3.foobar.com']
|
55
|
+
|
56
|
+
ENVHelper.hash('private_keys')
|
57
|
+
{ 'key1' => 'abcdef', 'key2' => 'fedcba' }
|
58
|
+
```
|
59
|
+
|
60
|
+
## Notes
|
61
|
+
All methods accept a default value as a second parameter and that parameter
|
62
|
+
should be the type being returned. For example if you call
|
63
|
+
`ENVHelper.int('max_pool_size', 25)` the second parameter is an Integer.
|
64
|
+
|
65
|
+
## Configuration
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
# string used to split the environment variable to make the array
|
69
|
+
ENVHelper.array_seperator = ' ' # default is a space
|
70
|
+
|
71
|
+
# string used to split the hash key value groups in the hash
|
72
|
+
ENVHelper.hash_key_seperator = ' ' # default is a space
|
73
|
+
|
74
|
+
# string used to split the key from values in the hash
|
75
|
+
ENVHelper.hash_key_value_seperator = ':' # default is a colon
|
50
76
|
```
|
51
77
|
|
52
78
|
## Development
|
data/lib/env_helper/version.rb
CHANGED
data/lib/env_helper.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require "env_helper/version"
|
2
2
|
|
3
3
|
module ENVHelper
|
4
|
+
class << self
|
5
|
+
attr_accessor :array_seperator
|
6
|
+
attr_accessor :hash_key_seperator
|
7
|
+
attr_accessor :hash_key_value_seperator
|
8
|
+
end
|
4
9
|
|
5
10
|
def self.get(name, default = nil)
|
6
11
|
var = ENV[name] || ENV[name.upcase]
|
@@ -20,4 +25,35 @@ module ENVHelper
|
|
20
25
|
end
|
21
26
|
end
|
22
27
|
|
28
|
+
def self.array(name, default = nil)
|
29
|
+
var = get(name, default)
|
30
|
+
return [] if var.nil?
|
31
|
+
return var if var.is_a? Array
|
32
|
+
var.split(array_seperator)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.hash(name, default = nil)
|
36
|
+
var = get(name, default)
|
37
|
+
return {} if var.nil?
|
38
|
+
return var if var.is_a? Hash
|
39
|
+
hash_array = var.split(hash_key_seperator)
|
40
|
+
hash_array.map do |kv|
|
41
|
+
kv.split(hash_key_value_seperator)
|
42
|
+
end.to_h
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def self.array_seperator
|
48
|
+
@array_seperator || ' '
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.hash_key_seperator
|
52
|
+
@hash_key_seperator || ' '
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.hash_key_value_seperator
|
56
|
+
@hash_key_value_seperator || ':'
|
57
|
+
end
|
58
|
+
|
23
59
|
end
|