env-config 0.0.1 → 0.0.2
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 +40 -2
- data/lib/env_config.rb +19 -0
- data/lib/version.rb +1 -1
- data/test/env_config_test.rb +7 -0
- 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: 1a790b308075dbab78e02d9a57d4882a7d092e8c
|
4
|
+
data.tar.gz: 058a99ca23ba4107d5c078e6802c64afc3534312
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5ceacc2c99f120fc3dca0fda1b11c5484c7a435dfb1ab3d4aad838e4e86cb05fdcb18583352c235c8db49455b4b88a12d16410c2dda9fc2aff640b0bad54d0a
|
7
|
+
data.tar.gz: d6c7525ab5be1de756b93dcf4889bf76a2befbb2d4cfbfbe5db3d0a4156c4a65ec0003b302d52dcbe06c195bac7670c3989014db9fc540d8369ac0e8edcd3f8c
|
data/README.md
CHANGED
@@ -1,5 +1,43 @@
|
|
1
|
-
|
2
|
-
=============
|
1
|
+
# EnvConfig
|
3
2
|
|
4
3
|
Basic ruby environment-dependent configuration
|
5
4
|
|
5
|
+
## usage example:
|
6
|
+
|
7
|
+
``` ruby
|
8
|
+
# environment.rb
|
9
|
+
EnvConfig.configure(:default) do |config|
|
10
|
+
config[:verbose] = true
|
11
|
+
end
|
12
|
+
|
13
|
+
# test.rb
|
14
|
+
EnvConfig.configure(:test) do |config|
|
15
|
+
config[:verbose] = false
|
16
|
+
end
|
17
|
+
|
18
|
+
# development.rb
|
19
|
+
EnvConfig.configure(:development) do |config|
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
config = EnvConfig.new(:test)
|
24
|
+
config[:verbose] # => false
|
25
|
+
|
26
|
+
config = EnvConfig.new(:development)
|
27
|
+
config[:verbose] # => true
|
28
|
+
```
|
29
|
+
|
30
|
+
## Exceptions
|
31
|
+
|
32
|
+
``` ruby
|
33
|
+
config[:unknown_key_12345] # => EnvConfig::ArgumentError
|
34
|
+
|
35
|
+
config = EnvConfig.new(:unknown_env_123) # => EnvConfig::UnknownEnvironmentError
|
36
|
+
|
37
|
+
config = EnvConfig.new(:default) # => EnvConfig::AbstractError
|
38
|
+
|
39
|
+
EnvConfig.configure(:test) do ...
|
40
|
+
EnvConfig.configure(:default) do ... # => EnvConfig::LoadOrderError
|
41
|
+
|
42
|
+
config[:verbose] = false # => EnvConfig::ImmutableError
|
43
|
+
```
|
data/lib/env_config.rb
CHANGED
@@ -21,12 +21,27 @@
|
|
21
21
|
# config = EnvConfig.new(:development)
|
22
22
|
# config[:verbose] # => true
|
23
23
|
#
|
24
|
+
#
|
25
|
+
# Exceptions:
|
26
|
+
#
|
27
|
+
# config[:unknown_key_12345] # => EnvConfig::ArgumentError
|
28
|
+
#
|
29
|
+
# config = EnvConfig.new(:unknown_env_123) # => EnvConfig::UnknownEnvironmentError
|
30
|
+
#
|
31
|
+
# config = EnvConfig.new(:default) # => EnvConfig::AbstractError
|
32
|
+
#
|
33
|
+
# EnvConfig.configure(:test) do ...
|
34
|
+
# EnvConfig.configure(:default) do ... # => EnvConfig::LoadOrderError
|
35
|
+
#
|
36
|
+
# config[:verbose] = false # => EnvConfig::ImmutableError
|
37
|
+
#
|
24
38
|
class EnvConfig
|
25
39
|
|
26
40
|
class UnknownEnvironmentError < RuntimeError ; end
|
27
41
|
class AbstractError < RuntimeError ; end
|
28
42
|
class LoadOrderError < RuntimeError ; end
|
29
43
|
class ImmutableError < RuntimeError ; end
|
44
|
+
class ArgumentError < ::ArgumentError ; end
|
30
45
|
|
31
46
|
@@configurations = {}
|
32
47
|
|
@@ -45,6 +60,10 @@ class EnvConfig
|
|
45
60
|
end
|
46
61
|
|
47
62
|
def [](key)
|
63
|
+
# be strict
|
64
|
+
if !get_config.has_key?(key)
|
65
|
+
raise ArgumentError.new("key '#{key}' not defined in configuration or default")
|
66
|
+
end
|
48
67
|
get_config[key]
|
49
68
|
end
|
50
69
|
|
data/lib/version.rb
CHANGED
data/test/env_config_test.rb
CHANGED
@@ -40,6 +40,13 @@ class EnvConfigTest < MiniTest::Test
|
|
40
40
|
assert_equal 'default default_test_setting', config[:default_test_setting]
|
41
41
|
end
|
42
42
|
|
43
|
+
def test_raises_if_config_key_not_set_in_at_least_default
|
44
|
+
config = EnvConfig.new('test')
|
45
|
+
assert_raises EnvConfig::ArgumentError do
|
46
|
+
config[:unknown_test_setting_12345]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
43
50
|
def test_environment_specific_setting_overrides_default
|
44
51
|
EnvConfig.configure(:test2) do |config|
|
45
52
|
config[:default_test_setting] = 'overwritten default_test_setting'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: env-config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Markus Seeger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|