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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 81577165e8bf17349e1df3aabc87de9dd8874f32
4
- data.tar.gz: 3ef3c24fd474b137080cadc149ab08e98cd13086
3
+ metadata.gz: 52a59237ad5f9e60bb69a91c0a460ea59bb427b7
4
+ data.tar.gz: 4e77cc5d280838546ccc1b247a2e5480df711017
5
5
  SHA512:
6
- metadata.gz: bc6ce2150ddbe6caec5c8678cde7ba2cc9592048dce8e616da5f7979cc702067ea852f72f3afe502cd3dd4de3319fe03461432400742e3f78f8a4e2f91bd855f
7
- data.tar.gz: f89b711dad46757d35ba934166392016b938b55ca48a788e68d16cc0c5e4d2e77b16b0368b4e03e24f9a582e8ac675c7dd369213244797f2b436ddd0c263f42f
6
+ metadata.gz: 1c97352a13486711f18c5b5bf5a2a6b9431d32c5dc9cd0ddac0e0a0e686d525704cb17dc305a6c77f8daef0a1b1757bf7790723a3bb6425fd037a08d6eebfe6c
7
+ data.tar.gz: ecf7408ca2f993b8bff6610ca7171fb901da3c3b1c2f6ffb3dae91708537af4d3a9ed78d3905ae8327cbc96f695c08f806877551d17245367066e10cd8780f05
@@ -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 .env files.
4
+ Load environment variables from `.env` files.
5
5
 
6
6
  Usage
7
7
  -----
8
8
 
9
- This is a common pattern we use in our applications:
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
@@ -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/harmoni/envoker"
10
+ s.homepage = "https://github.com/frodsan/envoker"
11
11
  s.license = "MIT"
12
12
 
13
13
  s.files = `git ls-files`.split("\n")
@@ -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
@@ -5,7 +5,6 @@ module Envoker
5
5
  def self.load(file = ".env")
6
6
  Envoker.load(file)
7
7
  Envoker.overload(sprintf("%s.%s", file, environment))
8
- Envoker.overload(sprintf("%s.local", file))
9
8
  end
10
9
 
11
10
  def self.environment
@@ -1,3 +1,3 @@
1
1
  module Envoker
2
- VERSION = "2.0.0.rc1"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -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", Envoker.fetch("SECRET")
67
- assert_equal "development", Envoker.fetch("ENVIRONMENT")
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.rc1
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-12 00:00:00.000000000 Z
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/harmoni/envoker
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: 1.3.1
63
+ version: '0'
64
64
  requirements: []
65
65
  rubyforge_project:
66
66
  rubygems_version: 2.4.8
@@ -1 +0,0 @@
1
- OVERRIDED=true