virustotal_api_compat 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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