hashie 3.4.4 → 3.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08dd1e6f13c8a218c2d8417c194f598e7b063e34
4
- data.tar.gz: 2a3431f1435c2cc7fae475303d8eaa3e0c68f709
3
+ metadata.gz: 17fdc7085bfa65cd5c7e0b61542c36ba04be8d96
4
+ data.tar.gz: c93285de8532d7004bf94b472096c53654994aa1
5
5
  SHA512:
6
- metadata.gz: f802e665c81b36ff942f27f500ab7928db9cfa1812a74ecccdf68bcbb2ef3c4df7c16c6c8ff9e44b9bc62246474a8a0027092f07ed1f92c92ef4793fb0e8bc53
7
- data.tar.gz: d1fb7562ac07a170355729e8dbbaa0ceee73c6307a7175109363d8b95e823db45461693d7469b28c86616090dfd2bfc1ce984296db00c7b4511d54feca6f31b5
6
+ metadata.gz: 9a45b9b6a3bf7dcea2f581abbbfb64d5074e5389a82034f0b7cfeda02033b5b826c6f2634af378832c189763e12b5561d6e447bb487f0c4958b21d7498710ae4
7
+ data.tar.gz: 9ac837fb3daf0dd29fa734080d02845ba2a28f4f5f1434f5a0f7890f3f7dd548c31a666270df3ea0e5801541a62d29bd2d068fcb747fee9c38a44b0a2a27e8d1
@@ -6,6 +6,27 @@ scheme are considered to be bugs.
6
6
 
7
7
  [semver]: http://semver.org/spec/v2.0.0.html
8
8
 
