unenviable 0.4.3 → 0.4.4
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/lib/unenviable.rb +6 -2
- data/lib/unenviable/env_wrapper.rb +9 -2
- 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: 0f978ca7d7ed85dc730f2fe78215720e823f3ca8
|
4
|
+
data.tar.gz: 35e8a1b471130a4ad368b3aef3d694c39070e666
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be7160d04bdbdd30ffdbc6a5d5f04d02f00e199f9b95f16fd760d68d81134ac4dfc2e3b0c33bf1267b986a8a052def00525aca1cb7f29d1a21dfc778e849ac60
|
7
|
+
data.tar.gz: 6e821162b27323a72ea05741ad0835c9c24a76a61fdaa1912f2f8209bd5ce40f714e0aca2264f2cd0d76b0a1d66b31c102e2c3bb525856edbe8375f87e6d1083
|
data/lib/unenviable.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require 'dotenv'
|
2
|
+
require 'dotenv' if Gem::Specification::find_all_by_name('dotenv').any?
|
3
3
|
require 'yaml'
|
4
4
|
|
5
5
|
require 'unenviable/env_wrapper'
|
@@ -12,7 +12,7 @@ module Unenviable
|
|
12
12
|
|
13
13
|
def self.check
|
14
14
|
load_env_descriptions unless @env_list
|
15
|
-
Dotenv.load
|
15
|
+
Dotenv.load if Gem::Specification::find_all_by_name('dotenv').any?
|
16
16
|
discrepancies = { required: [], optional: [], forbidden: [] }
|
17
17
|
|
18
18
|
@env_list.each do |var, details|
|
@@ -39,6 +39,10 @@ module Unenviable
|
|
39
39
|
Object.const_set(:ENV, wrapper)
|
40
40
|
end
|
41
41
|
|
42
|
+
def self.remove_wrapper
|
43
|
+
ENV.restore_saved if ENV.respond_to?(:close_wrapper)
|
44
|
+
end
|
45
|
+
|
42
46
|
def self.described?(key)
|
43
47
|
@env_list.include?(key)
|
44
48
|
end
|
@@ -5,12 +5,13 @@ module Unenviable
|
|
5
5
|
def initialize
|
6
6
|
@saved_env = ENV
|
7
7
|
@closed = false
|
8
|
+
@missing_descriptions = []
|
8
9
|
end
|
9
10
|
|
10
11
|
def [](key)
|
11
|
-
|
12
|
+
fail "Requested ENV[#{key}] after initialization finished!" if @closed
|
12
13
|
value = @saved_env[key]
|
13
|
-
|
14
|
+
@missing_descriptions << key unless Unenviable.described?(key)
|
14
15
|
return value unless value.nil?
|
15
16
|
'MISSING VALUE'
|
16
17
|
end
|
@@ -19,8 +20,14 @@ module Unenviable
|
|
19
20
|
@saved_env[key] = value
|
20
21
|
end
|
21
22
|
|
23
|
+
def restore_saved
|
24
|
+
Object.send(:remove_const, :ENV)
|
25
|
+
Object.const_set(:ENV, @saved_env)
|
26
|
+
end
|
27
|
+
|
22
28
|
def close_wrapper
|
23
29
|
@closed = true
|
30
|
+
fail "Requested Keys [#{@missing_descriptions.join(', ')}] which are not described!" unless @missing_descriptions.empty?
|
24
31
|
end
|
25
32
|
end
|
26
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unenviable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- K M Lawrence
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|