confit 0.0.1 → 0.0.2
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/README.md +18 -0
- data/lib/confit.rb +21 -13
- data/test/confit_test.rb +17 -5
- data/test/test.yml +3 -2
- metadata +7 -7
- data/README +0 -12
data/README.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
Installation
|
2
|
+
------------
|
3
|
+
* sudo gem install confit
|
4
|
+
|
5
|
+
Initialization
|
6
|
+
--------------
|
7
|
+
* require 'confit'
|
8
|
+
* confit('path/to/config.yml')
|
9
|
+
|
10
|
+
Usage
|
11
|
+
-----
|
12
|
+
* puts confit.some_key # "The value of this key!"
|
13
|
+
|
14
|
+
Notes
|
15
|
+
-----
|
16
|
+
* Optional initialization params include environment and strict mode:
|
17
|
+
* confit('path/to/config.yml', 'development', true)
|
18
|
+
* Strict mode raises a NoMethodError if that key hasn't been loaded from your yaml file.
|
data/lib/confit.rb
CHANGED
@@ -3,22 +3,30 @@ require 'ostruct'
|
|
3
3
|
module Confit
|
4
4
|
|
5
5
|
@@app_config = nil
|
6
|
-
@@
|
6
|
+
@@strict = nil
|
7
7
|
|
8
|
-
def self.
|
9
|
-
@@
|
8
|
+
def self.strict
|
9
|
+
@@strict
|
10
10
|
end
|
11
11
|
|
12
|
-
def self.
|
12
|
+
def self.prep_key(key)
|
13
|
+
key.gsub(/\s/, "_")
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.confit(file=nil, env=nil, strict=false)
|
13
17
|
|
14
18
|
@@app_config ? (return @@app_config) : @@app_config = OpenStruct.new
|
15
19
|
|
16
|
-
@@
|
17
|
-
|
18
|
-
if
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
@@strict = strict ? true : false
|
21
|
+
|
22
|
+
if not file.nil?
|
23
|
+
if File.exist?(file)
|
24
|
+
yaml = env ? YAML.load_file(file)[env] : YAML.load_file(file)
|
25
|
+
yaml.each do |key, val|
|
26
|
+
@@app_config.send("#{self.prep_key(key)}=", val)
|
27
|
+
end
|
28
|
+
else
|
29
|
+
raise IOError, "File #{file} does not exist!"
|
22
30
|
end
|
23
31
|
end
|
24
32
|
|
@@ -29,8 +37,8 @@ end
|
|
29
37
|
|
30
38
|
module Kernel
|
31
39
|
|
32
|
-
def confit(file=nil, env=nil,
|
33
|
-
Confit::confit(file, env,
|
40
|
+
def confit(file=nil, env=nil, strict=false)
|
41
|
+
Confit::confit(file, env, strict)
|
34
42
|
end
|
35
43
|
|
36
44
|
end
|
@@ -40,7 +48,7 @@ class OpenStruct
|
|
40
48
|
def method_missing(mid, *args)
|
41
49
|
mname = mid.id2name
|
42
50
|
if mname !~ /=/
|
43
|
-
raise NoMethodError, "Confit variable not defined!
|
51
|
+
raise NoMethodError, "Confit variable not defined! confit.#{mname}" if Confit.strict
|
44
52
|
else
|
45
53
|
len = args.length
|
46
54
|
if mname.chomp!('=')
|
data/test/confit_test.rb
CHANGED
@@ -3,16 +3,28 @@ require File.join(File.expand_path(File.join(File.dirname(__FILE__))), '..', 'li
|
|
3
3
|
require 'test/unit'
|
4
4
|
require 'rubygems'
|
5
5
|
|
6
|
-
include Confit
|
7
|
-
|
8
6
|
class ConfitTest < Test::Unit::TestCase
|
9
7
|
|
10
|
-
def
|
8
|
+
def _init
|
11
9
|
file = File.join(File.expand_path(File.join(File.dirname(__FILE__))), '..', 'test', 'test.yml')
|
12
|
-
puts file
|
13
10
|
confit(file, 'dev', true)
|
14
|
-
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_main_methods
|
14
|
+
_init
|
15
15
|
assert_equal("twitterpoeks@gmail.com", confit.email)
|
16
16
|
end
|
17
17
|
|
18
|
+
def test_missing
|
19
|
+
_init
|
20
|
+
puts "Doesn't exist: #{confit.your_mom}"
|
21
|
+
rescue NoMethodError => e
|
22
|
+
puts "Rescued NoMethodError for confit.your_mom!"
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_spacey
|
26
|
+
_init
|
27
|
+
assert_equal(confit.a_key_with_spaces, "Now underscores")
|
28
|
+
end
|
29
|
+
|
18
30
|
end
|
data/test/test.yml
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: confit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jen Oslislo
|
@@ -15,11 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-14 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
22
|
-
description: A teeny, tiny configuration manager.
|
22
|
+
description: A teeny, tiny configuration manager for YAML config files.
|
23
23
|
email:
|
24
24
|
- twitterpoeks@gmail.com
|
25
25
|
executables: []
|
@@ -32,7 +32,7 @@ files:
|
|
32
32
|
- lib/confit.rb
|
33
33
|
- test/confit_test.rb
|
34
34
|
- test/test.yml
|
35
|
-
- README
|
35
|
+
- README.md
|
36
36
|
has_rdoc: true
|
37
37
|
homepage: https://github.com/poeks/confit
|
38
38
|
licenses: []
|
@@ -68,6 +68,6 @@ rubyforge_project: confit
|
|
68
68
|
rubygems_version: 1.3.7
|
69
69
|
signing_key:
|
70
70
|
specification_version: 3
|
71
|
-
summary: A teeny, tiny configuration manager.
|
71
|
+
summary: A teeny, tiny configuration manager for YAML config files.
|
72
72
|
test_files: []
|
73
73
|
|