9
+ ## [3.4.5] - 2016-09-16
10
+
11
+ [3.4.5]: https://github.com/intridea/hashie/compare/v3.4.4...v3.4.5
12
+
13
+ ### Added
14
+
15
+ * [#337](https://github.com/intridea/hashie/pull/337), [#331](https://github.com/intridea/hashie/issues/331): `Hashie::Mash#load` accepts a `Pathname` object - [@gipcompany](https://github.com/gipcompany).
16
+
17
+ ### Deprecated
18
+
19
+ * [#366](https://github.com/intridea/hashie/pull/366): Hashie is no longer tested on Ruby < 2 - [@dblock](https://github.com/dblock).
20
+
21
+ ### Fixed
22
+
23
+ * [#358](https://github.com/intridea/hashie/pull/358): Fixed support for Array#dig - [@modosc](https://github.com/modosc).
24
+ * [#365](https://github.com/intridea/hashie/pull/365): Ensured ActiveSupport::HashWithIndifferentAccess is defined before use in #deep_locate - [@mikejarema](https://github.com/mikejarema).
25
+
26
+ ### Miscellanous
27
+
28
+ * [#366](https://github.com/intridea/hashie/pull/366): Added Danger, PR linter - [@dblock](https://github.com/dblock).
29
+
9
30
  ## [3.4.4] - 2016-04-29
10
31
 
11
32
  [3.4.4]: https://github.com/intridea/hashie/compare/v3.4.3...v3.4.4
@@ -17,8 +38,8 @@ scheme are considered to be bugs.
17
38
  ### Fixed
18
39
 
19
40
  * [#240](https://github.com/intridea/hashie/pull/240): Fixed nesting twice with Clash keys - [@bartoszkopinski](https://github.com/bartoszkopinski).
20
- * [#317](https://github.com/intridea/hashie/pull/317): Ensure `Hashie::Extensions::MethodQuery` methods return boolean values - [@michaelherold](https://github.com/michaelherold).
21
- * [#319](https://github.com/intridea/hashie/pull/319): Fix a regression from 3.4.1 where `Hashie::Extensions::DeepFind` is no longer indifference-aware - [@michaelherold](https://github.com/michaelherold).
41
+ * [#317](https://github.com/intridea/hashie/pull/317): Ensured `Hashie::Extensions::MethodQuery` methods return boolean values - [@michaelherold](https://github.com/michaelherold).
42
+ * [#319](https://github.com/intridea/hashie/pull/319): Fixed a regression from 3.4.1 where `Hashie::Extensions::DeepFind` is no longer indifference-aware - [@michaelherold](https://github.com/michaelherold).
22
43
  * [#322](https://github.com/intridea/hashie/pull/322): Fixed `reverse_merge` issue with `Mash` subclasses - [@marshall-lee](https://github.com/marshall-lee).
23
44
  * [#346](https://github.com/intridea/hashie/pull/346): Fixed `merge` breaking indifferent access - [@docwhat](https://github.com/docwhat), [@michaelherold](https://github.com/michaelherold).
24
45
  * [#350](https://github.com/intridea/hashie/pull/350): Fixed from string translations used with `IgnoreUndeclared` - [@marshall-lee](https://github.com/marshall-lee).
@@ -88,10 +109,10 @@ scheme are considered to be bugs.
88
109
  ### Fixed
89
110
 
90
111
  * [#247](https://github.com/intridea/hashie/pull/247): Fixed #stringify_keys and #symbolize_keys collision with ActiveSupport - [@bartoszkopinski](https://github.com/bartoszkopinski).
91
- * [#256](https://github.com/intridea/hashie/pull/256): Inherit key coercions - [@Erol](https://github.com/Erol).
112
+ * [#256](https://github.com/intridea/hashie/pull/256): Inherited key coercions - [@Erol](https://github.com/Erol).
92
113
  * [#259](https://github.com/intridea/hashie/pull/259): Fixed handling of default proc values in Mash - [@Erol](https://github.com/Erol).
93
114
  * [#261](https://github.com/intridea/hashie/pull/261): Fixed bug where Dash.property modifies argument object - [@d-tw](https://github.com/d-tw).
94
- * [#269](https://github.com/intridea/hashie/pull/269): Add #extractable_options? so ActiveSupport Array#extract_options! can extract it - [@ridiculous](https://github.com/ridiculous).
115
+ * [#269](https://github.com/intridea/hashie/pull/269): Added #extractable_options? so ActiveSupport Array#extract_options! can extract it - [@ridiculous](https://github.com/ridiculous).
95
116
 
96
117
  ## [3.3.2] - 2014-11-26
97
118
 
@@ -105,7 +126,7 @@ scheme are considered to be bugs.
105
126
 
106
127
  ### Fixed
107
128
 
108
- * [#221](https://github.com/intridea/hashie/pull/221): Reduce amount of allocated objects on calls with suffixes in Hashie::Mash - [@kubum](https://github.com/kubum).
129
+ * [#221](https://github.com/intridea/hashie/pull/221): Reduced amount of allocated objects on calls with suffixes in Hashie::Mash - [@kubum](https://github.com/kubum).
109
130
  * [#224](https://github.com/intridea/hashie/pull/224): Merging Hashie::Mash now correctly only calls the block on duplicate values - [@amysutedja](https://github.com/amysutedja).
110
131
  * [#228](https://github.com/intridea/hashie/pull/228): Made Hashie::Extensions::Parsers::YamlErbParser pass template filename to ERB - [@jperville](https://github.com/jperville).
111
132
 
@@ -118,17 +139,17 @@ scheme are considered to be bugs.
118
139
  * [#183](https://github.com/intridea/hashie/pull/183): Added Mash#load with YAML file support - [@gregory](https://github.com/gregory).
119
140
  * [#189](https://github.com/intridea/hashie/pull/189): Added Rash#fetch - [@medcat](https://github.com/medcat).
120
141
  * [#204](https://github.com/intridea/hashie/pull/204): Added Hashie::Extensions::MethodOverridingWriter and MethodAccessWithOverride - [@michaelherold](https://github.com/michaelherold).
121
- * [#205](http://github.com/intridea/hashie/pull/205): Added Hashie::Extensions::Mash::SafeAssignment - [@michaelherold](https://github.com/michaelherold).
122
- * [#209](http://github.com/intridea/hashie/pull/209): Added Hashie::Extensions::DeepFind - [@michaelherold](https://github.com/michaelherold).
142
+ * [#205](https://github.com/intridea/hashie/pull/205): Added Hashie::Extensions::Mash::SafeAssignment - [@michaelherold](https://github.com/michaelherold).
143
+ * [#209](https://github.com/intridea/hashie/pull/209): Added Hashie::Extensions::DeepFind - [@michaelherold](https://github.com/michaelherold).
123
144
 
124
145
  ### Fixed
125
146
 
126
147
  * [#69](https://github.com/intridea/hashie/pull/69): Fixed regression in assigning multiple properties in Hashie::Trash - [@michaelherold](https://github.com/michaelherold), [@einzige](https://github.com/einzige), [@dblock](https://github.com/dblock).
127
- * [#195](https://github.com/intridea/hashie/pull/195): Ensure that the same object is returned after injecting IndifferentAccess - [@michaelherold](https://github.com/michaelherold).
148
+ * [#195](https://github.com/intridea/hashie/pull/195): Ensured that the same object is returned after injecting IndifferentAccess - [@michaelherold](https://github.com/michaelherold).
128
149
  * [#201](https://github.com/intridea/hashie/pull/201): Hashie::Trash transforms can be inherited - [@fobocaster](https://github.com/fobocaster).
129
150
  * [#200](https://github.com/intridea/hashie/pull/200): Improved coercion: primitives and error handling - [@maxlinc](https://github.com/maxlinc).
130
- * [#206](http://github.com/intridea/hashie/pull/206): Fixed stack overflow from repetitively including coercion in subclasses - [@michaelherold](https://github.com/michaelherold).
131
- * [#207](http://github.com/intridea/hashie/pull/207): Fixed inheritance of transformations in Trash - [@fobocaster](https://github.com/fobocaster).
151
+ * [#206](https://github.com/intridea/hashie/pull/206): Fixed stack overflow from repetitively including coercion in subclasses - [@michaelherold](https://github.com/michaelherold).
152
+ * [#207](https://github.com/intridea/hashie/pull/207): Fixed inheritance of transformations in Trash - [@fobocaster](https://github.com/fobocaster).
132
153
 
133
154
  ## [3.2.0] - 2014-07-10
134
155
 
@@ -172,7 +193,7 @@ scheme are considered to be bugs.
172
193
 
173
194
  [3.0.0]: https://github.com/intridea/hashie/compare/v2.1.2...v3.0.0
174
195
 
175
- **Note:** This version introduces several backward incompatible API changes. See [UPGRADING](UPGRADING.md) for details.
196
+ Note: This version introduces several backward incompatible API changes. See [UPGRADING](UPGRADING.md) for details.
176
197
 
177
198
  ### Added
178
199
 
@@ -213,7 +234,7 @@ scheme are considered to be bugs.
213
234
 
214
235
  ### Added
215
236
 
216
- * [#134](https://github.com/intridea/hashie/pull/134): Add deep_fetch extension for nested access - [@tylerdooling](https://github.com/tylerdooling).
237
+ * [#134](https://github.com/intridea/hashie/pull/134): Added deep_fetch extension for nested access - [@tylerdooling](https://github.com/tylerdooling).
217
238
 
218
239
  ### Changed
219
240
 
@@ -249,7 +270,7 @@ scheme are considered to be bugs.
249
270
 
250
271
  ### Fixed
251
272
 
252
- * [#96](https://github.com/intridea/hashie/pull/96): Make coercion work better with non-symbol keys in Hashie::Mash - [@wapcaplet](https://github.com/wapcaplet).
273
+ * [#96](https://github.com/intridea/hashie/pull/96): Made coercion work better with non-symbol keys in Hashie::Mash - [@wapcaplet](https://github.com/wapcaplet).
253
274
 
254
275
  ## [2.0.4] - 2013-04-24
255
276
 
@@ -257,7 +278,7 @@ scheme are considered to be bugs.
257
278
 
258
279
  ### Fixed
259
280
 
260
- * [#94](https://github.com/intridea/hashie/pull/94): Make #fetch method consistent with normal Hash - [@markiz](https://github.com/markiz).
281
+ * [#94](https://github.com/intridea/hashie/pull/94): Made #fetch method consistent with normal Hash - [@markiz](https://github.com/markiz).
261
282
 
262
283
  ### Miscellaneous
263
284
 
@@ -269,7 +290,7 @@ scheme are considered to be bugs.
269
290
 
270
291
  ### Fixed
271
292
 
272
- * [#68](https://github.com/intridea/hashie/pull/68): Fix #replace - [@jimeh](https://github.com/jimeh).
293
+ * [#68](https://github.com/intridea/hashie/pull/68): Fixed #replace - [@jimeh](https://github.com/jimeh).
273
294
  * [#88](https://github.com/intridea/hashie/pull/88): Hashie::Mash.new(abc: true).respond_to?(:abc?) works - [@7even](https://github.com/7even).
274
295
 
275
296
  ## [2.0.2] - 2013-02-26
@@ -278,7 +299,7 @@ scheme are considered to be bugs.
278
299
 
279
300
  ### Fixed
280
301
 
281
- * [#85](https://github.com/intridea/hashie/pull/85): adding symbolize_keys back to to_hash - [@cromulus](https://github.com/cromulus).
302
+ * [#85](https://github.com/intridea/hashie/pull/85): Added symbolize_keys back to to_hash - [@cromulus](https://github.com/cromulus).
282
303
 
283
304
  ## [2.0.1] - 2013-02-26
284
305
 
@@ -286,11 +307,11 @@ scheme are considered to be bugs.
286
307
 
287
308
  ### Removed
288
309
 
289
- * [#81](https://github.com/intridea/hashie/pull/81): remove Mash#object_id override - [@matschaffer](https://github.com/matschaffer).
310
+ * [#81](https://github.com/intridea/hashie/pull/81): Removed Mash#object_id override - [@matschaffer](https://github.com/matschaffer).
290
311
 
291
312
  ### Miscellaneous
292
313
 
293
- * Gem cleanup: removed VERSION, Gemfile.lock [@jch](https://github.com/jch), [@mbleigh](https://github.com/mbleigh).
314
+ * Gem cleanup: removed VERSION, Gemfile.lock - [@jch](https://github.com/jch), [@mbleigh](https://github.com/mbleigh).
294
315
 
295
316
  ## [2.0.0] - 2013-02-16
296
317
 
@@ -304,14 +325,14 @@ scheme are considered to be bugs.
304
325
  ### Changed
305
326
 
306
327
  * [#28](https://github.com/intridea/hashie/pull/28): Hashie::Extensions::Coercion coerce_keys takes arguments - [@mattfawcett](https://github.com/mattfawcett).
307
- * [#77](https://github.com/intridea/hashie/pull/77): Remove id, type, and object_id as special allowable keys [@jch](https://github.com/jch).
328
+ * [#77](https://github.com/intridea/hashie/pull/77): Removed id, type, and object_id as special allowable keys - [@jch](https://github.com/jch).
308
329
 
309
330
  ### Fixed
310
331
 
311
- * [#27](https://github.com/intridea/hashie/pull/27): Initialized with merge coerces values - [@mattfawcett](https://github.com/mattfawcett).
332
+ * [#27](https://github.com/intridea/hashie/pull/27): Initialize with merge coerces values - [@mattfawcett](https://github.com/mattfawcett).
312
333
  * [#39](https://github.com/intridea/hashie/pull/39): Trash removes translated values on initialization - [@sleverbor](https://github.com/sleverbor).
313
334
  * [#49](https://github.com/intridea/hashie/pull/49): Hashie::Hash inherits from ::Hash to avoid ambiguity - [@meh](https://github.com/meh), [@orend](https://github.com/orend).
314
- * [#62](https://github.com/intridea/hashie/pull/62): update respond_to? method signature to match ruby core definition - [@dlupu](https://github.com/dlupu).
335
+ * [#62](https://github.com/intridea/hashie/pull/62): Updated respond_to? method signature to match ruby core definition - [@dlupu](https://github.com/dlupu).
315
336
  * [#63](https://github.com/intridea/hashie/pull/63): Dash defaults are dup'ed before assigned - [@ohrite](https://github.com/ohrite).
316
337
  * [#66](https://github.com/intridea/hashie/pull/66): Mash#fetch works with symbol or string keys - [@arthwood](https://github.com/arthwood).
317
338
 
data/README.md CHANGED
@@ -20,7 +20,7 @@ $ gem install hashie
20
20
 
21
21
  ## Upgrading
22
22
 
23
- You're reading the documentation for the stable release of Hashie, 3.4.4. Please read [UPGRADING](UPGRADING.md) when upgrading from a previous version.
23
+ You're reading the documentation for the stable release of Hashie, 3.4.5. Please read [UPGRADING](UPGRADING.md) when upgrading from a previous version.
24
24
 
25
25
  ## Hash Extensions
26
26
 
@@ -490,6 +490,13 @@ mash.development.api_key = "foo" # => <# RuntimeError can't modify frozen ...>
490
490
  mash.development.api_key? # => true
491
491
  ```
492
492
 
493
+ You can also load with a `Pathname` object:
494
+
495
+ ```ruby
496
+ mash = Mash.load(Pathname 'settings/twitter.yml')
497
+ mash.development.api_key # => 'localhost'
498
+ ```
499
+
493
500
  You can access a Mash from another class:
494
501
 
495
502
  ```ruby
@@ -7,6 +7,7 @@ module Hashie
7
7
  autoload :Mash, 'hashie/mash'
8
8
  autoload :Trash, 'hashie/trash'
9
9
  autoload :Rash, 'hashie/rash'
10
+ autoload :Array, 'hashie/array'
10
11
 
11
12
  module Extensions
12
13
  autoload :Coercion, 'hashie/extensions/coercion'
@@ -27,6 +28,7 @@ module Hashie
27
28
  autoload :KeyConversion, 'hashie/extensions/key_conversion'
28
29
  autoload :MethodAccessWithOverride, 'hashie/extensions/method_access'
29
30
  autoload :StrictKeyAccess, 'hashie/extensions/strict_key_access'
31
+ autoload :RubyVersionCheck, 'hashie/extensions/ruby_version_check'
30
32
 
31
33
  module Parsers
32
34
  autoload :YamlErbParser, 'hashie/extensions/parsers/yaml_erb_parser'
@@ -41,6 +43,10 @@ module Hashie
41
43
  module Mash
42
44
  autoload :SafeAssignment, 'hashie/extensions/mash/safe_assignment'
43
45
  end
46
+
47
+ module Array
48
+ autoload :PrettyInspect, 'hashie/extensions/array/pretty_inspect'
49
+ end
44
50
  end
45
51
 
46
52
  class << self
@@ -0,0 +1,11 @@
1
+ module Hashie
2
+ class Array < ::Array
3
+ include Hashie::Extensions::Array::PrettyInspect
4
+ include Hashie::Extensions::RubyVersionCheck
5
+ with_minimum_ruby('2.3.0') do
6
+ def dig(*indexes)
7
+ super(*indexes.map { |idx| Integer(idx) })
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ module Hashie
2
+ module Extensions
3
+ module Array
4
+ module PrettyInspect
5
+ def self.included(base)
6
+ base.send :alias_method, :array_inspect, :inspect
7
+ base.send :alias_method, :inspect, :hashie_inspect
8
+ end
9
+
10
+ def hashie_inspect
11
+ ret = "#<#{self.class} ["
12
+ ret << to_a.map(&:inspect).join(', ')
13
+ ret << ']>'
14
+ ret
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -64,7 +64,7 @@ module Hashie
64
64
  private
65
65
 
66
66
  def self._construct_key_comparator(search_key, object)
67
- search_key = search_key.to_s if defined?(::ActiveSupport) && object.is_a?(::ActiveSupport::HashWithIndifferentAccess)
67
+ search_key = search_key.to_s if defined?(::ActiveSupport::HashWithIndifferentAccess) && object.is_a?(::ActiveSupport::HashWithIndifferentAccess)
68
68
  search_key = search_key.to_s if object.respond_to?(:indifferent_access?) && object.indifferent_access?
69
69
 
70
70
  lambda do |non_callable_object|
@@ -6,7 +6,7 @@ module Hashie
6
6
  class YamlErbParser
7
7
  def initialize(file_path)
8
8
  @content = File.read(file_path)
9
- @file_path = file_path
9
+ @file_path = file_path.is_a?(Pathname) ? file_path.to_s : file_path
10
10
  end
11
11
 
12
12
  def perform
@@ -0,0 +1,15 @@
1
+ module Hashie
2
+ module Extensions
3
+ module RubyVersionCheck
4
+ def self.included(base)
5
+ base.extend ClassMethods
6
+ end
7
+
8
+ module ClassMethods
9
+ def with_minimum_ruby(version)
10
+ yield if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new(version)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,4 +1,5 @@
1
1
  require 'hashie/hash'
2
+ require 'hashie/array'
2
3
 
3
4
  module Hashie
4
5
  # Mash allows you to create pseudo-objects that have method-like
@@ -56,6 +57,7 @@ module Hashie
56
57
  #
57
58
  class Mash < Hash
58
59
  include Hashie::Extensions::PrettyInspect
60
+ include Hashie::Extensions::RubyVersionCheck
59
61
 
60
62
  ALLOWED_SUFFIXES = %w(? ! = _)
61
63
 
@@ -250,7 +252,7 @@ module Hashie
250
252
  self.class.new(other_hash).merge(self)
251
253
  end
252
254
 
253
- if RUBY_VERSION >= '2.3.0'
255
+ with_minimum_ruby('2.3.0') do
254
256
  def dig(*keys)
255
257
  super(*keys.map { |key| convert_key(key) })
256
258
  end
@@ -287,6 +289,8 @@ module Hashie
287
289
  self.class.new(val)
288
290
  when Array
289
291
  val.map { |e| convert_value(e) }
292
+ when ::Array
293
+ Array.new(val.map { |e| convert_value(e) })
290
294
  else
291
295
  val
292
296
  end
@@ -1,3 +1,3 @@
1
1
  module Hashie
2
- VERSION = '3.4.4'
2
+ VERSION = '3.4.5'
3
3
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Array do
4
+ with_minimum_ruby('2.3.0') do
5
+ describe '#dig' do
6
+ let(:array) { Hashie::Array.new([:a, :b, :c]) }
7
+
8
+ it 'works with a string index' do
9
+ expect(array.dig('0')).to eq(:a)
10
+ end
11
+
12
+ it 'works with a numeric index' do
13
+ expect(array.dig(1)).to eq(:b)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -687,14 +687,21 @@ describe Hashie::Mash do
687
687
  end
688
688
  end
689
689
 
690
- if RUBY_VERSION >= '2.3.0'
690
+ with_minimum_ruby('2.3.0') do
691
691
  describe '#dig' do
692
692
  subject { described_class.new(a: { b: 1 }) }
693
-
694
693
  it 'accepts both string and symbol as key' do
695
694
  expect(subject.dig(:a, :b)).to eq(1)
696
695
  expect(subject.dig('a', 'b')).to eq(1)
697
696
  end
697
+
698
+ context 'with numeric key' do
699
+ subject { described_class.new('1' => { b: 1 }) }
700
+ it 'accepts a numeric value as key' do
701
+ expect(subject.dig(1, :b)).to eq(1)
702
+ expect(subject.dig('1', :b)).to eq(1)
703
+ end
704
+ end
698
705
  end
699
706
  end
700
707
  end
@@ -2,28 +2,45 @@ require 'spec_helper'
2
2
 
3
3
  describe Hashie::Extensions::Parsers::YamlErbParser do
4
4
  describe '.perform' do
5
- let(:config) do
6
- <<-EOF
5
+ context 'a file' do
6
+ let(:config) do
7
+ <<-EOF
7
8
  ---
8
9
  foo: verbatim
9
10
  bar: <%= "erb" %>
10
11
  baz: "<%= __FILE__ %>"
11
- EOF
12
- end
13
- let(:path) { 'template.yml' }
12
+ EOF
13
+ end
14
+ let(:path) { 'template.yml' }
15
+
16
+ subject { described_class.new(path).perform }
14
17
 
15
- subject { described_class.new(path).perform }
18
+ before do
19
+ expect(File).to receive(:read).with(path).and_return(config)
20
+ end
16
21
 
17
- before do
18
- expect(File).to receive(:read).with(path).and_return(config)
22
+ it { is_expected.to be_a(Hash) }
23
+
24
+ it 'parses YAML after interpolating ERB' do
25
+ expect(subject['foo']).to eq 'verbatim'
26
+ expect(subject['bar']).to eq 'erb'
27
+ expect(subject['baz']).to eq path
28
+ end
19
29
  end
20
30
 
21
- it { is_expected.to be_a(Hash) }
31
+ context 'Pathname' do
32
+ let(:tempfile) do
33
+ file = Tempfile.new(['foo', '.yml'])
34
+ file.write("---\nfoo: hello\n")
35
+ file.rewind
36
+ file
37
+ end
38
+
39
+ subject { described_class.new(Pathname tempfile.path) }
22
40
 
23
- it 'parses YAML after interpolating ERB' do
24
- expect(subject['foo']).to eq 'verbatim'
25
- expect(subject['bar']).to eq 'erb'
26
- expect(subject['baz']).to eq path
41
+ it '"#perform" can be done in case of path is a Pathname object.' do
42
+ expect(subject.perform).to eq 'foo' => 'hello'
43
+ end
27
44
  end
28
45
  end
29
46
  end
@@ -8,8 +8,10 @@ require 'pry'
8
8
  require 'rspec'
9
9
  require 'hashie'
10
10
  require 'rspec/pending_for'
11
+ require './spec/support/ruby_version_check'
11
12
 
12
13
  RSpec.configure do |config|
14
+ config.extend RubyVersionCheck
13
15
  config.expect_with :rspec do |expect|
14
16
  expect.syntax = :expect
15
17
  end
@@ -0,0 +1,5 @@
1
+ module RubyVersionCheck
2
+ def with_minimum_ruby(version)
3
+ yield if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new(version)
4
+ end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashie
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.4
4
+ version: 3.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-29 00:00:00.000000000 Z
12
+ date: 2016-09-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -70,8 +70,10 @@ files:
70
70
  - UPGRADING.md
71
71
  - hashie.gemspec
72
72
  - lib/hashie.rb
73
+ - lib/hashie/array.rb
73
74
  - lib/hashie/clash.rb
74
75
  - lib/hashie/dash.rb
76
+ - lib/hashie/extensions/array/pretty_inspect.rb
75
77
  - lib/hashie/extensions/coercion.rb
76
78
  - lib/hashie/extensions/dash/coercion.rb
77
79
  - lib/hashie/extensions/dash/indifferent_access.rb
@@ -88,6 +90,7 @@ files:
88
90
  - lib/hashie/extensions/method_access.rb
89
91
  - lib/hashie/extensions/parsers/yaml_erb_parser.rb
90
92
  - lib/hashie/extensions/pretty_inspect.rb
93
+ - lib/hashie/extensions/ruby_version_check.rb
91
94
  - lib/hashie/extensions/strict_key_access.rb
92
95
  - lib/hashie/extensions/stringify_keys.rb
93
96
  - lib/hashie/extensions/symbolize_keys.rb
@@ -96,6 +99,7 @@ files:
96
99
  - lib/hashie/rash.rb
97
100
  - lib/hashie/trash.rb
98
101
  - lib/hashie/version.rb
102
+ - spec/hashie/array_spec.rb
99
103
  - spec/hashie/clash_spec.rb
100
104
  - spec/hashie/dash_spec.rb
101
105
  - spec/hashie/extensions/autoload_spec.rb
@@ -124,6 +128,7 @@ files:
124
128
  - spec/hashie/version_spec.rb
125
129
  - spec/spec_helper.rb
126
130
  - spec/support/module_context.rb
131
+ - spec/support/ruby_version_check.rb
127
132
  homepage: https://github.com/intridea/hashie
128
133
  licenses:
129
134
  - MIT
@@ -144,11 +149,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
149
  version: '0'
145
150
  requirements: []
146
151
  rubyforge_project:
147
- rubygems_version: 2.4.6
152
+ rubygems_version: 2.6.4
148
153
  signing_key:
149
154
  specification_version: 4
150
155
  summary: Your friendly neighborhood hash library.
151
156
  test_files:
157
+ - spec/hashie/array_spec.rb
152
158
  - spec/hashie/clash_spec.rb
153
159
  - spec/hashie/dash_spec.rb
154
160
  - spec/hashie/extensions/autoload_spec.rb
@@ -177,3 +183,4 @@ test_files:
177
183
  - spec/hashie/version_spec.rb
178
184
  - spec/spec_helper.rb
179
185
  - spec/support/module_context.rb
186
+ - spec/support/ruby_version_check.rb