nvd_feed_api 0.2.1.yank → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6787ce3cf4a7b489e422d52f0be48642ea091e60
4
- data.tar.gz: 5e41fab281567c47a8323997f6b6ef4e5759320a
2
+ SHA256:
3
+ metadata.gz: a5b514ce502cdd7ed0c110fc51e834735f0431d18724ce805a7d43ab6c48573b
4
+ data.tar.gz: 2ad857a72403943feee5a60f3a7ac8e8f642eb96e4ebb5956d2cdaeb3d635a46
5
5
  SHA512:
6
- metadata.gz: c30c2411484e44cd49878ff6396ca21cf9fb172ec095e2b48bd15ced3ba05d245df89917eceb10f6e00331794462898aa4b02f1f66241ba0e8886ed24beaf55a
7
- data.tar.gz: 86eb79764eddc1d8ffdbf76f3f105d819c4482b64fedbedf597ac86ae54858c97cefc2155bf5fa3e0f267d1a6e0ceb5c0ead1036312e5b8318a0a5ac08f650ca
6
+ metadata.gz: 830a36b97968d09491bd7827393e261aff2ec6fc410167cfcada0848e86809979c01a7c7c9bbfcfa6cf86b0a357279b26cb45719ceefde01f2e2456d2c03f272
7
+ data.tar.gz: dab48f73efd733dd71c94ad619289727c625526b6099b09906203ed19b776aa2d97b21868cf1b10a4bba095f6d4a26a06da7c23cacc4f6776eb2cc5486f9d5c7
data/.gitignore CHANGED
@@ -50,4 +50,4 @@ build-iPhoneSimulator/
50
50
  .rvmrc
51
51
 
52
52
  # do not check Gemfile.lock fror gems
53
- Gemfile.lock
53
+ #Gemfile.lock
@@ -1,40 +1,47 @@
1
1
  # Official language image. Look for the different tagged releases at:
2
2
  # https://hub.docker.com/r/library/ruby/tags/
3
3
 
4
+ # Caching: https://docs.gitlab.com/ee/ci/caching/#caching-ruby-dependencies
4
5
  cache:
6
+ key: ${CI_COMMIT_REF_SLUG}
5
7
  paths:
6
8
  - vendor/ruby # cache gems in between builds
7
9
 
8
10
  before_script:
9
11
  - ruby -v # Print out ruby version for debugging
10
- - gem install bundler --no-ri --no-rdoc # Bundler is not installed with the image
12
+ - gem install bundler --no-document # Bundler is not installed with the image
11
13
  # install nproc (coreutils) for bundle -j
12
14
  # install git for building the gemspec
13
15
  # install make, gcc for building gem native extension (commonmarker)
14
16
  # libc-dev for musl-dev dependency (stdlib.h) needed by gcc
15
17
  - apk --no-cache add coreutils git make gcc libc-dev
16
18
  - bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
17
- - rake install # install the gem
19
+ - bundle exec rake install # install the gem
18
20
 
19
- test:2.4:
21
+ # Anchors: https://docs.gitlab.com/ee/ci/yaml/README.html#anchors
22
+ .test_template: &job_definition
20
23
  stage: test
21
- image: ruby:2.4-alpine
22
24
  script:
23
- - rubocop
24
- - rake test
25
+ - bundle exec rubocop
26
+ - bundle exec rake test
27
+
28
+ test:2.4:
29
+ <<: *job_definition
30
+ image: ruby:2.4-alpine
25
31
 
26
32
  test:2.5:
27
- stage: test
33
+ <<: *job_definition
28
34
  image: ruby:2.5-alpine
29
- script:
30
- - rubocop
31
- - rake test
35
+
36
+ test:2.6:
37
+ <<: *job_definition
38
+ image: ruby:2.6-alpine
32
39
 
33
40
  pages:
34
41
  stage: deploy
35
42
  image: ruby:2.4-alpine
36
43
  script:
