virustotal_api 0.2.0 → 0.3.0

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
- SHA1:
3
- metadata.gz: 08639ee03219b15575d468fd157eda539bc3897e
4
- data.tar.gz: 2c281969e78d7fbcf5d665b392ab16bf11c7abc8
2
+ SHA256:
3
+ metadata.gz: 8bed66a7fba9485458455710be627e1f833347bceb426162e95580a0523f709e
4
+ data.tar.gz: 958f96c673f266360f5da1f5c28e9c948407956176be6af1196ad53aee7ab551
5
5
  SHA512:
6
- metadata.gz: 63fb4449337880642ae44ce0c1fa483835fa21c7a8f5a38e456aae569322ab26b1e9f7a22362e9b1bef65503a4f652b5154594e2be01c947003d2dc441eefdfc
7
- data.tar.gz: 365ba31b29a47e37f34565c97ce45a08105865ffd531bc5bfabfa305ab89b297b1aa9a465515d79f3fb96a2052e7e69e895d625b4ddadbae53439aa1399ea613
6
+ metadata.gz: b633ba4b732ea5cc41470928879ef92c75000a66df300d7640a4e28d210a85192cd69fb5a4c96e4fd37f1434eda2c0678a3ac359c235fb46a588f67cebe20d51
7
+ data.tar.gz: 25bf3927a97a5fdc9435caa0073223b46fb4af8badc0f18edb735c5ce34174b585a98db7b04a05b9aea35213a2f0d1e9f6c47be1c9132c78668c04334776dac6
@@ -0,0 +1,46 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ * Using welcoming and inclusive language
12
+ * Being respectful of differing viewpoints and experiences
13
+ * Gracefully accepting constructive criticism
14
+ * Focusing on what is best for the community
15
+ * Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior by participants include:
18
+
19
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ * Trolling, insulting/derogatory comments, and personal or political attacks
21
+ * Public or private harassment
22
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ## Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ## Scope
32
+
33
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ## Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at git@pwelch.net. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ## Attribution
42
+
43
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44
+
45
+ [homepage]: http://contributor-covenant.org
46
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -0,0 +1,7 @@
1
+ # Contributing
2
+
3
+ 1. Fork it ( https://github.com/pwelch/virustotal_api/fork )
4
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
5
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
6
+ 4. Push to the branch (`git push origin my-new-feature`)
7
+ 5. Create a new Pull Request
@@ -0,0 +1,15 @@
1
+ ## Expected Behavior
2
+
3
+
4
+ ## Actual Behavior
5
+
6
+
7
+ ## Steps to Reproduce the Problem
8
+
9
+ 1.
10
+
11
+ ## Specifications
12
+
13
+ - Version:
14
+ - Platform:
15
+ - Subsystem:
data/.rubocop.yml CHANGED
@@ -25,3 +25,11 @@ Style/RegexpLiteral:
25
25
 
26
26
  Style/BracesAroundHashParameters:
27
27
  Enabled: false
28
+
29
+ Lint/MissingCopEnableDirective:
30
+ Exclude:
31
+ - 'test/base_test.rb'
32
+
33
+ Naming/UncommunicativeMethodParamName:
34
+ Exclude:
35
+ - 'lib/virustotal_api/ip_report.rb'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # VirusTotal API Changelog
2
2
 
3
+ ## 0.3.0
4
+
5
+ * Add optional scan param for url report API [#5](https://github.com/pwelch/virustotal_api/pull/5)
6
+ * [@mkunkel ](https://github.com/mkunkel)
7
+
3
8
  ## 0.2.0
4
9
 
5
10
  * Check if the respone is 204 [#2](https://github.com/pwelch/virustotal_api/pull/2)
data/Gemfile CHANGED
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  source 'https://rubygems.org'
4
2
 
5
3
  gemspec
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require 'bundler/gem_tasks'
3
3
  require 'rake/testtask'
4
4
  require 'rubocop/rake_task'
@@ -13,7 +13,7 @@ module VirustotalAPI
13
13
  # @return [Hash] the parsed JSON.
14
14
  def self.parse(response)
15
15
  if response.code == 204
16
- fail(RateLimitError, 'maximum number of 4 requests per minute reached')
16
+ raise(RateLimitError, 'maximum number of 4 requests per minute reached')
17
17
  end
18
18
 
19
19
  JSON.parse(response.body)
@@ -29,7 +29,7 @@ module VirustotalAPI
29
29
  def exists?
30
30
  response_code = report.fetch('response_code') { nil }
31
31
 
32
- response_code == 1 ? true : false
32
+ response_code == 1
33
33
  end
34
34
  end
35
35
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require_relative 'base'
3
3
 
4
4
  module VirustotalAPI
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require_relative 'base'
3
3
 
4
4
  module VirustotalAPI
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require_relative 'base'
3
3
 
4
4
  module VirustotalAPI
@@ -30,7 +30,7 @@ module VirustotalAPI
30
30
  def queued_for_analysis?
31
31
  response_code = report.fetch('response_code') { nil }
32
32
 
33
- response_code == -2 ? true : false
33
+ response_code == -2
34
34
  end
35
35
  end
36
36
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require_relative 'base'
3
3
 
4
4
  module VirustotalAPI
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  module VirustotalAPI
3
- URI = 'https://www.virustotal.com/vtapi/v2'
3
+ URI = 'https://www.virustotal.com/vtapi/v2'.freeze
4
4
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require_relative 'base'
3
3
 
4
4
  module VirustotalAPI
@@ -13,11 +13,12 @@ module VirustotalAPI
13
13
 
14
14
  # @param [String] resource file as a md5/sha1/sha256 hash
15
15
  # @param [String] api_key for virustotal
16
+ # @param [Integer] optional param to start scan if not found. 1 for true
16
17
  # @return [VirustotalAPI::URLReport] Report Search Result
17
- def self.find(resource, api_key)
18
+ def self.find(resource, api_key, scan = 0)
18
19
  response = RestClient.post(
19
20
  api_uri + '/url/report',
20
- params(resource, api_key)
21
+ params(resource, api_key, scan)
21
22
  )
22
23
  report = parse(response)
23
24
 
@@ -26,11 +27,13 @@ module VirustotalAPI
26
27
 
27
28
  # @param [String] resource file as a md5/sha1/sha256 hash
28
29
  # @param [String] api_key for virustotal
30
+ # @param [Integer] optional param to start scan if not found. 1 for true
29
31
  # @return [Hash] params for POST Request
30
- def self.params(resource, api_key)
32
+ def self.params(resource, api_key, scan = 0)
31
33
  {
32
34
  :resource => resource,
33
- :apikey => api_key
35
+ :apikey => api_key,
36
+ :scan => scan.to_s
34
37
  }
35
38
  end
36
39
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  module VirustotalAPI
3
- VERSION = '0.2.0'
3
+ VERSION = '0.3.0'.freeze
4
4
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require 'virustotal_api/domain_report'
3
3
  require 'virustotal_api/file_report'
4
4
  require 'virustotal_api/file_scan'
data/test/base_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  # rubocop:disable LineLength
3
3
  require './test/test_helper'
4
4
 
@@ -30,20 +30,20 @@ class VirustotalAPIBaseTest < Minitest::Test
30
30
  end
31
31
 
32
32
  def test_parse_code_200
33
- mock_response_200 = Minitest::Mock.new
34
- mock_response_200.expect(:code, 200)
35
- mock_response_200.expect(:body, '{}')
33
+ mock_response200 = Minitest::Mock.new
34
+ mock_response200.expect(:code, 200)
35
+ mock_response200.expect(:body, '{}')
36
36
 
37
- assert VirustotalAPI::Base.parse(mock_response_200), {}
37
+ assert VirustotalAPI::Base.parse(mock_response200), {}
38
38
  end
39
39
 
40
40
  def test_parse_code_204
41
- mock_response_204 = Minitest::Mock.new
42
- mock_response_204.expect(:code, 204)
43
- mock_response_204.expect(:body, '{}')
41
+ mock_response204 = Minitest::Mock.new
42
+ mock_response204.expect(:code, 204)
43
+ mock_response204.expect(:body, '{}')
44
44
 
45
45
  assert_raises VirustotalAPI::RateLimitError do
46
- VirustotalAPI::Base.parse(mock_response_204)
46
+ VirustotalAPI::Base.parse(mock_response204)
47
47
  end
48
48
  end
49
49
 
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require './test/test_helper'
3
3
 
4
4
  class VirustotalAPIDomainReportTest < Minitest::Test
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require './test/test_helper'
3
3
 
4
4
  class RateLimitErrorTest < Minitest::Test
@@ -1,8 +1,7 @@
1
- # encoding: utf-8
2
- # rubocop:disable LineLength
3
1
  require './test/test_helper'
4
2
 
5
3
  class VirustotalAPIFileReportTest < Minitest::Test
4
+ # rubocop:disable LineLength
6
5
  def setup
7
6
  @sha256 = '01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b'
8
7
  @api_key = 'testapikey'
@@ -31,4 +30,5 @@ class VirustotalAPIFileReportTest < Minitest::Test
31
30
  assert virustotal_report.report_url, permalink
32
31
  end
33
32
  end
33
+ # rubocop:enable LineLength
34
34
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require './test/test_helper'
3
3
 
4
4
  class VirustotalAPIFileScanTest < Minitest::Test
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://www.virustotal.com/vtapi/v2/url/report
6
+ body:
7
+ encoding: UTF-8
8
+ string: resource=http%3A%2F%2Fwww.unscanned.com&apikey=testapikey&scan=1
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - rest-client/2.0.2 (linux-gnu x86_64) ruby/2.4.1p111
16
+ Content-Length:
17
+ - '118'
18
+ Content-Type:
19
+ - application/x-www-form-urlencoded
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Cache-Control:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json
29
+ X-Cloud-Trace-Context:
30
+ - 82dde70aa4bad5b45d047d625ec37c2a
31
+ Date:
32
+ - Thu, 15 Mar 2018 14:46:41 GMT
33
+ Server:
34
+ - Google Frontend
35
+ Content-Length:
36
+ - '441'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{"permalink": "https://www.virustotal.com/url/c1f6493ad83d51c833a875bb10cca5bde7e2c35456168173a0bf25005c43ecaf/analysis/1521125201/",
40
+ "resource": "http://www.unscanned.com/", "url": "http://www.unscanned.com/",
41
+ "response_code": 1, "scan_date": "2018-03-15 14:46:41", "scan_id": "c1f6493ad83d51c833a875bb10cca5bde7e2c35456168173a0bf25005c43ecaf-1521125201",
42
+ "verbose_msg": "Scan request successfully queued, come back later for the
43
+ report"}'
44
+ http_version:
45
+ recorded_at: Thu, 15 Mar 2018 14:46:41 GMT
46
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://www.virustotal.com/vtapi/v2/url/report
6
+ body:
7
+ encoding: UTF-8
8
+ string: resource=http%3A%2F%2Fwww.unscanned.com&apikey=testapikey&scan=0
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - rest-client/2.0.2 (linux-gnu x86_64) ruby/2.4.1p111
16
+ Content-Length:
17
+ - '121'
18
+ Content-Type:
19
+ - application/x-www-form-urlencoded
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Cache-Control:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json
29
+ X-Cloud-Trace-Context:
30
+ - 66a8de76e13e5d05605518bdbfdf4628
31
+ Date:
32
+ - Mon, 26 Mar 2018 21:44:17 GMT
33
+ Server:
34
+ - Google Frontend
35
+ Content-Length:
36
+ - '120'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{"response_code": 0, "resource": "http://www.unscanned.com", "verbose_msg":
40
+ "Resource does not exist in the dataset"}'
41
+ http_version:
42
+ recorded_at: Mon, 26 Mar 2018 21:44:17 GMT
43
+ recorded_with: VCR 4.0.0
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require './test/test_helper'
3
3
 
4
4
  class VirustotalAPIIPReportTest < Minitest::Test
data/test/test_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require './lib/virustotal_api'
3
3
  require 'minitest/autorun'
4
4
  require 'webmock/minitest'
data/test/uri_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require './test/test_helper'
3
3
 
4
4
  class VirustotalAPIVTReportTest < Minitest::Test
@@ -1,8 +1,9 @@
1
- # encoding: utf-8
1
+
2
2
  require './test/test_helper'
3
3
 
4
4
  class VirustotalAPIURLReportTest < Minitest::Test
5
5
  def setup
6
+ @unscanned_url = 'http://www.unscanned.com'
6
7
  @url = 'http://www.google.com'
7
8
  @api_key = 'testapikey'
8
9
  end
@@ -36,4 +37,20 @@ class VirustotalAPIURLReportTest < Minitest::Test
36
37
  assert vturl_report.scan_id.is_a?(String)
37
38
  end
38
39
  end
40
+
41
+ def test_scan_unscanned_url
42
+ VCR.use_cassette('unscanned_url_report') do
43
+ vturl_report = VirustotalAPI::URLReport.find(@unscanned_url, @api_key)
44
+
45
+ assert vturl_report.report['response_code'].zero?
46
+ end
47
+ end
48
+
49
+ def test_queue_unscanned_url
50
+ VCR.use_cassette('queue_unscanned_url_report') do
51
+ vturl_report = VirustotalAPI::URLReport.find(@unscanned_url, @api_key, 1)
52
+
53
+ assert vturl_report.report['response_code'] == 1
54
+ end
55
+ end
39
56
  end
data/test/version_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+
2
2
  require './test/test_helper'
3
3
 
4
4
  class VirustotalAPIVTReportTest < Minitest::Test
@@ -1,5 +1,5 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+
2
+ lib = File.expand_path('lib', __dir__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'virustotal_api/version'
5
5
 
@@ -18,15 +18,15 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'rest-client'
22
21
  spec.add_dependency 'json'
22
+ spec.add_dependency 'rest-client'
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.7'
25
- spec.add_development_dependency 'rake', '~> 10.0'
24
+ spec.add_development_dependency 'bundler', '~> 1.16'
26
25
  spec.add_development_dependency 'minitest'
27
- spec.add_development_dependency 'vcr'
28
- spec.add_development_dependency 'webmock'
29
26
  spec.add_development_dependency 'pry'
30
- spec.add_development_dependency 'yard', '~> 0.8'
27
+ spec.add_development_dependency 'rake', '~> 12.3'
31
28
  spec.add_development_dependency 'rubocop'
29
+ spec.add_development_dependency 'vcr'
30
+ spec.add_development_dependency 'webmock'
31
+ spec.add_development_dependency 'yard', '~> 0.9'
32
32
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: virustotal_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pwelch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-19 00:00:00.000000000 Z
11
+ date: 2018-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rest-client
14
+ name: json
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: json
28
+ name: rest-client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -44,30 +44,30 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.7'
47
+ version: '1.16'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.7'
54
+ version: '1.16'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: minitest
70
+ name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,21 +81,21 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: vcr
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '12.3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '12.3'
97
97
  - !ruby/object:Gem::Dependency
98
- name: webmock
98
+ name: rubocop
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: pry
112
+ name: vcr
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,33 +123,33 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: yard
126
+ name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: '0.8'
131
+ version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: '0.8'
138
+ version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rubocop
140
+ name: yard
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: '0.9'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: '0.9'
153
153
  description: Gem for VirusTotal.com API
154
154
  email:
155
155
  - paul@pwelch.net
@@ -157,6 +157,9 @@ executables: []
157
157
  extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
+ - ".github/CODE_OF_CONDUCT.md"
161
+ - ".github/CONTRIBUTING.md"
162
+ - ".github/ISSUE_TEMPLATE.md"
160
163
  - ".gitignore"
161
164
  - ".rubocop.yml"
162
165
  - ".travis.yml"
@@ -183,10 +186,12 @@ files:
183
186
  - test/fixtures/domain_report.yml
184
187
  - test/fixtures/ip_report.yml
185
188
  - test/fixtures/null_file
189
+ - test/fixtures/queue_unscanned_url_report.yml
186
190
  - test/fixtures/report.yml
187
191
  - test/fixtures/report_not_found.yml
188
192
  - test/fixtures/request_forbidden.yml
189
193
  - test/fixtures/scan.yml
194
+ - test/fixtures/unscanned_url_report.yml
190
195
  - test/fixtures/url_report.yml
191
196
  - test/ip_report_test.rb
192
197
  - test/test_helper.rb
@@ -214,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
219
  version: '0'
215
220
  requirements: []
216
221
  rubyforge_project:
217
- rubygems_version: 2.5.1
222
+ rubygems_version: 2.7.6
218
223
  signing_key:
219
224
  specification_version: 4
220
225
  summary: Gem for VirusTotal.com API
@@ -227,14 +232,15 @@ test_files:
227
232
  - test/fixtures/domain_report.yml
228
233
  - test/fixtures/ip_report.yml
229
234
  - test/fixtures/null_file
235
+ - test/fixtures/queue_unscanned_url_report.yml
230
236
  - test/fixtures/report.yml
231
237
  - test/fixtures/report_not_found.yml
232
238
  - test/fixtures/request_forbidden.yml
233
239
  - test/fixtures/scan.yml
240
+ - test/fixtures/unscanned_url_report.yml
234
241
  - test/fixtures/url_report.yml
235
242
  - test/ip_report_test.rb
236
243
  - test/test_helper.rb
237
244
  - test/uri_test.rb
238
245
  - test/url_report_test.rb
239
246
  - test/version_test.rb
240
- has_rdoc: