uber_config 0.0.4 → 0.0.5
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 +16 -2
- data/lib/uber_config.rb +22 -3
- data/lib/uber_config/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -1,14 +1,28 @@
|
|
1
1
|
UberConfig is a config loader that will load config files from various locations.
|
2
2
|
|
3
|
+
Just run:
|
4
|
+
|
5
|
+
config = UberConfig.load
|
6
|
+
|
3
7
|
Looks for `config.yml` file or name passed in via :file param.
|
4
8
|
|
5
|
-
Here is the order:
|
9
|
+
Here is the order of where it looks:
|
6
10
|
|
7
11
|
- $abt_config global variable (for https://github.com/iron-io/abt)
|
8
|
-
- test directory
|
9
12
|
- directory of file that calls UberConfig.load
|
10
13
|
- working directory
|
14
|
+
- TODO: look at ~/configs directory
|
11
15
|
- ~/Dropbox/configs/#{working_directory_name}
|
12
16
|
|
13
17
|
:dir can be used to change working_directory_name.
|
14
18
|
|
19
|
+
## Helper methods
|
20
|
+
|
21
|
+
### Symbolize Keys
|
22
|
+
|
23
|
+
When it loads up config files, the hash keys will be strings by default because they are
|
24
|
+
strings in the files. You can convert them to keys by running `UberConfig.symbolize_keys!`, for example:
|
25
|
+
|
26
|
+
config = UberConfig.load
|
27
|
+
config = UberConfig.symbolize_keys!(config)
|
28
|
+
|
data/lib/uber_config.rb
CHANGED
@@ -60,7 +60,6 @@ module UberConfig
|
|
60
60
|
|
61
61
|
puts "auto_dir_name: #{auto_dir_name}"
|
62
62
|
|
63
|
-
|
64
63
|
# Now check in Dropbox
|
65
64
|
dropbox_folders = ["~", "Dropbox", "configs"]
|
66
65
|
if dir
|
@@ -74,8 +73,7 @@ module UberConfig
|
|
74
73
|
return @config if @config
|
75
74
|
|
76
75
|
# couldn't find it
|
77
|
-
|
78
|
-
return nil
|
76
|
+
raise "UberConfig could not find config file!"
|
79
77
|
|
80
78
|
end
|
81
79
|
|
@@ -83,8 +81,29 @@ module UberConfig
|
|
83
81
|
puts "Checking for config file at #{cf}..."
|
84
82
|
if File.exist?(cf)
|
85
83
|
config = YAML::load_file(cf)
|
84
|
+
# the following makes it indifferent access, but doesn't seem to for inner hashes
|
85
|
+
#config.default_proc = proc do |h, k|
|
86
|
+
# case k
|
87
|
+
# when String then sym = k.to_sym; h[sym] if h.key?(sym)
|
88
|
+
# when Symbol then str = k.to_s; h[str] if h.key?(str)
|
89
|
+
# end
|
90
|
+
#end
|
86
91
|
return config
|
87
92
|
end
|
88
93
|
nil
|
89
94
|
end
|
95
|
+
|
96
|
+
# Destructively convert all keys to symbols, as long as they respond to to_sym.
|
97
|
+
# inspired by activesupport
|
98
|
+
def self.symbolize_keys!(hash)
|
99
|
+
keys = hash.keys
|
100
|
+
keys.each do |key|
|
101
|
+
v = hash.delete(key)
|
102
|
+
if v.is_a?(Hash)
|
103
|
+
v = symbolize_keys!(v)
|
104
|
+
end
|
105
|
+
hash[(key.to_sym rescue key) || key] = v
|
106
|
+
end
|
107
|
+
hash
|
108
|
+
end
|
90
109
|
end
|
data/lib/uber_config/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uber_config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-19 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Loads configs from common locations.
|
15
15
|
email:
|