virustotal_api_compat 0.1.7

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.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODE_OF_CONDUCT.md +46 -0
  3. data/.github/CONTRIBUTING.md +7 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. data/.github/pull_request_template.md +11 -0
  7. data/.github/workflows/ruby.yml +46 -0
  8. data/.gitignore +18 -0
  9. data/.rubocop.yml +39 -0
  10. data/CHANGELOG.md +70 -0
  11. data/Gemfile +5 -0
  12. data/LICENSE.txt +22 -0
  13. data/README.md +253 -0
  14. data/Rakefile +25 -0
  15. data/lib/virustotal_api/analysis.rb +16 -0
  16. data/lib/virustotal_api/base.rb +78 -0
  17. data/lib/virustotal_api/domain.rb +18 -0
  18. data/lib/virustotal_api/exceptions.rb +9 -0
  19. data/lib/virustotal_api/file.rb +67 -0
  20. data/lib/virustotal_api/group.rb +18 -0
  21. data/lib/virustotal_api/ip.rb +18 -0
  22. data/lib/virustotal_api/uri.rb +6 -0
  23. data/lib/virustotal_api/url.rb +38 -0
  24. data/lib/virustotal_api/user.rb +18 -0
  25. data/lib/virustotal_api/version.rb +6 -0
  26. data/lib/virustotal_api.rb +11 -0
  27. data/test/analysis_test.rb +26 -0
  28. data/test/base_test.rb +63 -0
  29. data/test/domain_test.rb +27 -0
  30. data/test/exceptions_test.rb +31 -0
  31. data/test/file_test.rb +73 -0
  32. data/test/fixtures/analysis.yml +544 -0
  33. data/test/fixtures/domain.yml +830 -0
  34. data/test/fixtures/domain_bad_request.yml +52 -0
  35. data/test/fixtures/file_analyse.yml +52 -0
  36. data/test/fixtures/file_find.yml +853 -0
  37. data/test/fixtures/file_not_found.yml +52 -0
  38. data/test/fixtures/file_rate_limit.yml +52 -0
  39. data/test/fixtures/file_unauthorized.yml +51 -0
  40. data/test/fixtures/file_upload.yml +54 -0
  41. data/test/fixtures/group_find.yml +216 -0
  42. data/test/fixtures/ip.yml +716 -0
  43. data/test/fixtures/large_file_upload.yml +99 -0
  44. data/test/fixtures/null_file +1 -0
  45. data/test/fixtures/unscanned_url_find.yml +44 -0
  46. data/test/fixtures/url_analyse.yml +52 -0
  47. data/test/fixtures/url_encoding_find.yml +651 -0
  48. data/test/fixtures/url_find.yml +599 -0
  49. data/test/fixtures/user_find.yml +213 -0
  50. data/test/group_test.rb +27 -0
  51. data/test/ip_test.rb +26 -0
  52. data/test/test_helper.rb +11 -0
  53. data/test/uri_test.rb +10 -0
  54. data/test/url_test.rb +47 -0
  55. data/test/user_test.rb +26 -0
  56. data/test/version_test.rb +9 -0
  57. data/virustotal_api.gemspec +33 -0
  58. metadata +287 -0
