environs 0.0.1 → 1.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.
@@ -0,0 +1,22 @@
1
+ require 'environs/missing_env_var_error'
2
+
3
+ class Env
4
+ class << self
5
+ def method_missing(method, *args, &block)
6
+ key = method.to_s.upcase
7
+ if key.match(/\w+/)
8
+ ENV[key] || key_not_found_response(args.first, key)
9
+ else
10
+ super
11
+ end
12
+ end
13
+
14
+ def key_not_found_response(potential_hash, key)
15
+ if potential_hash.respond_to?(:fetch) && potential_hash.fetch(:allow_nil)
16
+ nil
17
+ else
18
+ raise MissingEnvVarError, "The #{key} environment variable is not set."
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ class MissingEnvVarError < StandardError
2
+ end
3
+
@@ -1,3 +1,3 @@
1
1
  module Environs
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/environs.rb CHANGED
@@ -1,6 +1,2 @@
1
1
  require 'environs/env'
2
2
  require 'environs/version'
3
-
4
- module Environs
5
- # Your code goes here...
6
- end
@@ -0,0 +1,28 @@
1
+ require 'environs'
2
+
3
+ describe Env, "#foo" do
4
+
5
+ it "returns the ENV variable corresponding to the name of the method" do
6
+ ENV['FOO'] = 'bar'
7
+ Env.foo.should eq 'bar'
8
+ end
9
+
10
+ describe "default behavior" do
11
+
12
+ it "returns an error if no corresponding ENV variable is set" do
13
+ ENV['FOO'] = nil
14
+ expect { Env.foo }.to raise_error
15
+ end
16
+
17
+ end
18
+
19
+ describe "'allow_nil: true' is passed along" do
20
+
21
+ it "returns nil if no corresponding ENV var is set" do
22
+ ENV['FOO'] = nil
23
+ Env.foo(allow_nil: true).should be_nil
24
+ end
25
+
26
+ end
27
+
28
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: environs
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 1.0.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Colin Rymer
@@ -74,7 +74,10 @@ files:
74
74
  - Rakefile
75
75
  - environs.gemspec
76
76
  - lib/environs.rb
77
+ - lib/environs/env.rb
78
+ - lib/environs/missing_env_var_error.rb
77
79
  - lib/environs/version.rb
80
+ - spec/environs/env_spec.rb
78
81
  homepage: ''
79
82
  licenses:
80
83
  - MIT
@@ -101,5 +104,6 @@ signing_key:
101
104
  specification_version: 3
102
105
  summary: A simple wrapper around the ENV hash that by default raises an error when
103
106
  value requested is not set.
104
- test_files: []
107
+ test_files:
108
+ - spec/environs/env_spec.rb
105
109
  has_rdoc: