confrider 0.1.0 → 0.2.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.
@@ -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