envoker 2.0.0.rc1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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