navigable_hash 1.1.0 → 1.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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZTM0ODE0MTZmMTBjZWIyNGI1ZjI0ZTBiMjhjNGEwOWZkZjA0YWJmYQ==
5
+ data.tar.gz: !binary |-
6
+ YmMwNzU2NDQ2M2I3MWNiM2JkNjg0ODk5YmUzNzM2Njk1OWY4Yzg3NQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NjQ0MGEwNTdmZTE2ZTU5YjMwODAyZmI0M2RmMzE2OThhMmI4ZjIwNWIzMjli
10
+ ZGM1N2E1MWJlNTJlODhhNjU5NDJmZWMzMGMzOWUyMzA4MTNjNjhiNmY0NDZl
11
+ YzcyN2EzN2M3ODEwNDk5MGIwNjc1YWFhYzBmZThkZDc1M2JhM2Y=
12
+ data.tar.gz: !binary |-
13
+ MmZkNjk4ODU1MzNlNTNkNzg5MjZlMDc5ZmRiMDgxYjI5NDEyMTAzMWNiN2Vm
14
+ ZWMwMzEwODY3ZjU4Nzk3MjgwMDllNGY0NzZmZWYxOGEzMzVlMGM0MzU5MjUz
15
+ ODg4ZTZkNjYyNDU1NDI0NzkyNGRiNDM4YzhiNzJjYjg5NTRlNmU=
data/.travis.yml CHANGED
@@ -7,9 +7,7 @@ rvm:
7
7
  - 1.9.3
8
8
  - 1.9.2
9
9
  - jruby-19mode
10
- - rbx-19mode
11
10
 
12
11
  # Rubies 1.8.7
13
12
  - 1.8.7
14
- - rbx-18mode
15
13
  - jruby-18mode
data/Guardfile ADDED
@@ -0,0 +1,13 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'bundler' do
5
+ watch('Gemfile')
6
+ watch(/^.+\.gemspec/)
7
+ end
8
+
9
+ guard :rspec do
10
+ watch(%r{^spec/.+_spec\.rb$})
11
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
12
+ watch('spec/spec_helper.rb') { "spec" }
13
+ end
@@ -147,7 +147,7 @@ class NavigableHash < Hash
147
147
 
148
148
  def navigate value
149
149
  case value
150
- when NavigableHash
150
+ when self.class
151
151
  value
152
152
  when Hash
153
153
  navigate_hash value
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "navigable_hash"
7
- spec.version = "1.1.0"
7
+ spec.version = "1.2.0"
8
8
  spec.authors = ["Jason Waldrip", "Kevin Wanek"]
9
9
  spec.email = ["jason@waldrip.net", "k@dmcy.us"]
10
10
  spec.description = %q{Allows a hash to be navigated with dot notation or indifferent access.}
@@ -18,10 +18,13 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.add_development_dependency "bundler", "~> 1.3"
21
- spec.add_development_dependency "rake"
22
- spec.add_development_dependency "rspec"
23
- spec.add_development_dependency "pry"
24
- spec.add_development_dependency "coveralls"
25
- spec.add_development_dependency "simplecov-multi"
21
+ spec.add_development_dependency "rake", "10.1.0"
22
+ spec.add_development_dependency "rspec", '2.14'
23
+ spec.add_development_dependency "pry", '0.9.12.2'
24
+ spec.add_development_dependency "coveralls", "0.6.7"
25
+ spec.add_development_dependency "guard", "1.8.2"
26
+ spec.add_development_dependency "guard-rspec", "3.0.2"
27
+ spec.add_development_dependency "guard-bundler", "1.0.0"
28
+ spec.add_development_dependency "simplecov-multi", "0.0.1"
26
29
 
27
30
  end
@@ -7,7 +7,7 @@ module NavigableHash::HelperMethods
7
7
  end
8
8
  describe "##{key}" do
9
9
  it "should call navigate" do
10
- navigable.should_receive(:navigate).any_number_of_times
10
+ navigable.stub(:navigate)
11
11
  navigable.send(key)
12
12
  end
13
13
 
@@ -24,7 +24,7 @@ module NavigableHash::HelperMethods
24
24
  end
25
25
  describe "##{key}" do
26
26
  it "should call navigate" do
27
- navigable.should_receive(:navigate).any_number_of_times
27
+ navigable.stub(:navigate)
28
28
  navigable[key.to_sym]
29
29
  end
30
30
 
@@ -41,7 +41,7 @@ module NavigableHash::HelperMethods
41
41
  end
42
42
  describe "##{key}" do
43
43
  it "should call navigate" do
44
- navigable.should_receive(:navigate).any_number_of_times
44
+ navigable.stub(:navigate)
45
45
  navigable[key.to_s]
46
46
  end
47
47
 
@@ -68,7 +68,7 @@ describe NavigableHash do
68
68
  end
69
69
 
70
70
  let(:hash){ TEST_HASH }
71
- let(:navigable){ NavigableHash.new(hash) }
71
+ subject(:navigable){ NavigableHash.new(hash) }
72
72
 
73
73
  context "with a deep setter" do
74
74
  let(:hash){ {} }
