envoker 2.0.0.rc1 → 2.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 +4 -4
- data/CHANGELOG.md +22 -0
- data/README.md +77 -2
- data/envoker.gemspec +1 -1
- data/lib/envoker.rb +0 -8
- data/lib/envoker/rack.rb +0 -1
- data/lib/envoker/version.rb +1 -1
- data/test/envoker_test.rb +2 -17
- metadata +6 -6
- data/test/.env.example.local +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52a59237ad5f9e60bb69a91c0a460ea59bb427b7
|
4
|
+
data.tar.gz: 4e77cc5d280838546ccc1b247a2e5480df711017
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c97352a13486711f18c5b5bf5a2a6b9431d32c5dc9cd0ddac0e0a0e686d525704cb17dc305a6c77f8daef0a1b1757bf7790723a3bb6425fd037a08d6eebfe6c
|
7
|
+
data.tar.gz: ecf7408ca2f993b8bff6610ca7171fb901da3c3b1c2f6ffb3dae91708537af4d3a9ed78d3905ae8327cbc96f695c08f806877551d17245367066e10cd8780f05
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
2.0.0 (29-11-2015)
|
2
|
+
------------------
|
3
|
+
|
4
|
+
- Add support for Rack environments.
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
ENV["RACK_ENV"] = "test"
|
8
|
+
|
9
|
+
# This will load `.env` and `.env.test`
|
10
|
+
Envoker::Rack.load
|
11
|
+
```
|
12
|
+
|
13
|
+
- Add support to override settings.
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
require "envoker"
|
17
|
+
|
18
|
+
Envoker.load(".env")
|
19
|
+
Envoker.overload(".env.local")
|
20
|
+
```
|
21
|
+
|
22
|
+
- Breaking change: Remove `Envoker#fetch`.
|
data/README.md
CHANGED
@@ -1,15 +1,90 @@
|
|
1
1
|
envoker
|
2
2
|
=======
|
3
3
|
|
4
|
-
Load environment variables from
|
4
|
+
Load environment variables from `.env` files.
|
5
5
|
|
6
6
|
Usage
|
7
7
|
-----
|
8
8
|
|
9
|
-
|
9
|
+
Load your `.env` file in the application bootstrap
|
10
|
+
process:
|
10
11
|
|
11
12
|
```ruby
|
13
|
+
# .env
|
14
|
+
RACK_ENV=development
|
15
|
+
|
16
|
+
# boot.rb
|
12
17
|
require "envoker"
|
18
|
+
|
19
|
+
Envoker.load
|
20
|
+
|
21
|
+
ENV["RACK_ENV"]
|
22
|
+
# => "development"
|
23
|
+
```
|
24
|
+
|
25
|
+
You can use `Envoker#overload` to override
|
26
|
+
existing values in `ENV`:
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
# .env.test
|
30
|
+
RACK_ENV=test
|
31
|
+
|
32
|
+
# boot.rb
|
33
|
+
# ...
|
34
|
+
|
35
|
+
Envoker.overload(".env.test")
|
36
|
+
|
37
|
+
ENV["RACK_ENV"]
|
38
|
+
# => "test"
|
39
|
+
```
|
40
|
+
|
41
|
+
Multiple Environments
|
42
|
+
---------------------
|
43
|
+
|
44
|
+
`Envoker::Rack` adds support for multiple environments:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
require "envoker/rack"
|
48
|
+
|
49
|
+
Envoker::Rack.load
|
50
|
+
```
|
51
|
+
|
52
|
+
You should store env vars that are general to
|
53
|
+
all environments in `.env`, and store specific
|
54
|
+
env vars in `.env.<environment>`.The default
|
55
|
+
environment is `development`, but can be changed
|
56
|
+
through `ENV["RACK_ENV"]`.
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
ENV["RACK_ENV"] = "test"
|
60
|
+
|
61
|
+
# This will load `.env` and `.env.test`
|
62
|
+
Envoker::Rack.load
|
63
|
+
```
|
64
|
+
|
65
|
+
Settings
|
66
|
+
--------
|
67
|
+
|
68
|
+
This is a common pattern I use in my applications:
|
69
|
+
|
70
|
+
```ruby
|
71
|
+
require "envoker/rack"
|
72
|
+
|
73
|
+
Envoker::Rack.load
|
74
|
+
|
75
|
+
module Settings
|
76
|
+
def self.fetch(key)
|
77
|
+
return ENV.fetch(key) do
|
78
|
+
raise(sprintf("ENV[%p] not found", key))
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
REDIS_URL = fetch("REDIS_URL")
|
83
|
+
SMTP_URL = fetch("SMTP_URL")
|
84
|
+
end
|
85
|
+
|
86
|
+
Settings::SMTP_URL
|
87
|
+
# => redis://localhost:6379
|
13
88
|
```
|
14
89
|
|
15
90
|
Installation
|
data/envoker.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.description = s.summary
|
8
8
|
s.authors = ["Francesco Rodríguez"]
|
9
9
|
s.email = ["frodsan@protonmail.ch"]
|
10
|
-
s.homepage = "https://github.com/
|
10
|
+
s.homepage = "https://github.com/frodsan/envoker"
|
11
11
|
s.license = "MIT"
|
12
12
|
|
13
13
|
s.files = `git ls-files`.split("\n")
|
data/lib/envoker.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
require_relative "envoker/version"
|
2
2
|
|
3
3
|
module Envoker
|
4
|
-
KeyNotFound = Class.new(StandardError)
|
5
|
-
|
6
4
|
def self.load(file)
|
7
5
|
parse(file).each { |k, v| ENV[k] ||= v }
|
8
6
|
rescue Errno::ENOENT
|
@@ -16,10 +14,4 @@ module Envoker
|
|
16
14
|
def self.parse(file)
|
17
15
|
return File.read(file).scan(/(.+)=(.*)$/)
|
18
16
|
end
|
19
|
-
|
20
|
-
def self.fetch(key, default = nil)
|
21
|
-
return ENV.fetch(key) do
|
22
|
-
raise(KeyNotFound, sprintf("ENV[%p] not found", key))
|
23
|
-
end
|
24
|
-
end
|
25
17
|
end
|
data/lib/envoker/rack.rb
CHANGED
data/lib/envoker/version.rb
CHANGED
data/test/envoker_test.rb
CHANGED
@@ -46,24 +46,9 @@ scope "overload" do
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
scope "fetch" do
|
50
|
-
test "return value from ENV" do
|
51
|
-
Envoker.load(FILE)
|
52
|
-
|
53
|
-
assert_equal "secret", Envoker.fetch("SECRET")
|
54
|
-
end
|
55
|
-
|
56
|
-
test "raise error if key not exists" do
|
57
|
-
assert_raise do
|
58
|
-
Envoker.fetch("notexists")
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
49
|
test "rack" do
|
64
50
|
Envoker::Rack.load(FILE)
|
65
51
|
|
66
|
-
assert_equal "secret",
|
67
|
-
assert_equal "development",
|
68
|
-
assert_equal "true", Envoker.fetch("OVERRIDED")
|
52
|
+
assert_equal "secret", ENV.fetch("SECRET")
|
53
|
+
assert_equal "development", ENV.fetch("ENVIRONMENT")
|
69
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envoker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francesco Rodríguez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cutest
|
@@ -32,6 +32,7 @@ extensions: []
|
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
34
|
- ".gems"
|
35
|
+
- CHANGELOG.md
|
35
36
|
- LICENSE
|
36
37
|
- README.md
|
37
38
|
- envoker.gemspec
|
@@ -41,9 +42,8 @@ files:
|
|
41
42
|
- makefile
|
42
43
|
- test/.env.example
|
43
44
|
- test/.env.example.development
|
44
|
-
- test/.env.example.local
|
45
45
|
- test/envoker_test.rb
|
46
|
-
homepage: https://github.com/
|
46
|
+
homepage: https://github.com/frodsan/envoker
|
47
47
|
licenses:
|
48
48
|
- MIT
|
49
49
|
metadata: {}
|
@@ -58,9 +58,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
58
58
|
version: '0'
|
59
59
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - "
|
61
|
+
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
63
|
+
version: '0'
|
64
64
|
requirements: []
|
65
65
|
rubyforge_project:
|
66
66
|
rubygems_version: 2.4.8
|
data/test/.env.example.local
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
OVERRIDED=true
|