dottie 0.0.2 → 0.0.4
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 +5 -5
- data/Rakefile +1 -1
- data/dottie.gemspec +1 -1
- data/lib/dottie/ext/array.rb +2 -0
- data/lib/dottie/ext/hash.rb +2 -0
- data/lib/dottie/ext.rb +2 -0
- data/lib/dottie/freckle.rb +2 -0
- data/lib/dottie/helper.rb +2 -0
- data/lib/dottie/methods.rb +2 -0
- data/lib/dottie/version.rb +3 -1
- data/lib/dottie.rb +5 -3
- data/spec/array_spec.rb +2 -0
- data/spec/dottie_spec.rb +14 -12
- data/spec/freckle_spec.rb +10 -8
- data/spec/hash_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- metadata +10 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: f59286812b786566c8203957a02f2ec4037aad38c8a3868e01dfc425f6896ea1
|
|
4
|
+
data.tar.gz: 6578efca7001ff01a79b79fcd701c5a96ecb727624e652100a271df4961fb141
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a1298c8774d4f79e774ffc451bd6a84e969073607dbc86dfc0fd8468cca663db5bd9fdecc8b21db35692f1de1aa501c5535a683c1aa9b43021c7d89b6adc0e47
|
|
7
|
+
data.tar.gz: fd50f3a810510c44f40a90a95827b8a426597eafe3dc9170113548c0c3165d29d02ca4884ef36a0859eb4c8f8711e97a9f531521f5af52a583164aefbd83f84a
|
data/Rakefile
CHANGED
data/dottie.gemspec
CHANGED
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
21
21
|
spec.require_paths = ["lib"]
|
|
22
22
|
|
|
23
|
-
spec.add_development_dependency "bundler", "
|
|
23
|
+
spec.add_development_dependency "bundler", ">= 2.2.33"
|
|
24
24
|
spec.add_development_dependency "rake"
|
|
25
25
|
spec.add_development_dependency "rspec"
|
|
26
26
|
end
|
data/lib/dottie/ext/array.rb
CHANGED
data/lib/dottie/ext/hash.rb
CHANGED
data/lib/dottie/ext.rb
CHANGED
data/lib/dottie/freckle.rb
CHANGED
data/lib/dottie/helper.rb
CHANGED
data/lib/dottie/methods.rb
CHANGED
data/lib/dottie/version.rb
CHANGED
data/lib/dottie.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'dottie/methods'
|
|
2
4
|
require 'dottie/freckle'
|
|
3
5
|
require 'dottie/helper'
|
|
@@ -139,7 +141,7 @@ module Dottie
|
|
|
139
141
|
key = Dottie.build_key(key_parts[0..-2])
|
|
140
142
|
obj = Dottie.get(obj, key)
|
|
141
143
|
end
|
|
142
|
-
if obj.is_a?(Array) && key_parts.last.is_a?(
|
|
144
|
+
if obj.is_a?(Array) && key_parts.last.is_a?(Integer)
|
|
143
145
|
obj.delete_at(key_parts.last)
|
|
144
146
|
else
|
|
145
147
|
obj.delete(key_parts.last)
|
|
@@ -235,13 +237,13 @@ module Dottie
|
|
|
235
237
|
# Builds a Dottie key from an Array of strings and integers.
|
|
236
238
|
|
|
237
239
|
def self.build_key(parts)
|
|
238
|
-
key = ''
|
|
240
|
+
key = String.new('')
|
|
239
241
|
parts.each_with_index do |part, i|
|
|
240
242
|
case part
|
|
241
243
|
when String
|
|
242
244
|
key << '.' unless i == 0
|
|
243
245
|
key << part
|
|
244
|
-
when
|
|
246
|
+
when Integer
|
|
245
247
|
key << "[#{part}]"
|
|
246
248
|
end
|
|
247
249
|
end
|
data/spec/array_spec.rb
CHANGED
data/spec/dottie_spec.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
describe Dottie do
|
|
@@ -164,28 +166,28 @@ describe Dottie do
|
|
|
164
166
|
let(:hash) {{ 'a' => 'b', 'c' => { 'd' => ['e', 'f', 'g'] } }}
|
|
165
167
|
|
|
166
168
|
it "finds a standard key" do
|
|
167
|
-
expect(Dottie.has_key?(hash, 'a')).to
|
|
169
|
+
expect(Dottie.has_key?(hash, 'a')).to be true
|
|
168
170
|
end
|
|
169
171
|
it "does not find a missing standard key" do
|
|
170
|
-
expect(Dottie.has_key?(hash, 'x')).to
|
|
172
|
+
expect(Dottie.has_key?(hash, 'x')).to be false
|
|
171
173
|
end
|
|
172
174
|
it "finds a Dottie key (Hash value)" do
|
|
173
|
-
expect(Dottie.has_key?(hash, 'c.d')).to
|
|
175
|
+
expect(Dottie.has_key?(hash, 'c.d')).to be true
|
|
174
176
|
end
|
|
175
177
|
it "finds a Dottie key (Array element)" do
|
|
176
|
-
expect(Dottie.has_key?(hash, 'c.d[0]')).to
|
|
178
|
+
expect(Dottie.has_key?(hash, 'c.d[0]')).to be true
|
|
177
179
|
end
|
|
178
180
|
it "does not find a missing Dottie key (first part is a String)" do
|
|
179
|
-
expect(Dottie.has_key?(hash, 'a.b')).to
|
|
181
|
+
expect(Dottie.has_key?(hash, 'a.b')).to be false
|
|
180
182
|
end
|
|
181
183
|
it "does not find a missing Dottie key (first part exists)" do
|
|
182
|
-
expect(Dottie.has_key?(hash, 'c.x')).to
|
|
184
|
+
expect(Dottie.has_key?(hash, 'c.x')).to be false
|
|
183
185
|
end
|
|
184
186
|
it "does not find a missing Dottie key (outside Array bounds)" do
|
|
185
|
-
expect(Dottie.has_key?(hash, 'c.d[4]')).to
|
|
187
|
+
expect(Dottie.has_key?(hash, 'c.d[4]')).to be false
|
|
186
188
|
end
|
|
187
189
|
it "does not find a missing Dottie key (no part exists)" do
|
|
188
|
-
expect(Dottie.has_key?(hash, 'x.y')).to
|
|
190
|
+
expect(Dottie.has_key?(hash, 'x.y')).to be false
|
|
189
191
|
end
|
|
190
192
|
end
|
|
191
193
|
|
|
@@ -448,22 +450,22 @@ describe Dottie do
|
|
|
448
450
|
|
|
449
451
|
it 'recognizes a dotted key' do
|
|
450
452
|
key = 'a.b.c'
|
|
451
|
-
expect(Dottie.dottie_key?(key)).to
|
|
453
|
+
expect(Dottie.dottie_key?(key)).to be true
|
|
452
454
|
end
|
|
453
455
|
|
|
454
456
|
it 'recognizes a bracketed key' do
|
|
455
457
|
key = 'a[0]b'
|
|
456
|
-
expect(Dottie.dottie_key?(key)).to
|
|
458
|
+
expect(Dottie.dottie_key?(key)).to be true
|
|
457
459
|
end
|
|
458
460
|
|
|
459
461
|
it 'recognizes an array as a Dottie key' do
|
|
460
462
|
key = ['a', 'b', 'c']
|
|
461
|
-
expect(Dottie.dottie_key?(key)).to
|
|
463
|
+
expect(Dottie.dottie_key?(key)).to be true
|
|
462
464
|
end
|
|
463
465
|
|
|
464
466
|
it 'does not recognize a normal key' do
|
|
465
467
|
key = 'a_b_c'
|
|
466
|
-
expect(Dottie.dottie_key?(key)).to
|
|
468
|
+
expect(Dottie.dottie_key?(key)).to be false
|
|
467
469
|
end
|
|
468
470
|
|
|
469
471
|
end
|
data/spec/freckle_spec.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
describe Dottie::Freckle do
|
|
@@ -147,28 +149,28 @@ describe Dottie::Freckle do
|
|
|
147
149
|
let(:freckle) { Dottie::Freckle.new({ 'a' => 'b', 'c' => { 'd' => ['e', 'f', 'g'] } }) }
|
|
148
150
|
|
|
149
151
|
it "finds a standard key" do
|
|
150
|
-
expect(freckle.has_key?('a')).to
|
|
152
|
+
expect(freckle.has_key?('a')).to be true
|
|
151
153
|
end
|
|
152
154
|
it "does not find a missing standard key" do
|
|
153
|
-
expect(freckle.has_key?('x')).to
|
|
155
|
+
expect(freckle.has_key?('x')).to be false
|
|
154
156
|
end
|
|
155
157
|
it "finds a Dottie key (Hash value)" do
|
|
156
|
-
expect(freckle.has_key?('c.d')).to
|
|
158
|
+
expect(freckle.has_key?('c.d')).to be true
|
|
157
159
|
end
|
|
158
160
|
it "finds a Dottie key (Array element)" do
|
|
159
|
-
expect(freckle.has_key?('c.d[0]')).to
|
|
161
|
+
expect(freckle.has_key?('c.d[0]')).to be true
|
|
160
162
|
end
|
|
161
163
|
it "does not find a missing Dottie key (first part is a String)" do
|
|
162
|
-
expect(freckle.has_key?('a.b')).to
|
|
164
|
+
expect(freckle.has_key?('a.b')).to be false
|
|
163
165
|
end
|
|
164
166
|
it "does not find a missing Dottie key (first part exists)" do
|
|
165
|
-
expect(freckle.has_key?('c.x')).to
|
|
167
|
+
expect(freckle.has_key?('c.x')).to be false
|
|
166
168
|
end
|
|
167
169
|
it "does not find a missing Dottie key (outside Array bounds)" do
|
|
168
|
-
expect(freckle.has_key?('c.d[4]')).to
|
|
170
|
+
expect(freckle.has_key?('c.d[4]')).to be false
|
|
169
171
|
end
|
|
170
172
|
it "does not find a missing Dottie key (no part exists)" do
|
|
171
|
-
expect(freckle.has_key?('x.y')).to
|
|
173
|
+
expect(freckle.has_key?('x.y')).to be false
|
|
172
174
|
end
|
|
173
175
|
end
|
|
174
176
|
|
data/spec/hash_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dottie
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nick Pearson
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-08-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 2.2.33
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 2.2.33
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -85,7 +85,7 @@ homepage: https://github.com/nickpearson/dottie
|
|
|
85
85
|
licenses:
|
|
86
86
|
- MIT
|
|
87
87
|
metadata: {}
|
|
88
|
-
post_install_message:
|
|
88
|
+
post_install_message:
|
|
89
89
|
rdoc_options: []
|
|
90
90
|
require_paths:
|
|
91
91
|
- lib
|
|
@@ -100,9 +100,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
101
|
version: '0'
|
|
102
102
|
requirements: []
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
signing_key:
|
|
103
|
+
rubygems_version: 3.2.33
|
|
104
|
+
signing_key:
|
|
106
105
|
specification_version: 4
|
|
107
106
|
summary: Deep Hash and Array access with dotted keys
|
|
108
107
|
test_files:
|