@@ -170,8 +170,22 @@ describe NavigableHash do
170
170
  context "given a hash" do
171
171
  it "should return a new instance of navigable hash" do
172
172
  hash = {:a => 1, :b => 2, :c => 3}
173
- navigable.should_receive(:navigate_hash).with(hash)
173
+ navigable.should_receive(:navigate_hash).with(hash).and_call_original
174
174
  navigable[:hash] = hash
175
+ navigable[:hash].should be_an_instance_of NavigableHash
176
+ end
177
+
178
+ context "given a subclass, setting with a navigable hash" do
179
+ before(:each) do
180
+ stub_const 'SubNavigableHash', Class.new(NavigableHash)
181
+ end
182
+ subject(:navigable){ SubNavigableHash.new(hash) }
183
+ it 'should return an instance of the subclass' do
184
+ hash = NavigableHash.new :a => 1, :b => 2, :c => 3
185
+ navigable.should_receive(:navigate_hash).with(hash).and_call_original
186
+ navigable[:hash] = hash
187
+ navigable[:hash].should be_an_instance_of SubNavigableHash
188
+ end
175
189
  end
176
190
  end
177
191
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: navigable_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jason Waldrip
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-04-26 00:00:00.000000000 Z
12
+ date: 2013-08-16 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: bundler
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,83 +28,115 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: rake
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - '='
37
33
  - !ruby/object:Gem::Version
38
- version: '0'
34
+ version: 10.1.0
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - '='
45
40
  - !ruby/object:Gem::Version
46
- version: '0'
41
+ version: 10.1.0
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rspec
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - '='
53
47
  - !ruby/object:Gem::Version
54
- version: '0'
48
+ version: '2.14'
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ! '>='
53
+ - - '='
61
54
  - !ruby/object:Gem::Version
62
- version: '0'
55
+ version: '2.14'
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: pry
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - '='
69
61
  - !ruby/object:Gem::Version
70
- version: '0'
62
+ version: 0.9.12.2
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - '='
77
68
  - !ruby/object:Gem::Version
78
- version: '0'
69
+ version: 0.9.12.2
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: coveralls
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
- - - ! '>='
74
+ - - '='
85
75
  - !ruby/object:Gem::Version
86
- version: '0'
76
+ version: 0.6.7
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
- - - ! '>='
81
+ - - '='
93
82
  - !ruby/object:Gem::Version
94
- version: '0'
83
+ version: 0.6.7
84
+ - !ruby/object:Gem::Dependency
85
+ name: guard
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '='
89
+ - !ruby/object:Gem::Version
90
+ version: 1.8.2
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '='
96
+ - !ruby/object:Gem::Version
97
+ version: 1.8.2
98
+ - !ruby/object:Gem::Dependency
99
+ name: guard-rspec
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '='
103
+ - !ruby/object:Gem::Version
104
+ version: 3.0.2
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '='
110
+ - !ruby/object:Gem::Version
111
+ version: 3.0.2
112
+ - !ruby/object:Gem::Dependency
113
+ name: guard-bundler
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '='
117
+ - !ruby/object:Gem::Version
118
+ version: 1.0.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.0.0
95
126
  - !ruby/object:Gem::Dependency
96
127
  name: simplecov-multi
97
128
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
129
  requirements:
100
- - - ! '>='
130
+ - - '='
101
131
  - !ruby/object:Gem::Version
102
- version: '0'
132
+ version: 0.0.1
103
133
  type: :development
104
134
  prerelease: false
105
135
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
136
  requirements:
108
- - - ! '>='
137
+ - - '='
109
138
  - !ruby/object:Gem::Version
110
- version: '0'
139
+ version: 0.0.1
111
140
  description: Allows a hash to be navigated with dot notation or indifferent access.
112
141
  email:
113
142
  - jason@waldrip.net
@@ -121,6 +150,7 @@ files:
121
150
  - .rspec
122
151
  - .travis.yml
123
152
  - Gemfile
153
+ - Guardfile
124
154
  - LICENSE.txt
125
155
  - README.md
126
156
  - Rakefile
@@ -132,27 +162,26 @@ files:
132
162
  homepage: http://github.com/jwaldrip/navigable_hash
133
163
  licenses:
134
164
  - MIT
165
+ metadata: {}
135
166
  post_install_message:
136
167
  rdoc_options: []
137
168
  require_paths:
138
169
  - lib
139
170
  required_ruby_version: !ruby/object:Gem::Requirement
140
- none: false
141
171
  requirements:
142
172
  - - ! '>='
143
173
  - !ruby/object:Gem::Version
144
174
  version: '0'
145
175
  required_rubygems_version: !ruby/object:Gem::Requirement
146
- none: false
147
176
  requirements:
148
177
  - - ! '>='
149
178
  - !ruby/object:Gem::Version
150
179
  version: '0'
151
180
  requirements: []
152
181
  rubyforge_project:
153
- rubygems_version: 1.8.23
182
+ rubygems_version: 2.0.6
154
183
  signing_key:
155
- specification_version: 3
184
+ specification_version: 4
156
185
  summary: Allows a hash to be navigated with dot notation or indifferent access.
157
186
  test_files:
158
187
  - spec/helpers/helper_methods.rb