37
- - yard doc
44
+ - bundle exec yard doc
38
45
  - mkdir public
39
46
  - mv doc/* public/
40
47
  artifacts:
@@ -1,6 +1,9 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.4
3
3
 
4
+ Layout/AlignHash:
5
+ EnforcedHashRocketStyle: table
6
+
4
7
  # Rubocop is too stupid too see that the variable is used
5
8
  Lint/UselessAssignment:
6
9
  Enabled: false
@@ -0,0 +1,64 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ nvd_feed_api (0.3.0)
5
+ archive-zip (~> 0.11)
6
+ nokogiri (~> 1.10)
7
+ oj (>= 3.7.8, < 4)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ archive-zip (0.11.0)
13
+ io-like (~> 0.3.0)
14
+ ast (2.4.0)
15
+ commonmarker (0.18.2)
16
+ ruby-enum (~> 0.5)
17
+ concurrent-ruby (1.1.4)
18
+ github-markup (3.0.2)
19
+ i18n (1.5.3)
20
+ concurrent-ruby (~> 1.0)
21
+ io-like (0.3.0)
22
+ jaro_winkler (1.5.2)
23
+ mini_portile2 (2.4.0)
24
+ minitest (5.11.3)
25
+ nokogiri (1.10.1)
26
+ mini_portile2 (~> 2.4.0)
27
+ oj (3.7.8)
28
+ parallel (1.13.0)
29
+ parser (2.6.0.0)
30
+ ast (~> 2.4.0)
31
+ powerpack (0.1.2)
32
+ rainbow (3.0.0)
33
+ rake (12.3.2)
34
+ redcarpet (3.4.0)
35
+ rubocop (0.63.0)
36
+ jaro_winkler (~> 1.5.1)
37
+ parallel (~> 1.10)
38
+ parser (>= 2.5, != 2.5.1.1)
39
+ powerpack (~> 0.1)
40
+ rainbow (>= 2.2.2, < 4.0)
41
+ ruby-progressbar (~> 1.7)
42
+ unicode-display_width (~> 1.4.0)
43
+ ruby-enum (0.7.2)
44
+ i18n
45
+ ruby-progressbar (1.10.0)
46
+ unicode-display_width (1.4.1)
47
+ yard (0.9.16)
48
+
49
+ PLATFORMS
50
+ ruby
51
+
52
+ DEPENDENCIES
53
+ bundler (~> 2.0)
54
+ commonmarker (~> 0.18)
55
+ github-markup (~> 3.0)
56
+ minitest (~> 5.11)
57
+ nvd_feed_api!
58
+ rake (~> 12.3)
59
+ redcarpet (~> 3.4)
60
+ rubocop (~> 0.63)
61
+ yard (~> 0.9)
62
+
63
+ BUNDLED WITH
64
+ 2.0.1
@@ -31,7 +31,7 @@ class NVDFeedScraper
31
31
 
32
32
  # Scrap / parse the website to get the feeds and fill the {#feeds} attribute.
33
33
  # @note {#scrap} need to be called only once but can be called again to update if the NVD feed page changed.
34
- # @return [Integer] +0+ when there is no error.
34
+ # @return [Integer] Number of scrapped feeds.
35
35
  def scrap
36
36
  uri = URI(@url)
37
37
  html = Net::HTTP.get(uri)
@@ -46,6 +46,7 @@ class NVDFeedScraper
46
46
  zip = tr.css('+ tr + tr > td > a').attr('href').value
47
47
  @feeds.push(Feed.new(name, updated, meta, gz, zip))
48
48
  end
49
+ return @feeds.size
49
50
  end
50
51
 
51
52
  # Return feeds. Can only be called after {#scrap}.
@@ -72,6 +73,7 @@ class NVDFeedScraper
72
73
  # @see https://nvd.nist.gov/vuln/data-feeds
73
74
  def feeds(*arg_feeds)
74
75
  raise 'call scrap method before using feeds method' if @feeds.nil?
76
+
75
77
  return_value = nil
76
78
  if arg_feeds.empty?
77
79
  return_value = @feeds
@@ -83,6 +85,7 @@ class NVDFeedScraper
83
85
  # if nothing found return nil
84
86
  elsif arg_feeds[0].is_a?(Array)
85
87
  raise 'one of the provided arguments is not a String' unless arg_feeds[0].all? { |x| x.is_a?(String) }
88
+
86
89
  # Sorting CVE can allow us to parse quicker
87
90
  # Upcase to be sure include? works
88
91
  # Does not use map(&:upcase) to preserve CVE-Recent and CVE-Modified
@@ -114,6 +117,7 @@ class NVDFeedScraper
114
117
  # scraper.available_feeds => ["CVE-Modified", "CVE-Recent", "CVE-2017", "CVE-2016", "CVE-2015", "CVE-2014", "CVE-2013", "CVE-2012", "CVE-2011", "CVE-2010", "CVE-2009", "CVE-2008", "CVE-2007", "CVE-2006", "CVE-2005", "CVE-2004", "CVE-2003", "CVE-2002"]
115
118
  def available_feeds
116
119
  raise 'call scrap method before using available_feeds method' if @feeds.nil?
120
+
117
121
  feed_names = []
118
122
  @feeds.each do |feed| # feed is an objet
119
123
  feed_names.push(feed.name)
@@ -146,9 +150,11 @@ class NVDFeedScraper
146
150
  def cve(*arg_cve)
147
151
  return_value = nil
148
152
  raise 'no argument provided, 1 or more expected' if arg_cve.empty?
153
+
149
154
  if arg_cve.length == 1
150
155
  if arg_cve[0].is_a?(String)
151
156
  raise 'bad CVE name' unless /^CVE-[0-9]{4}-[0-9]{4,}$/i.match?(arg_cve[0])
157
+
152
158
  year = /^CVE-([0-9]{4})-[0-9]{4,}$/i.match(arg_cve[0]).captures[0]
153
159
  matched_feed = nil
154
160
  feed_names = available_feeds
@@ -163,12 +169,14 @@ class NVDFeedScraper
163
169
  # CVE-2002 feed (the 1st one) contains CVE from 1999 to 2002
164
170
  matched_feed = 'CVE-2002' if matched_feed.nil? && ('1999'..'2001').to_a.include?(year)
165
171
  raise "bad CVE year in #{arg_cve}" if matched_feed.nil?
172
+
166
173
  f = feeds(matched_feed)
167
174
  f.json_pull
168
175
  return_value = f.cve(arg_cve[0])
169
176
  elsif arg_cve[0].is_a?(Array)
170
177
  raise 'one of the provided arguments is not a String' unless arg_cve[0].all? { |x| x.is_a?(String) }
171
178
  raise 'bad CVE name' unless arg_cve[0].all? { |x| /^CVE-[0-9]{4}-[0-9]{4,}$/i.match?(x) }
179
+
172
180
  return_value = []
173
181
  # Sorting CVE can allow us to parse quicker
174
182
  # Upcase to be sure include? works
@@ -185,6 +193,7 @@ class NVDFeedScraper
185
193
  # So virtually add those feed...
186
194
  feed_names.merge(virtual_feeds)
187
195
  raise 'unexisting CVE year was provided in some CVE' unless feeds_to_match.subset?(feed_names)
196
+
188
197
  matched_feeds = feeds_to_match.intersection(feed_names)
189
198
  # and now that the intersection is done remove those virtual feeds and add CVE-2002 instead if needed
190
199
  unless matched_feeds.intersection(virtual_feeds.to_set).empty?
@@ -235,6 +244,7 @@ class NVDFeedScraper
235
244
  def update_feeds(*arg_feed)
236
245
  return_value = false
237
246
  raise 'no argument provided, 1 or more expected' if arg_feed.empty?
247
+
238
248
  scrap
239
249
  if arg_feed.length == 1
240
250
  if arg_feed[0].is_a?(Feed)
@@ -184,6 +184,7 @@ class NVDFeedScraper
184
184
  # Verify hash integrity
185
185
  computed_h = Digest::SHA256.file(@json_file)
186
186
  raise "File corruption: #{@json_file}" unless meta.sha256.casecmp(computed_h.hexdigest).zero?
187
+
187
188
  # update data
188
189
  doc = Oj::Doc.open(File.read(@json_file))
189
190
  @data_type = doc.fetch('/CVE_data_type')
@@ -223,11 +224,14 @@ class NVDFeedScraper
223
224
  def cve(*arg_cve)
224
225
  raise 'json_file is nil, it needs to be populated with json_pull' if @json_file.nil?
225
226
  raise "json_file (#{@json_file}) doesn't exist" unless File.file?(@json_file)
227
+
226
228
  return_value = nil
227
229
  raise 'no argument provided, 1 or more expected' if arg_cve.empty?
230
+
228
231
  if arg_cve.length == 1
229
232
  if arg_cve[0].is_a?(String)
230
233
  raise "bad CVE name (#{arg_cve[0]})" unless /^CVE-[0-9]{4}-[0-9]{4,}$/i.match?(arg_cve[0])
234
+
231
235
  doc = Oj::Doc.open(File.read(@json_file))
232
236
  # Quicker than doc.fetch('/CVE_Items').size
233
237
  (1..@data_number_of_cves).each do |i|
@@ -244,6 +248,7 @@ class NVDFeedScraper
244
248
  cves_to_find = arg_cve[0].map(&:upcase).sort
245
249
  raise 'one of the provided arguments is not a String' unless cves_to_find.all? { |x| x.is_a?(String) }
246
250
  raise 'bad CVE name' unless cves_to_find.all? { |x| /^CVE-[0-9]{4}-[0-9]{4,}$/i.match?(x) }
251
+
247
252
  doc = Oj::Doc.open(File.read(@json_file))
248
253
  # Quicker than doc.fetch('/CVE_Items').size
249
254
  (1..@data_number_of_cves).each do |i|
@@ -273,6 +278,7 @@ class NVDFeedScraper
273
278
  def available_cves
274
279
  raise 'json_file is nil, it needs to be populated with json_pull' if @json_file.nil?
275
280
  raise "json_file (#{@json_file}) doesn't exist" unless File.file?(@json_file)
281
+
276
282
  doc = Oj::Doc.open(File.read(@json_file))
277
283
  # Quicker than doc.fetch('/CVE_Items').size
278
284
  cve_names = []
@@ -290,6 +296,7 @@ class NVDFeedScraper
290
296
  # 'CVE-2007'
291
297
  def name=(arg_name)
292
298
  raise "name (#{arg_name}) is not a string" unless arg_name.is_a?(String)
299
+
293
300
  @name = arg_name
294
301
  end
295
302
 
@@ -299,6 +306,7 @@ class NVDFeedScraper
299
306
  # '10/19/2017 3:27:02 AM -04:00'
300
307
  def updated=(arg_updated)
301
308
  raise "updated date (#{arg_updated}) is not a string" unless arg_updated.is_a?(String)
309
+
302
310
  @updated = arg_updated
303
311
  end
304
312
 
@@ -308,6 +316,7 @@ class NVDFeedScraper
308
316
  # 'https://static.nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-2007.meta'
309
317
  def meta_url=(arg_meta_url)
310
318
  raise "meta_url (#{arg_meta_url}) is not a string" unless arg_meta_url.is_a?(String)
319
+
311
320
  @meta_url = arg_meta_url
312
321
  end
313
322
 
@@ -317,6 +326,7 @@ class NVDFeedScraper
317
326
  # 'https://static.nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-2007.json.gz'
318
327
  def gz_url=(arg_gz_url)
319
328
  raise "gz_url (#{arg_gz_url}) is not a string" unless arg_gz_url.is_a?(String)
329
+
320
330
  @gz_url = arg_gz_url
321
331
  end
322
332
 
@@ -326,6 +336,7 @@ class NVDFeedScraper
326
336
  # 'https://static.nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-2007.json.zip'
327
337
  def zip_url=(arg_zip_url)
328
338
  raise "zip_url (#{arg_zip_url}) is not a string" unless arg_zip_url.is_a?(String)
339
+
329
340
  @zip_url = arg_zip_url
330
341
  end
331
342
 
@@ -362,6 +373,7 @@ class NVDFeedScraper
362
373
  unless skip_download
363
374
  res = Net::HTTP.get_response(uri)
364
375
  raise "#{file_url} ended with #{res.code} #{res.message}" unless res.is_a?(Net::HTTPSuccess)
376
+
365
377
  File.open(destination_file, 'wb') do |file|
366
378
  file.write(res.body)
367
379
  end
@@ -376,6 +388,7 @@ class NVDFeedScraper
376
388
  def update!(fresh_feed)
377
389
  return_value = false
378
390
  raise "#{fresh_feed} is not a Feed" unless fresh_feed.is_a?(Feed)
391
+
379
392
  # update attributes
380
393
  if updated != fresh_feed.updated
381
394
  self.name = fresh_feed.name
@@ -91,6 +91,7 @@ class NVDFeedScraper
91
91
  end
92
92
 
93
93
  raise "Can't parse if the URL is empty" if @url.nil?
94
+
94
95
  uri = URI(@url)
95
96
 
96
97
  meta = Net::HTTP.get(uri)
@@ -1,3 +1,3 @@
1
1
  module NvdFeedApi
2
- VERSION = '0.2.1.yank'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
6
6
  s.name = 'nvd_feed_api'
7
7
  s.version = NvdFeedApi::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
- s.date = '2018-05-02'
9
+ s.date = '2018-01-06'
10
10
  s.summary = 'API for NVD CVE feeds'
11
11
  s.description = 'A simple API for NVD CVE feeds'
12
12
  s.authors = ['Alexandre ZANNI']
@@ -31,16 +31,16 @@ Gem::Specification.new do |s|
31
31
 
32
32
  s.required_ruby_version = '~> 2.4'
33
33
 
34
- s.add_dependency('archive-zip', '~> 0.10')
35
- s.add_dependency('nokogiri', '~> 1.8')
36
- s.add_dependency('oj', '~> 3.3')
34
+ s.add_dependency('archive-zip', '~> 0.11')
35
+ s.add_dependency('nokogiri', '~> 1.10')
36
+ s.add_dependency('oj', '>= 3.7.8', '<4')
37
37
 
38
- s.add_development_dependency('bundler', '~> 1.15')
39
- s.add_development_dependency('commonmarker', '~> 0.17') # for GMF support in YARD
40
- s.add_development_dependency('github-markup', '~> 1.6') # for GMF support in YARD
41
- s.add_development_dependency('minitest', '~> 5.10')
38
+ s.add_development_dependency('bundler', '~> 2.0')
39
+ s.add_development_dependency('commonmarker', '~> 0.18') # for GMF support in YARD
40
+ s.add_development_dependency('github-markup', '~> 3.0') # for GMF support in YARD
41
+ s.add_development_dependency('minitest', '~> 5.11')
42
42
  s.add_development_dependency('rake', '~> 12.3')
43
43
  s.add_development_dependency('redcarpet', '~> 3.4') # for GMF support in YARD
44
- s.add_development_dependency('rubocop', '~> 0.51')
44
+ s.add_development_dependency('rubocop', '~> 0.63')
45
45
  s.add_development_dependency('yard', '~> 0.9')
46
46
  end
@@ -1,8 +1,18 @@
1
+ # [0.3.0] - 22 January 2019
2
+
3
+ [0.3.0]: https://gitlab.com/noraj/nvd_api/tags/v0.3.0
4
+
5
+ - update dependencies: updated gemspec, ruby 2.6 support, fix gem doc flag, fix oj crash (seg fault)
6
+ - Gemfile.lock: now Gemfile.lock is not ignored anymore
7
+ - gitlab-ci: add ruby 2.6 test, add caching key, and anchors for better reuse, always use bundle
8
+ - NVDFeedScraper `scrap` method: change return value
9
+ - rubocop: fix lint
10
+
1
11
  # [0.2.1] - 2 May 2018
2
12
 
3
13
  [0.2.1]: https://gitlab.com/noraj/nvd_api/tags/v0.2.1
4
14
 
5
- - Gitlab-CI: test vith ruby 2.4.x and 2.5.x
15
+ - Gitlab-CI: test with ruby 2.4.x and 2.5.x
6
16
  - style: fix Style/ExpandPathArguments cop
7
17
  - security: fix Security/Open cop, protect from pipe command injection
8
18
  - test: fix NVD URL after NVD changed it
@@ -9,7 +9,7 @@ class NVDAPITest < Minitest::Test
9
9
  end
10
10
 
11
11
  def test_scraper_scrap
12
- assert_equal(0, @s.scrap, 'scrap method return nothing')
12
+ assert_operator(0, :<, @s.scrap, 'scrap method returns nothing')
13
13
  end
14
14
 
15
15
  def test_scraper_feeds_noarg
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nvd_feed_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1.yank
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre ZANNI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-02 00:00:00.000000000 Z
11
+ date: 2018-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: archive-zip
@@ -16,98 +16,104 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.10'
19
+ version: '0.11'
20
20
  type: :runtime
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: '0.10'
26
+ version: '0.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.8'
33
+ version: '1.10'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.8'
40
+ version: '1.10'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: oj
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 3.7.8
48
+ - - "<"
46
49
  - !ruby/object:Gem::Version
47
- version: '3.3'
50
+ version: '4'
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 3.7.8
58
+ - - "<"
53
59
  - !ruby/object:Gem::Version
54
- version: '3.3'
60
+ version: '4'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: bundler
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.15'
67
+ version: '2.0'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.15'
74
+ version: '2.0'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: commonmarker
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '0.17'
81
+ version: '0.18'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '0.17'
88
+ version: '0.18'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: github-markup
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: '1.6'
95
+ version: '3.0'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: '1.6'
102
+ version: '3.0'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: minitest
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: '5.10'
109
+ version: '5.11'
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: '5.10'
116
+ version: '5.11'
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: rake
113
119
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +148,14 @@ dependencies:
142
148
  requirements:
143
149
  - - "~>"
144
150
  - !ruby/object:Gem::Version
145
- version: '0.51'
151
+ version: '0.63'
146
152
  type: :development
147
153
  prerelease: false
148
154
  version_requirements: !ruby/object:Gem::Requirement
149
155
  requirements:
150
156
  - - "~>"
151
157
  - !ruby/object:Gem::Version
152
- version: '0.51'
158
+ version: '0.63'
153
159
  - !ruby/object:Gem::Dependency
154
160
  name: yard
155
161
  requirement: !ruby/object:Gem::Requirement
@@ -182,6 +188,7 @@ files:
182
188
  - ".rubocop.yml"
183
189
  - ".yardopts"
184
190
  - Gemfile
191
+ - Gemfile.lock
185
192
  - LICENSE.txt
186
193
  - README.md
187
194
  - Rakefile
@@ -220,12 +227,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
220
227
  version: '2.4'
221
228
  required_rubygems_version: !ruby/object:Gem::Requirement
222
229
  requirements:
223
- - - ">"
230
+ - - ">="
224
231
  - !ruby/object:Gem::Version
225
- version: 1.3.1
232
+ version: '0'
226
233
  requirements: []
227
- rubyforge_project:
228
- rubygems_version: 2.6.14
234
+ rubygems_version: 3.0.1
229
235
  signing_key:
230
236
  specification_version: 4
231
237
  summary: API for NVD CVE feeds