globals 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/globals.rb +30 -6
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7542984347db703149f4405cb03327ad4887eb3d
|
4
|
+
data.tar.gz: e9c740c9a8b129c56f41a091b10dc67e0a78a2f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53299d7c08715a7e8f8dafff7af306855ae83a1ffd4165c9f21893576f915e20585e4535317128eb879a7b862d1f0635e0c5e1a8c0de67983097836d3e364e16
|
7
|
+
data.tar.gz: 4c24aca1a3898e0248f4fc4aecb6c27541dfc2839b537185a81ceffafc932cc5597478bf3d1bc1d30f75004d0ea777674ff827ceebb584515ae66f5fa3fac3cf
|
data/lib/globals.rb
CHANGED
@@ -1,13 +1,33 @@
|
|
1
1
|
require 'erb'
|
2
2
|
require 'yaml'
|
3
3
|
|
4
|
+
class Hash
|
5
|
+
def recursive_merge!(that)
|
6
|
+
that.each_pair do |k, v|
|
7
|
+
if v.is_a? Hash
|
8
|
+
self[k] ||= {}
|
9
|
+
self[k].recursive_merge!(v)
|
10
|
+
else
|
11
|
+
self[k] = v
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
4
17
|
class Globals
|
18
|
+
def self.load(globals_file, env)
|
19
|
+
yaml = YAML.load ERB.new(File.read globals_file).result
|
20
|
+
globals = yaml['defaults'] || {}
|
21
|
+
globals.recursive_merge!(yaml[env] || {})
|
22
|
+
globals
|
23
|
+
end
|
24
|
+
|
5
25
|
def self.read(globals_file, env='development')
|
6
26
|
raise "#{globals_file} does not exist." unless File.exists? globals_file
|
7
27
|
|
8
|
-
|
9
|
-
|
10
|
-
new(
|
28
|
+
globals = load(globals_file, env)
|
29
|
+
|
30
|
+
new(globals, env)
|
11
31
|
end
|
12
32
|
|
13
33
|
def initialize(globals, env)
|
@@ -25,12 +45,16 @@ class Globals
|
|
25
45
|
end
|
26
46
|
|
27
47
|
def override(override_file_path)
|
28
|
-
|
48
|
+
puts "Override file is " + override_file_path
|
49
|
+
overrides = self.class.load(override_file_path, @environment)
|
50
|
+
|
29
51
|
if overrides
|
30
52
|
@cache.clear
|
31
|
-
|
53
|
+
@globals.recursive_merge! overrides
|
32
54
|
define_accessors
|
33
55
|
end
|
56
|
+
|
57
|
+
self
|
34
58
|
end
|
35
59
|
|
36
60
|
def to_hash
|
@@ -52,7 +76,7 @@ class Globals
|
|
52
76
|
end
|
53
77
|
end
|
54
78
|
|
55
|
-
def recursive_merge(a, b)
|
79
|
+
def self.recursive_merge(a, b)
|
56
80
|
b.each_pair do |k, v|
|
57
81
|
if v.is_a? Hash
|
58
82
|
a[k] ||= {}
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: globals
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sujoy Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description: A simple way to define globals for use in a rails application.
|
14
14
|
email: sujoyg@gmail.com
|
15
15
|
executables: []
|
16
16
|
extensions: []
|
@@ -18,7 +18,8 @@ extra_rdoc_files: []
|
|
18
18
|
files:
|
19
19
|
- lib/globals.rb
|
20
20
|
homepage: http://rubygems.org/gems/globals
|
21
|
-
licenses:
|
21
|
+
licenses:
|
22
|
+
- MIT
|
22
23
|
metadata: {}
|
23
24
|
post_install_message:
|
24
25
|
rdoc_options: []
|