@@ -0,0 +1,213 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.virustotal.com/api/v3/users/testapikey
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ User-Agent:
13
+ - rest-client/2.1.0 (linux-gnu x86_64) ruby/2.5.1p57
14
+ X-Apikey:
15
+ - testapikey
16
+ Content-Length:
17
+ - '0'
18
+ Content-Type:
19
+ - application/x-www-form-urlencoded
20
+ Accept-Encoding:
21
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
22
+ Host:
23
+ - www.virustotal.com
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Cache-Control:
30
+ - no-cache
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ X-Cloud-Trace-Context:
34
+ - 4ad711d6d44ea44146d4c06cb76589b1
35
+ Date:
36
+ - Mon, 05 Oct 2020 10:19:46 GMT
37
+ Server:
38
+ - Google Frontend
39
+ Content-Length:
40
+ - '5145'
41
+ body:
42
+ encoding: UTF-8
43
+ string: |-
44
+ {
45
+ "data": {
46
+ "attributes": {
47
+ "apikey": "testapikey",
48
+ "email": "granville@okeefehomenick.co",
49
+ "first_name": "Valdo",
50
+ "has_2fa": false,
51
+ "last_login": 1601883978,
52
+ "last_name": "Donati",
53
+ "preferences": {
54
+ "ui": {
55
+ "last_read_notification_date": 1599481553
56
+ }
57
+ },
58
+ "privileges": {
59
+ "cases": {
60
+ "granted": false
61
+ },
62
+ "click_to_accept": {
63
+ "granted": false
64
+ },
65
+ "creditcards": {
66
+ "granted": false
67
+ },
68
+ "dogfooder": {
69
+ "granted": false
70
+ },
71
+ "downloads-tier-1": {
72
+ "granted": false
73
+ },
74
+ "downloads-tier-2": {
75
+ "granted": false
76
+ },
77
+ "file-behaviour-feed": {
78
+ "granted": false
79
+ },
80
+ "file-feed": {
81
+ "granted": false
82
+ },
83
+ "file-feed-without-av-results": {
84
+ "granted": false
85
+ },
86
+ "intelligence": {
87
+ "granted": false
88
+ },
89
+ "intelligence-search-tier-1": {
90
+ "granted": false
91
+ },
92
+ "intelligence-search-tier-2": {
93
+ "granted": false
94
+ },
95
+ "intelligence-search-tier-3": {
96
+ "granted": false
97
+ },
98
+ "monitor": {
99
+ "granted": false
100
+ },
101
+ "monitor-partner": {
102
+ "granted": false
103
+ },
104
+ "private": {
105
+ "granted": false
106
+ },
107
+ "retrohunt-tier-1": {
108
+ "granted": false
109
+ },
110
+ "retrohunt-tier-2": {
111
+ "granted": false
112
+ },
113
+ "retrohunt-tier-3": {
114
+ "granted": false
115
+ },
116
+ "sales-staff": {
117
+ "granted": false
118
+ },
119
+ "staff": {
120
+ "granted": false
121
+ },
122
+ "url-feed": {
123
+ "granted": false
124
+ },
125
+ "vtalerts": {
126
+ "granted": false
127
+ },
128
+ "vtdiff-api": {
129
+ "granted": false
130
+ },
131
+ "vtdiff-ui": {
132
+ "granted": false
133
+ },
134
+ "vtgrep": {
135
+ "granted": false
136
+ },
137
+ "widget": {
138
+ "granted": false
139
+ }
140
+ },
141
+ "profile_phrase": "",
142
+ "quotas": {
143
+ "api_requests_daily": {
144
+ "allowed": 5760,
145
+ "used": 102
146
+ },
147
+ "api_requests_hourly": {
148
+ "allowed": 240,
149
+ "used": 0
150
+ },
151
+ "api_requests_monthly": {
152
+ "allowed": 1000000000,
153
+ "used": 105
154
+ },
155
+ "cases_creation_monthly": {
156
+ "allowed": 20,
157
+ "used": 0
158
+ },
159
+ "intelligence_downloads_monthly": {
160
+ "allowed": 0,
161
+ "used": 0
162
+ },
163
+ "intelligence_graphs_private": {
164
+ "allowed": 0,
165
+ "used": 0
166
+ },
167
+ "intelligence_hunting_rules": {
168
+ "allowed": 0,
169
+ "used": 0
170
+ },
171
+ "intelligence_retrohunt_jobs_monthly": {
172
+ "allowed": 0,
173
+ "used": 0
174
+ },
175
+ "intelligence_searches_monthly": {
176
+ "allowed": 0,
177
+ "used": 0
178
+ },
179
+ "intelligence_vtdiff_creation_monthly": {
180
+ "allowed": 0,
181
+ "used": 0
182
+ },
183
+ "monitor_storage_bytes": {
184
+ "allowed": 0,
185
+ "used": 0
186
+ },
187
+ "monitor_storage_files": {
188
+ "allowed": 0,
189
+ "used": 0
190
+ },
191
+ "monitor_uploaded_bytes": {
192
+ "allowed": 0,
193
+ "used": 0
194
+ },
195
+ "monitor_uploaded_files": {
196
+ "allowed": 0,
197
+ "used": 0
198
+ }
199
+ },
200
+ "reputation": 1,
201
+ "status": "active",
202
+ "user_since": 1512986169
203
+ },
204
+ "id": "granville",
205
+ "links": {
206
+ "self": "https://www.virustotal.com/api/v3/users/granville"
207
+ },
208
+ "type": "user"
209
+ }
210
+ }
211
+ http_version:
212
+ recorded_at: Mon, 05 Oct 2020 10:19:46 GMT
213
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIGroupReportTest < Minitest::Test
6
+ def setup
7
+ @group_id = 'GROUP_us'
8
+ @api_key = 'testapikey'
9
+ end
10
+
11
+ def test_class_exists
12
+ assert VirustotalAPI::Group
13
+ end
14
+
15
+ def test_report_response
16
+ VCR.use_cassette('group_find') do
17
+ vtgroup_report = VirustotalAPI::Group.find(@group_id, @api_key)
18
+
19
+ # Make sure that the JSON was parsed
20
+ assert vtgroup_report.exists?
21
+ assert vtgroup_report.is_a?(VirustotalAPI::Group)
22
+ assert vtgroup_report.report.is_a?(Hash)
23
+ assert vtgroup_report.id.is_a?(String)
24
+ assert vtgroup_report.report_url.is_a?(String)
25
+ end
26
+ end
27
+ end
data/test/ip_test.rb ADDED
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIIPReportTest < Minitest::Test
6
+ def setup
7
+ @ip = '8.8.8.8'
8
+ @api_key = 'testapikey'
9
+ end
10
+
11
+ def test_class_exists
12
+ assert VirustotalAPI::IP
13
+ end
14
+
15
+ def test_report_response
16
+ VCR.use_cassette('ip') do
17
+ vtip_report = VirustotalAPI::IP.find(@ip, @api_key)
18
+
19
+ # Make sure that the JSON was parsed
20
+ assert vtip_report.is_a?(VirustotalAPI::IP)
21
+ assert vtip_report.report.is_a?(Hash)
22
+ assert vtip_report.id.is_a?(String)
23
+ assert vtip_report.report_url.is_a?(String)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './lib/virustotal_api'
4
+ require 'minitest/autorun'
5
+ require 'webmock/minitest'
6
+ require 'vcr'
7
+
8
+ VCR.configure do |c|
9
+ c.cassette_library_dir = 'test/fixtures'
10
+ c.hook_into :webmock
11
+ end
data/test/uri_test.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIVTReportTest < Minitest::Test
6
+ def test_api_base_uri
7
+ assert VirustotalAPI::URI.is_a?(String)
8
+ assert_equal 'https://www.virustotal.com/api/v3', VirustotalAPI::URI
9
+ end
10
+ end
data/test/url_test.rb ADDED
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIURLReportTest < Minitest::Test
6
+ def setup
7
+ @unscanned_url = 'http://www.unscanned.com'
8
+ @url = 'http://www.google.com'
9
+ @api_key = 'testapikey'
10
+ end
11
+
12
+ def test_class_exists
13
+ assert VirustotalAPI::URL
14
+ end
15
+
16
+ def test_report_response
17
+ VCR.use_cassette('url_find') do
18
+ vturl_report = VirustotalAPI::URL.find(@url, @api_key)
19
+
20
+ # Make sure that the JSON was parsed
21
+ assert vturl_report.exists?
22
+ assert vturl_report.is_a?(VirustotalAPI::URL)
23
+ assert vturl_report.report.is_a?(Hash)
24
+ assert vturl_report.id.is_a?(String)
25
+ assert vturl_report.report_url.is_a?(String)
26
+ end
27
+ end
28
+
29
+ def test_scan_unscanned_url
30
+ VCR.use_cassette('unscanned_url_find') do
31
+ vturl_report = VirustotalAPI::URL.find(@unscanned_url, @api_key)
32
+
33
+ assert !vturl_report.exists?
34
+ assert_empty vturl_report.report
35
+ end
36
+ end
37
+
38
+ def test_analyse
39
+ VCR.use_cassette('url_analyse') do
40
+ vturl_analyse = VirustotalAPI::URL.analyse(@url, @api_key)
41
+
42
+ assert vturl_analyse.exists?
43
+ assert vturl_analyse.report.is_a?(Hash)
44
+ assert vturl_analyse.id.is_a?(String)
45
+ end
46
+ end
47
+ end
data/test/user_test.rb ADDED
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIUserReportTest < Minitest::Test
6
+ def setup
7
+ @api_key = 'testapikey'
8
+ end
9
+
10
+ def test_class_exists
11
+ assert VirustotalAPI::User
12
+ end
13
+
14
+ def test_report_response
15
+ VCR.use_cassette('user_find') do
16
+ vtuser_report = VirustotalAPI::User.find(@api_key, @api_key)
17
+
18
+ # Make sure that the JSON was parsed
19
+ assert vtuser_report.exists?
20
+ assert vtuser_report.is_a?(VirustotalAPI::User)
21
+ assert vtuser_report.report.is_a?(Hash)
22
+ assert vtuser_report.id.is_a?(String)
23
+ assert vtuser_report.report_url.is_a?(String)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIVersionTest < Minitest::Test
6
+ def test_version
7
+ assert VirustotalAPI::VERSION.is_a?(String)
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'virustotal_api/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'virustotal_api_compat'
9
+ spec.version = VirustotalAPI::VERSION
10
+ spec.authors = ['pwelch']
11
+ spec.email = ['paul@pwelch.net']
12
+ spec.summary = 'Gem for VirusTotal.com API'
13
+ spec.description = 'Gem for VirusTotal.com API, supporting API V3'
14
+ spec.homepage = 'https://github.com/pwelch/virustotal_api'
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_dependency 'json', '1.8.6'
23
+ spec.add_dependency 'rest-client', '~> 2.1', '>= 2.1.0'
24
+
25
+ spec.add_development_dependency 'bundler', '~> 2.1'
26
+ spec.add_development_dependency 'minitest', '~> 5.14', '>= 5.14.1'
27
+ spec.add_development_dependency 'pry', '~> 0.14'
28
+ spec.add_development_dependency 'rake', '~> 13.0'
29
+ spec.add_development_dependency 'rubocop', '~> 0.91'
30
+ spec.add_development_dependency 'vcr', '~> 6.0', '>= 6.0.0'
31
+ spec.add_development_dependency 'webmock', '~> 3.9'
32
+ spec.add_development_dependency 'yard', '~> 0.9'
33
+ end
metadata ADDED
@@ -0,0 +1,287 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: virustotal_api_compat
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.7
5
+ platform: ruby
6
+ authors:
7
+ - pwelch
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-10-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - '='
17
+ - !ruby/object:Gem::Version
18
+ version: 1.8.6
19
+ name: json
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.8.6
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.1'
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: 2.1.0
36
+ name: rest-client
37
+ prerelease: false
38
+ type: :runtime
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '2.1'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 2.1.0
47
+ - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '2.1'
53
+ name: bundler
54
+ prerelease: false
55
+ type: :development
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.1'
61
+ - !ruby/object:Gem::Dependency
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '5.14'
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 5.14.1
70
+ name: minitest
71
+ prerelease: false
72
+ type: :development
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '5.14'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 5.14.1
81
+ - !ruby/object:Gem::Dependency
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '0.14'
87
+ name: pry
88
+ prerelease: false
89
+ type: :development
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '0.14'
95
+ - !ruby/object:Gem::Dependency
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '13.0'
101
+ name: rake
102
+ prerelease: false
103
+ type: :development
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '13.0'
109
+ - !ruby/object:Gem::Dependency
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '0.91'
115
+ name: rubocop
116
+ prerelease: false
117
+ type: :development
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0.91'
123
+ - !ruby/object:Gem::Dependency
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '6.0'
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 6.0.0
132
+ name: vcr
133
+ prerelease: false
134
+ type: :development
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '6.0'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 6.0.0
143
+ - !ruby/object:Gem::Dependency
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '3.9'
149
+ name: webmock
150
+ prerelease: false
151
+ type: :development
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: '3.9'
157
+ - !ruby/object:Gem::Dependency
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '0.9'
163
+ name: yard
164
+ prerelease: false
165
+ type: :development
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '0.9'
171
+ description: Gem for VirusTotal.com API, supporting API V3
172
+ email:
173
+ - paul@pwelch.net
174
+ executables: []
175
+ extensions: []
176
+ extra_rdoc_files: []
177
+ files:
178
+ - ".github/CODE_OF_CONDUCT.md"
179
+ - ".github/CONTRIBUTING.md"
180
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
181
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
182
+ - ".github/pull_request_template.md"
183
+ - ".github/workflows/ruby.yml"
184
+ - ".gitignore"
185
+ - ".rubocop.yml"
186
+ - CHANGELOG.md
187
+ - Gemfile
188
+ - LICENSE.txt
189
+ - README.md
190
+ - Rakefile
191
+ - lib/virustotal_api.rb
192
+ - lib/virustotal_api/analysis.rb
193
+ - lib/virustotal_api/base.rb
194
+ - lib/virustotal_api/domain.rb
195
+ - lib/virustotal_api/exceptions.rb
196
+ - lib/virustotal_api/file.rb
197
+ - lib/virustotal_api/group.rb
198
+ - lib/virustotal_api/ip.rb
199
+ - lib/virustotal_api/uri.rb
200
+ - lib/virustotal_api/url.rb
201
+ - lib/virustotal_api/user.rb
202
+ - lib/virustotal_api/version.rb
203
+ - test/analysis_test.rb
204
+ - test/base_test.rb
205
+ - test/domain_test.rb
206
+ - test/exceptions_test.rb
207
+ - test/file_test.rb
208
+ - test/fixtures/analysis.yml
209
+ - test/fixtures/domain.yml
210
+ - test/fixtures/domain_bad_request.yml
211
+ - test/fixtures/file_analyse.yml
212
+ - test/fixtures/file_find.yml
213
+ - test/fixtures/file_not_found.yml
214
+ - test/fixtures/file_rate_limit.yml
215
+ - test/fixtures/file_unauthorized.yml
216
+ - test/fixtures/file_upload.yml
217
+ - test/fixtures/group_find.yml
218
+ - test/fixtures/ip.yml
219
+ - test/fixtures/large_file_upload.yml
220
+ - test/fixtures/null_file
221
+ - test/fixtures/unscanned_url_find.yml
222
+ - test/fixtures/url_analyse.yml
223
+ - test/fixtures/url_encoding_find.yml
224
+ - test/fixtures/url_find.yml
225
+ - test/fixtures/user_find.yml
226
+ - test/group_test.rb
227
+ - test/ip_test.rb
228
+ - test/test_helper.rb
229
+ - test/uri_test.rb
230
+ - test/url_test.rb
231
+ - test/user_test.rb
232
+ - test/version_test.rb
233
+ - virustotal_api.gemspec
234
+ homepage: https://github.com/pwelch/virustotal_api
235
+ licenses:
236
+ - MIT
237
+ metadata: {}
238
+ post_install_message:
239
+ rdoc_options: []
240
+ require_paths:
241
+ - lib
242
+ required_ruby_version: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ required_rubygems_version: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ requirements: []
253
+ rubygems_version: 3.2.29
254
+ signing_key:
255
+ specification_version: 4
256
+ summary: Gem for VirusTotal.com API
257
+ test_files:
258
+ - test/analysis_test.rb
259
+ - test/base_test.rb
260
+ - test/domain_test.rb
261
+ - test/exceptions_test.rb
262
+ - test/file_test.rb
263
+ - test/fixtures/analysis.yml
264
+ - test/fixtures/domain.yml
265
+ - test/fixtures/domain_bad_request.yml
266
+ - test/fixtures/file_analyse.yml
267
+ - test/fixtures/file_find.yml
268
+ - test/fixtures/file_not_found.yml
269
+ - test/fixtures/file_rate_limit.yml
270
+ - test/fixtures/file_unauthorized.yml
271
+ - test/fixtures/file_upload.yml
272
+ - test/fixtures/group_find.yml
273
+ - test/fixtures/ip.yml
274
+ - test/fixtures/large_file_upload.yml
275
+ - test/fixtures/null_file
276
+ - test/fixtures/unscanned_url_find.yml
277
+ - test/fixtures/url_analyse.yml
278
+ - test/fixtures/url_encoding_find.yml
279
+ - test/fixtures/url_find.yml
280
+ - test/fixtures/user_find.yml
281
+ - test/group_test.rb
282
+ - test/ip_test.rb
283
+ - test/test_helper.rb
284
+ - test/uri_test.rb
285
+ - test/url_test.rb
286
+ - test/user_test.rb
287
+ - test/version_test.rb