squire 1.2.5 → 1.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDJkODhmYWNjYmIyYzNkNTUwN2RmNTNjZDFjYmY3Mzk0MDIwYjU3NA==
4
+ NWY4ODFlMTY4YzIzYjlkNmVlNTIyYWQ2ODJkYzQ1M2UxYmU4ZjNlOQ==
5
5
  data.tar.gz: !binary |-
6
- ODgxZTg2YzhjOWEyYTExMTI1YzdkZDgzODg4OTRkZTZmNGI5OGI5Nw==
6
+ NTZjNmZiM2JjNTY1ZjhjNmI2ZGE2YWRjZDllMjQyMjlhYzlmM2QwMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGRhNWMwNjgzZDljYjA3MmFlZTg3YmY1YmM0Nzk3ZDMxMjU2OGRjMmE0OWY0
10
- YTY2MzZjN2RjNWYyNTA4NWZmODdiMjZkZTkxODk4OWZkMTRjMmMxYWNhMmQz
11
- ZjJjZjQ2Y2Y3YWVmZmFjZTk0OWEwNTlhZDljODRkOWVmZGEyNGY=
9
+ ZDE2ZTNlYWQwMmU2OTdjMTg1MGE5ZGI5OTJkYTcxNWRmNDcxNmJkN2UzMTdj
10
+ YTRkNjZkMTViZTQ3YWIyMzYxYzk4MmEzNGUwZTFhMTE3Y2MzNmUzOGQwYWYy
11
+ YzNmZmE2Zjc3NDU5ZDU4ZjQ4YTBhMTczOTQ5M2ZmNGJmNWZiYWM=
12
12
  data.tar.gz: !binary |-
13
- ZmRlMWNjYjAzOTFmMTBlMDQ0NWIzODQwZTMyOTEyMGUzODFiOTA5MTU3Y2I2
14
- MDQyNjZmY2MwZWZkN2U3OGMwZWRhMWY5OTM4MjI2ZTk0NWU1MTVhZDA3OTYx
15
- YTEyNDYwMjAxZTFiMWQ3MDNhZDUzZTUwMDNjN2FkYzZkNGJmZDQ=
13
+ MGQ4Nzg3Yjc3Yjc4MjFjOTBmZTg0ZTM2ZTVhZjk1NzkxNWE3NGM0NGM2Y2Zk
14
+ MGMzMGMxMjg5Y2UwM2U5NmQ0NTQ2YzZkNjkzMjM2Nzk2ZTVhMDA1NThlNTI4
15
+ OTlhNWNkYzA1YjBmNGUyNzRiZjcxNDUzNzM5OTdlOThlZDM2ODY=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 1.2.6
2
+ * Fix fatal bug overriding base values
3
+ * Samuel Molnár
4
+
1
5
  ### 1.2.5
2
6
  * Use HashWithIndifferentAccess for accessing parser result
3
7
  * Add better string representation of Squire::Settings
@@ -76,7 +76,7 @@ module Squire
76
76
  if base_namespace
77
77
  hash.except(base_namespace).each do |key, values|
78
78
  # favours value from namespace over value from defaults
79
- values.deep_merge!(hash[base_namespace]) { |_, value, _| value }
79
+ hash[key] = hash[base_namespace].deep_merge(values) { |_, default, value| value.nil? ? default : value }
80
80
  end
81
81
  end
82
82
 
@@ -19,10 +19,11 @@ class Hash
19
19
  def deep_merge!(other_hash, &block)
20
20
  other_hash.each_pair do |k,v|
21
21
  tv = self[k]
22
+
22
23
  if tv.is_a?(Hash) && v.is_a?(Hash)
23
24
  self[k] = tv.deep_merge(v, &block)
24
25
  else
25
- self[k] = block && !tv.nil? ? block.call(k, tv, v) : v
26
+ self[k] = block ? block.call(k, tv, v) : v
26
27
  end
27
28
  end
28
29
  self
@@ -1,3 +1,3 @@
1
1
  module Squire
2
- VERSION = '1.2.5'
2
+ VERSION = '1.2.6'
3
3
  end
@@ -1,15 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Squire::Configuration do
4
- subject { described_class.new }
5
-
6
4
  let(:hash) {
7
5
  {
8
6
  defaults: {
9
7
  nested: {
10
8
  b: 3,
11
- c: 4,
12
- d: true
9
+ d: true,
10
+ c: 4
13
11
  }
14
12
  },
15
13
  development: {
@@ -20,7 +18,10 @@ describe Squire::Configuration do
20
18
  }
21
19
  },
22
20
  production: {
23
- a: 3
21
+ a: 3,
22
+ nested: {
23
+ b: 4
24
+ }
24
25
  }
25
26
  }
26
27
  }
@@ -70,6 +71,13 @@ describe Squire::Configuration do
70
71
  subject.settings.nested.b.should eql(2) # from development.nested.b
71
72
  subject.settings.nested.d.should be_false # from development.nested.d
72
73
  subject.settings.nested.c.should eql(4) # from defaults.nested.c
74
+
75
+ subject.source hash
76
+ subject.namespace :production, base: :defaults
77
+
78
+ subject.settings.a.should eql(3)
79
+ subject.settings.nested.b.should eql(4) # from development.nested.b
80
+ subject.settings.nested.d.should be_true # from development.nested.d
73
81
  end
74
82
  end
75
83
 
@@ -12,7 +12,7 @@ describe Hash do
12
12
  end
13
13
 
14
14
  it 'should merge hashes deeply with block' do
15
- merge = { a: [:a, 1, 1], b: 2, c: [:c, 3, 3], d: 4, nested: { a: [:a, 1, 2], b: 3 }}
15
+ merge = { a: [:a, 1, 1], b: 2, c: [:c, 3, 3], d: [:d, nil, 4], nested: { a: [:a, 1, 2], b: [:b, nil, 3] }}
16
16
 
17
17
  (a.deep_merge(b) { |key, old, new| [key, old, new] }).should eql(merge)
18
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squire
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Molnar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-30 00:00:00.000000000 Z
11
+ date: 2013-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport