Skip to content

Commit 147a931

Browse files
authored
Change fetch to dig to return nil instead of false (#4)
1 parent 932565e commit 147a931

File tree

6 files changed

+31
-16
lines changed

6 files changed

+31
-16
lines changed

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
vrt (0.2.0)
4+
vrt (0.2.1)
55

66
GEM
77
remote: https://rubygems.org/

lib/vrt/map.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def walk_node_tree(string, max_depth: 'variant')
6363

6464
def search(ids, node, level)
6565
last_level = level.eql?(ids.length)
66-
last_level ? node : node&.children&.fetch(ids[level], false)
66+
last_level ? node : node&.children&.dig(ids[level])
6767
end
6868

6969
def build_structure

lib/vrt/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module Vrt
2-
VERSION = '0.2.0'.freeze
2+
VERSION = '0.2.1'.freeze
33
end

spec/sample_vrt/2.0/vulnerability-rating-taxonomy.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,25 @@
160160
"type": "category",
161161
"priority": 4,
162162
"children": []
163+
},
164+
{
165+
"id": "insecure_data_storage",
166+
"name": "insecure_data_storage",
167+
"type": "category",
168+
"children": [
169+
{
170+
"id": "insecure_data_storage",
171+
"name": "insecure_data_storage",
172+
"type": "subcategory",
173+
"children": [
174+
{
175+
"id": "password",
176+
"name": "password",
177+
"type": "variant"
178+
}
179+
]
180+
}
181+
]
163182
}
164183
]
165184
}

spec/sample_vrt/999.999/vulnerability-rating-taxonomy.json

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,19 +1315,6 @@
13151315
"name": "Screen Caching Enabled",
13161316
"type": "subcategory",
13171317
"priority": 5
1318-
},
1319-
{
1320-
"id": "insecure_data_storage",
1321-
"name": "Insecure Data Storage",
1322-
"type": "subcategory",
1323-
"children": [
1324-
{
1325-
"id": "password",
1326-
"name": "Password",
1327-
"type": "variant",
1328-
"priority": 2
1329-
}
1330-
]
13311318
}
13321319
]
13331320
},

spec/vrt_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,15 @@
148148
end
149149
end
150150

151+
context 'has valid parent two levels up' do
152+
let(:vrt_id) { 'insecure_data_storage.insecure_data_storage.password' }
153+
let(:new_version) { '999.999' }
154+
155+
it 'should return top level category' do
156+
expect(found_node.qualified_vrt_id).to eq 'insecure_data_storage'
157+
end
158+
end
159+
151160
context 'and has no valid parent node' do
152161
let(:vrt_id) { 'sensitive_data_exposure.token_leakage_via_referer.over_https' }
153162
let(:new_version) { '2.0' }

0 commit comments

Comments
 (0)