hashie 3.4.4 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
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