env_bang 0.2.10 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +1 -7
- data/README.md +15 -6
- data/lib/env_bang/classes.rb +11 -0
- data/lib/env_bang/version.rb +1 -1
- data/test/env_bang_test.rb +21 -0
- metadata +5 -11
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 56076f21b1106dd3b9f43505dc300ccd27d09cdb
|
4
|
+
data.tar.gz: a8d957643766fbf0e01c3386fa8f91ff84dbaa17
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3f0f5477d06e160baf27e3cd37c6c3837f7facf41d029fa82be8f8a427ad2629aab132f9f80bf0a9088718bef8be62c628072054b451ef3990da18c97864b96c
|
7
|
+
data.tar.gz: a06cf701db3d782c7cd8f528f9043b35fd72951da9b960ff7b8fd13fd0e5147ab5a117966c791c42727a0f10970c43421e410826c82b18090b681ddd259830fb
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
[![Gem Version](https://badge.fury.io/rb/env_bang.png)](https://rubygems.org/gems/env_bang)
|
2
|
-
[![Build Status](https://secure.travis-ci.org/jcamenisch/ENV_BANG.png?branch=master)](https://travis-ci.org/jcamenisch/ENV_BANG)
|
3
|
-
[![Dependency Status](https://gemnasium.com/jcamenisch/ENV_BANG.png)](https://gemnasium.com/jcamenisch/ENV_BANG)
|
4
|
-
[![Code Climate](https://codeclimate.com/github/jcamenisch/ENV_BANG.png)](https://codeclimate.com/github/jcamenisch/ENV_BANG)
|
5
|
-
[![Coverage Status](https://coveralls.io/repos/jcamenisch/ENV_BANG/badge.png?branch=master)](https://coveralls.io/r/jcamenisch/ENV_BANG)
|
6
|
-
|
7
1
|
# ENV!
|
8
2
|
|
9
3
|
Do a bang-up job managing your environment variables.
|
10
4
|
|
5
|
+
[![Gem Version](https://img.shields.io/gem/v/env_bang.svg?style=flat)](https://rubygems.org/gems/env_bang)
|
6
|
+
[![Build Status](https://img.shields.io/travis/jcamenisch/ENV_BANG/master.svg?style=flat)](https://travis-ci.org/jcamenisch/ENV_BANG)
|
7
|
+
[![Dependency Status](https://img.shields.io/gemnasium/jcamenisch/ENV_BANG.svg?style=flat)](https://gemnasium.com/jcamenisch/ENV_BANG)
|
8
|
+
[![Code Climate](https://img.shields.io/codeclimate/github/jcamenisch/ENV_BANG.svg?style=flat)](https://codeclimate.com/github/jcamenisch/ENV_BANG)
|
9
|
+
[![Coverage Status](https://img.shields.io/coveralls/jcamenisch/ENV_BANG/master.svg?style=flat)](https://coveralls.io/r/jcamenisch/ENV_BANG)
|
10
|
+
|
11
11
|
ENV! provides a thin wrapper around ENV to accomplish a few things:
|
12
12
|
|
13
13
|
- Provide a central place to specify all your app’s environment variables.
|
@@ -108,6 +108,7 @@ ENV!.config do
|
|
108
108
|
use :MAIL_DELIVERY_METHOD, class: Symbol, default: :smtp
|
109
109
|
use :DEFAULT_FRACTION, class: Float
|
110
110
|
use :ENABLE_SOUNDTRACK, class: :boolean
|
111
|
+
use :PUPPETMASTERS, class: Hash
|
111
112
|
end
|
112
113
|
```
|
113
114
|
|
@@ -120,6 +121,14 @@ ENV!.config do
|
|
120
121
|
end
|
121
122
|
```
|
122
123
|
|
124
|
+
Hashes are split on commas (',') and key:value pairs are delimited by colon (':'). To get hashes of a specific type of value, use the `:of` option, and to use a different type for keys (default is `Symbol`), use the `:keys` option:
|
125
|
+
|
126
|
+
```ruby
|
127
|
+
ENV!.config do
|
128
|
+
use :BIRTHDAYS, class: Hash, of: Integer, keys: String
|
129
|
+
end
|
130
|
+
```
|
131
|
+
|
123
132
|
#### Default type conversion behavior
|
124
133
|
|
125
134
|
If you don’t specify a `:class` option for a variable, ENV! defaults to a special
|
data/lib/env_bang/classes.rb
CHANGED
@@ -20,6 +20,17 @@ class ENV_BANG
|
|
20
20
|
value.split(',').map { |v| cast(v.strip, item_options) }
|
21
21
|
end
|
22
22
|
|
23
|
+
def Hash(value, options)
|
24
|
+
key_options = options.merge(class: options.fetch(:keys, Symbol))
|
25
|
+
value_options = options.merge(class: options.fetch(:of, default_class))
|
26
|
+
{}.tap do |h|
|
27
|
+
value.split(',').each do |pair|
|
28
|
+
key, value = pair.split(':')
|
29
|
+
h[cast(key.strip, key_options)] = cast(value.strip, value_options)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
23
34
|
def Symbol(value, options)
|
24
35
|
value.to_sym
|
25
36
|
end
|
data/lib/env_bang/version.rb
CHANGED
data/test/env_bang_test.rb
CHANGED
@@ -99,6 +99,27 @@ describe ENV_BANG do
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
it "Casts Hashes" do
|
103
|
+
ENV['HASH'] = 'one: two, three: four'
|
104
|
+
ENV!.use 'HASH', class: Hash
|
105
|
+
|
106
|
+
ENV!['HASH'].must_equal({one: 'two', three: 'four'})
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'Casts Hashes of Integers' do
|
110
|
+
ENV['INT_HASH'] = 'one: 111, two: 222'
|
111
|
+
ENV!.use 'INT_HASH', class: Hash, of: Integer
|
112
|
+
|
113
|
+
ENV!['INT_HASH'].must_equal({one: 111, two: 222})
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'Casts Hashes with String keys' do
|
117
|
+
ENV['STRKEY_HASH'] = 'one: two, three: four'
|
118
|
+
ENV!.use 'STRKEY_HASH', class: Hash, keys: String
|
119
|
+
|
120
|
+
ENV!['STRKEY_HASH'].must_equal({'one' => 'two', 'three' => 'four'})
|
121
|
+
end
|
122
|
+
|
102
123
|
it "Casts true" do
|
103
124
|
ENV['TRUE'] = truthy_values.sample
|
104
125
|
ENV!.use 'TRUE', class: :boolean
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: env_bang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jonathan Camenisch
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-01-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: minitest
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -69,27 +64,26 @@ files:
|
|
69
64
|
homepage: https://github.com/jcamenisch/ENV_BANG
|
70
65
|
licenses:
|
71
66
|
- MIT
|
67
|
+
metadata: {}
|
72
68
|
post_install_message:
|
73
69
|
rdoc_options: []
|
74
70
|
require_paths:
|
75
71
|
- lib
|
76
72
|
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
73
|
requirements:
|
79
74
|
- - ">="
|
80
75
|
- !ruby/object:Gem::Version
|
81
76
|
version: '0'
|
82
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
78
|
requirements:
|
85
79
|
- - ">="
|
86
80
|
- !ruby/object:Gem::Version
|
87
81
|
version: '0'
|
88
82
|
requirements: []
|
89
83
|
rubyforge_project:
|
90
|
-
rubygems_version:
|
84
|
+
rubygems_version: 2.2.5
|
91
85
|
signing_key:
|
92
|
-
specification_version:
|
86
|
+
specification_version: 4
|
93
87
|
summary: Do a bang-up job managing your environment variables
|
94
88
|
test_files:
|
95
89
|
- test/env_bang_test.rb
|