confrider 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- confrider (0.1.0)
4
+ confrider (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,6 +1,5 @@
1
1
  require 'confrider/version'
2
- # don't load confrider/deep_merge if it was already loaded from active_support
3
- require 'confrider/deep_merge' unless {}.respond_to? :deep_merge
2
+ require 'confrider/vault'
4
3
  require 'confrider/core'
5
4
 
6
5
  module Confrider
@@ -1,37 +1,39 @@
1
- class Confrider::Core
2
- def initialize
3
- @vault = {}
4
- end
5
-
6
- def [](key, default_value = nil)
7
- @vault.fetch(key, default_value)
8
- end
1
+ module Confrider
2
+ class Core
3
+ def initialize
4
+ @vault = Confrider::Vault.new
5
+ end
9
6
 
10
- def from_hash(hash)
11
- save_hash(nil, hash)
12
- end
7
+ def [](key, default_value = nil)
8
+ @vault.fetch(key, default_value)
9
+ end
13
10
 
14
- def normalize_keys(*keys)
15
- keys.join('.').gsub(/^\./, '')
16
- end
11
+ def from_hash(hash)
12
+ save_hash(nil, hash)
13
+ end
17
14
 
18
- private
15
+ def normalize_keys(*keys)
16
+ keys.join('.').gsub(/^\./, '')
17
+ end
19
18
 
20
- def save(key, value)
21
- @vault[key] = value
22
- end
19
+ private
23
20
 
24
- def save_hash(key, hash)
25
- if key
26
- @vault[key] ||= {}
27
- @vault[key].deep_merge!(hash)
21
+ def save(key, value)
22
+ @vault[key] = value
28
23
  end
29
- hash.each do |inner_key, value|
30
- normalized_key = normalize_keys(key, inner_key)
31
- if value.is_a? Hash
32
- save_hash(normalized_key, value)
33
- else
34
- save(normalized_key, value)
24
+
25
+ def save_hash(key, hash)
26
+ if key
27
+ @vault[key] ||= Confrider::Vault.new
28
+ @vault[key].deep_merge!(hash)
29
+ end
30
+ hash.each do |inner_key, value|
31
+ normalized_key = normalize_keys(key, inner_key)
32
+ if value.is_a? Hash
33
+ save_hash(normalized_key, value)
34
+ else
35
+ save(normalized_key, value)
36
+ end
35
37
  end
36
38
  end
37
39
  end
@@ -0,0 +1,18 @@
1
+ module Confrider
2
+ class Vault < Hash
3
+ # from active_support/core_ext/hash/deep_merge
4
+ def deep_merge(other_hash)
5
+ dup.deep_merge!(other_hash)
6
+ end
7
+
8
+ # Returns a new hash with +self+ and +other_hash+ merged recursively.
9
+ # Modifies the receiver in place.
10
+ def deep_merge!(other_hash)
11
+ other_hash.each_pair do |k,v|
12
+ tv = self[k]
13
+ self[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? self.class.new(tv).deep_merge(v) : v
14
+ end
15
+ self
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module Confrider
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confrider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
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-05-20 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -61,7 +61,7 @@ files:
61
61
  - confrider.gemspec
62
62
  - lib/confrider.rb
63
63
  - lib/confrider/core.rb
64
- - lib/confrider/deep_merge.rb
64
+ - lib/confrider/vault.rb
65
65
  - lib/confrider/version.rb
66
66
  - spec/lib/confrider/core_spec.rb
67
67
  - spec/lib/confrider/version_spec.rb
@@ -81,7 +81,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
81
  version: '0'
82
82
  segments:
83
83
  - 0
84
- hash: 2987699669290260824
84
+ hash: -2114950261282892609
85
85
  required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
@@ -90,10 +90,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  segments:
92
92
  - 0
93
- hash: 2987699669290260824
93
+ hash: -2114950261282892609
94
94
  requirements: []
95
95
  rubyforge_project:
96
- rubygems_version: 1.8.18
96
+ rubygems_version: 1.8.24
97
97
  signing_key:
98
98
  specification_version: 3
99
99
  summary: manage config options like i18n
@@ -1,18 +0,0 @@
1
- # ported from active_support/core_ext/hash/deep_merge
2
-
3
- class Hash
4
- # Returns a new hash with +self+ and +other_hash+ merged recursively.
5
- def deep_merge(other_hash)
6
- dup.deep_merge!(other_hash)
7
- end
8
-
9
- # Returns a new hash with +self+ and +other_hash+ merged recursively.
10
- # Modifies the receiver in place.
11
- def deep_merge!(other_hash)
12
- other_hash.each_pair do |k,v|
13
- tv = self[k]
14
- self[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
15
- end
16
- self
17
- end
18
- end