configlet 1.0.0 → 1.1.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.
- data/CHANGELOG.rdoc +5 -0
- data/README.rdoc +10 -2
- data/lib/configlet.rb +16 -3
- data/test/test_configlet.rb +11 -0
- metadata +29 -14
data/CHANGELOG.rdoc
CHANGED
data/README.rdoc
CHANGED
@@ -28,8 +28,16 @@ and use it instead.
|
|
28
28
|
Configlet[:finished] # => false
|
29
29
|
Configlet[:token] # => "default-token"
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
There's also a block form, which is nice if you're setting a lot of
|
32
|
+
defaults:
|
33
|
+
|
34
|
+
Configlet.for :thunk do
|
35
|
+
default :token => "default-token"
|
36
|
+
default :host => "thunk.local"
|
37
|
+
end
|
38
|
+
|
39
|
+
Configlet is a module, so +include+ or +extend+ it wherever you
|
40
|
+
want. It extends itself for your convenience.
|
33
41
|
|
34
42
|
== Installation
|
35
43
|
|
data/lib/configlet.rb
CHANGED
@@ -13,7 +13,7 @@ module Configlet
|
|
13
13
|
|
14
14
|
# Duh.
|
15
15
|
|
16
|
-
VERSION = "1.
|
16
|
+
VERSION = "1.1.0"
|
17
17
|
|
18
18
|
I = lambda { |v| v } #:nodoc:
|
19
19
|
|
@@ -27,14 +27,14 @@ module Configlet
|
|
27
27
|
# <tt>defaults["severity"]</tt> if the env var isn't set.
|
28
28
|
|
29
29
|
def [] key
|
30
|
-
mungers[key.to_s].call ENV[envify
|
30
|
+
mungers[key.to_s].call ENV[envify(key)] || defaults[key.to_s]
|
31
31
|
end
|
32
32
|
|
33
33
|
# Set an environment value. +key+ is translated to an unfriendly
|
34
34
|
# environment name as in Configlet#[] above.
|
35
35
|
|
36
36
|
def []= key, value
|
37
|
-
ENV[envify
|
37
|
+
ENV[envify(key)] = value
|
38
38
|
end
|
39
39
|
|
40
40
|
# Set one or more default values. Use "friendly" names, not env
|
@@ -54,6 +54,19 @@ module Configlet
|
|
54
54
|
[prefix, key].compact.join("_").tr(".", "_").upcase
|
55
55
|
end
|
56
56
|
|
57
|
+
# Swanky block form. More pleasant to read when setting multiple
|
58
|
+
# defaults, e.g.,
|
59
|
+
#
|
60
|
+
# Configlet.for :myapp do
|
61
|
+
# default "email.from" => "noreply@myapp.com"
|
62
|
+
# default :host => "myapp.local"
|
63
|
+
# end
|
64
|
+
|
65
|
+
def for prefix, &block
|
66
|
+
self.prefix = prefix
|
67
|
+
instance_eval(&block)
|
68
|
+
end
|
69
|
+
|
57
70
|
# Mess with a value when it's retrieved. Useful for turning untyped
|
58
71
|
# environment strings into numbers, booleans, enums, or class
|
59
72
|
# instances. Here's how to munge a boolean:
|
data/test/test_configlet.rb
CHANGED
@@ -18,6 +18,17 @@ class TestConfiglet < MiniTest::Unit::TestCase
|
|
18
18
|
assert_equal "bar", Configlet["foo"]
|
19
19
|
end
|
20
20
|
|
21
|
+
def test_for
|
22
|
+
ENV["PREFIX_FOO"] = "bar"
|
23
|
+
|
24
|
+
Configlet.for :prefix do
|
25
|
+
default :bar => "baz"
|
26
|
+
end
|
27
|
+
|
28
|
+
assert_equal "bar", Configlet[:foo]
|
29
|
+
assert_equal "baz", Configlet[:bar]
|
30
|
+
end
|
31
|
+
|
21
32
|
def test_get
|
22
33
|
ENV["FOO"] = "bar"
|
23
34
|
assert_equal "bar", Configlet[:foo]
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: configlet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 1.1.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- John Barnette
|
@@ -9,29 +14,37 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-02-
|
17
|
+
date: 2010-02-25 00:00:00 -08:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: gemcutter
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 4
|
30
|
+
- 1
|
31
|
+
version: 0.4.1
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: hoe
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 2
|
43
|
+
- 5
|
44
|
+
- 0
|
33
45
|
version: 2.5.0
|
34
|
-
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
35
48
|
description: |-
|
36
49
|
A stupid simple wrapper for environment variables.
|
37
50
|
|
@@ -70,18 +83,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
83
|
requirements:
|
71
84
|
- - ">="
|
72
85
|
- !ruby/object:Gem::Version
|
86
|
+
segments:
|
87
|
+
- 0
|
73
88
|
version: "0"
|
74
|
-
version:
|
75
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
90
|
requirements:
|
77
91
|
- - ">="
|
78
92
|
- !ruby/object:Gem::Version
|
93
|
+
segments:
|
94
|
+
- 0
|
79
95
|
version: "0"
|
80
|
-
version:
|
81
96
|
requirements: []
|
82
97
|
|
83
98
|
rubyforge_project: configlet
|
84
|
-
rubygems_version: 1.3.
|
99
|
+
rubygems_version: 1.3.6
|
85
100
|
signing_key:
|
86
101
|
specification_version: 3
|
87
102
|
summary: A stupid simple wrapper for environment variables
|