uirusu 1.0.2 → 1.1.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
2
  SHA1:
3
- metadata.gz: 0d8bd0db705cc4042aab3420b2cfca3d78485313
4
- data.tar.gz: f4650d576d718833039845d83eb5ccebc4a7ef46
3
+ metadata.gz: 49e3532797b72c0f145b1f5f36a80acad2db42cc
4
+ data.tar.gz: 48a2b8320da1bef6327f98257f77103742aeff91
5
5
  SHA512:
6
- metadata.gz: 89be7b9bd3c0908e4f195dc1c2cbb47d87424b5e21000fc5fbe3859c87dbcd95e621aa70276f731112903216c401e23c96a67a034f94c735a29a759bf140034d
7
- data.tar.gz: 8c73cd4a596243fa5d0a2ed40378d9bca99df2bf29dbe2708336915f7d571a2138154db0ddee6a44489bae7ceab54d1633751d7fd7a5c99676416191c842e95b
6
+ metadata.gz: 96599069413f823972277e52f97c2fa8f68f2ed90f84d7242f7751b8836d994c35d9b25cc7ee1f11732b6b72d8107b189a50b99aefa99a8d0e4696a2134123fd
7
+ data.tar.gz: b70a141bc7d943865d18f97e56b930efe000a178a0ddb4f171920d0123e7e29cb9a8482d53ba7e58c15c89bd9b2aedf17781ea501015dfb21b46dc9bbe5c6fd5
data/Gemfile CHANGED
@@ -1,8 +1,2 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec
3
-
4
- #gem 'json', '~> 1.8.3'
5
- #gem 'rest-client', '~> 1.6.9'
6
-
7
- #gem 'rake', "~> 10.4.2"
8
- #gem 'minitest', '~> 5.0'
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2016 Arxopia LLC.
1
+ Copyright (c) 2010-2017 Jacob Hammack.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -1,12 +1,12 @@
1
- # uirusu [![Gem Version](https://badge.fury.io/rb/uirusu.png)](http://badge.fury.io/rb/uirusu) [![Build Status](https://travis-ci.org/arxopia/uirusu.svg)](https://travis-ci.org/arxopia/uirusu) [![Code Climate](https://codeclimate.com/github/arxopia/uirusu/badges/gpa.svg)](https://codeclimate.com/github/arxopia/uirusu) [![Inline docs](http://inch-ci.org/github/arxopia/uirusu.svg?branch=master)](http://inch-ci.org/github/arxopia/uirusu)
1
+ # uirusu [![Gem Version](https://badge.fury.io/rb/uirusu.png)](http://badge.fury.io/rb/uirusu) [![Build Status](https://travis-ci.org/hammackj/uirusu.svg)](https://travis-ci.org/hammackj/uirusu) [![Code Climate](https://codeclimate.com/github/hammackj/uirusu/badges/gpa.svg)](https://codeclimate.com/github/hammackj/uirusu) [![Inline docs](http://inch-ci.org/github/hammackj/uirusu.svg?branch=master)](http://inch-ci.org/github/hammackj/uirusu)
2
2
 
3
3
  uirusu is an [Virustotal](http://www.virustotal.com) automation and convenience tool for hash, file and URL submission.
4
4
 
5
- The current version is 1.0.2.
5
+ The current version is 1.1.0.
6
6
 
7
7
  ## Requirements
8
8
 
9
- * ruby 2.0+
9
+ * ruby 2.4+
10
10
  * json
11
11
  * rest-client
12
12
  * **public api key from [virustotal.com](http://www.virustotal.com)**
@@ -120,4 +120,4 @@ Uirusu::VTIPAddr.query_report(API_KEY, ip)
120
120
  Uirusu is licensed under the MIT license see the `LICENSE` file for the full license.
121
121
 
122
122
  ## Contact
123
- You can reach the team at jacob.hammack[@]arxopia[dot]com, http://www.arxopia.com, or contact hammackj on IRC @ irc.freenode.net, #risu
123
+ You can reach the team at jacob.hammack[@]hammackj[dot]com, http://www.hammackj.com, or contact hammackj
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
data/bin/uirusu CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # Copyright (c) 2010-2016 Arxopia LLC.
3
+ # Copyright (c) 2010-2017 Jacob Hammack.
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,5 +1,12 @@
1
1
  # News
2
2
 
3
+ # 1.1.0 (March 1, 2017)
4
+ - **Moved Github repository from http://github.com/arxopia/uirusu to http://github.com/hammackj/uirusu**
5
+ - Fixed File query report
6
+ - Fixed Url API
7
+ - Updated copyrights to 2017
8
+ - Fixed unit test for vturl
9
+
3
10
  # 1.0.2 (September 21, 2016)
4
11
  - Added Private API support [@joshporter1]
5
12
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -36,15 +36,22 @@ module Uirusu
36
36
  raise "Invalid API Key"
37
37
  end
38
38
 
39
+ # TODO get options to here.
40
+ #resource = RestClient::Resource.new(url, :verify_ssl=>false)
41
+ resource = RestClient::Resource.new(url)
42
+
39
43
  begin
40
44
  if post
41
- response = RestClient.post url, **params
45
+ #response = RestClient.post url, **params
46
+ response = resource.post(params)
42
47
  else
43
- response = RestClient.get url, params: params
48
+ #response = RestClient.get url, params: params
49
+ response = resource.get(params)
44
50
  end
45
51
  rescue => e
46
52
  response = e.response
47
53
  end
54
+
48
55
  self.parse_response response
49
56
  end
50
57
 
@@ -54,24 +61,29 @@ module Uirusu
54
61
  #
55
62
  # @return [JSON] Parsed response
56
63
  def self.parse_response(response)
57
- case response.code
58
- when 429, 204
59
- raise "Virustotal limit reached. Try again later."
60
- when 403
61
- raise "Invalid privileges, please check your API key."
62
- when 200
63
- # attempt to parse it as json, otherwise return the raw response
64
- # network_traffic and download return non-JSON data
65
- begin
66
- JSON.parse(response)
67
- rescue
68
- response
69
- end
70
- when 500
71
- nil
72
- else
73
- raise "Unknown Server error. (#{response.code})"
64
+ puts "Parse Response"
65
+ begin
66
+ case response.code
67
+ when 429, 204
68
+ raise "Virustotal limit reached. Try again later."
69
+ when 403
70
+ raise "Invalid privileges, please check your API key."
71
+ when 200
72
+ # attempt to parse it as json, otherwise return the raw response
73
+ # network_traffic and download return non-JSON data
74
+ begin
75
+ JSON.parse(response)
76
+ rescue
77
+ response
78
+ end
79
+ when 500
80
+ nil
81
+ else
82
+ raise "Unknown Server error. (#{response.code})"
83
+ end
74
84
  end
85
+ rescue => e
86
+ puts e.message
75
87
  end
76
88
  end
77
89
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -153,7 +153,7 @@ module Uirusu
153
153
 
154
154
  # Create config skeleton
155
155
  #
156
- def create_config (file=CONFIG_FILE)
156
+ def create_config file=CONFIG_FILE
157
157
  f = File.expand_path(file)
158
158
 
159
159
  if File.exists?(f) == false
@@ -168,7 +168,7 @@ module Uirusu
168
168
 
169
169
  # Loads the .uirusu config file for the api key
170
170
  #
171
- def load_config (file=CONFIG_FILE)
171
+ def load_config file=CONFIG_FILE
172
172
 
173
173
  @config = nil
174
174
 
@@ -196,6 +196,20 @@ module Uirusu
196
196
  end
197
197
 
198
198
  @options[:timeout] = @config['virustotal']['timeout'] if @config['virustotal']['timeout'] != nil
199
+ @options["proxy"] = @config['virustotal']['proxy'] if @config['virustotal']['proxy'] != nil
200
+ @options["ssl_ca_cert"] = @config['virustotal']['ssl_ca_cert'] if @config['virustotal']['ssl_ca_cert'] != nil
201
+ @options["verify_ssl"] = @config['virustotal']['verify_ssl'] if @config['virustotal']['verify_ssl'] != nil
202
+
203
+ process_ssl_proxy
204
+ end
205
+
206
+ # Processes SSL and Proxy Related Options
207
+ #
208
+ def process_ssl_proxy
209
+ if @options['proxy'] != nil
210
+ puts "[DEBUG] Proxy enabled: #{@options['proxy']}"
211
+ RestClient.proxy = @options['proxy']
212
+ end
199
213
  end
200
214
 
201
215
  # Submits a file/url and waits for analysis to be complete and returns the results.
@@ -277,7 +291,7 @@ module Uirusu
277
291
  end
278
292
  end
279
293
 
280
- #
294
+ # Main entry point for uirusu
281
295
  #
282
296
  def main(args)
283
297
  parse_options(args)
@@ -293,10 +307,6 @@ module Uirusu
293
307
  output_method = :to_xml
294
308
  end
295
309
 
296
- if @options['proxy'] != nil
297
- RestClient.proxy = @options['proxy']
298
- end
299
-
300
310
  if @options[:directory] != nil
301
311
  hashes = Uirusu::Scanner.scan(@options[:directory])
302
312
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -29,7 +29,7 @@ module Uirusu
29
29
  # Recursively lists all files in a directory
30
30
  # calling process_file on each file
31
31
  #
32
- def Scanner.recurse (file_name)
32
+ def Scanner.recurse file_name
33
33
  Dir.new("#{file_name}").each do |file|
34
34
  next if file.match(/^\.+/)
35
35
  path = "#{file_name}/#{file}"
@@ -44,7 +44,7 @@ module Uirusu
44
44
 
45
45
  # Processes a file, hashing it with MD5
46
46
  #
47
- def Scanner.process_file (file)
47
+ def Scanner.process_file file
48
48
  begin
49
49
  digest = Digest::MD5.hexdigest(File.read(file))
50
50
  @hash_list << digest
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -20,9 +20,9 @@
20
20
 
21
21
  module Uirusu
22
22
  APP_NAME = "uirusu"
23
- VERSION = "1.0.2"
24
- HOME_PAGE = "http://arxopia.github.io/uirusu"
23
+ VERSION = "1.1.0"
24
+ HOME_PAGE = "http://hammackj.github.io/uirusu"
25
25
  AUTHOR = "Jacob Hammack"
26
- EMAIL = "jacob.hammack@arxopia.com"
27
- GITHUB = "http://github.com/arxopia/uirusu"
26
+ EMAIL = "jacob.hammack@hammackj.com"
27
+ GITHUB = "http://github.com/hammackj/uirusu"
28
28
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -23,9 +23,9 @@ module Uirusu
23
23
  # Module for Accessing the File scan and report functionalities of the
24
24
  # Virustotal.com public API
25
25
  module VTFile
26
- SCAN_URL = Uirusu::VT_API + "/file/scan"
26
+ SCAN_URL = Uirusu::VT_API + "/file/scan"
27
27
  SCAN_UPLOAD_URL = Uirusu::VT_API + "/file/scan/upload_url"
28
- RESCAN_URL = Uirusu::VT_API + "/file/rescan"
28
+ RESCAN_URL = Uirusu::VT_API + "/file/rescan"
29
29
  RESCAN_DELETE_URL = Uirusu::VT_API + "/file/rescan/delete"
30
30
  REPORT_URL = Uirusu::VT_API + "/file/report"
31
31
  BEHAVIOUR_URL = Uirusu::VT_API + "/file/behaviour"
@@ -53,28 +53,28 @@ module Uirusu
53
53
  apikey: api_key,
54
54
  resource: resource
55
55
  }
56
- Uirusu.query_api REPORT_URL, params.merge!(args)
56
+ Uirusu.query_api REPORT_URL, params.merge!(args), true
57
57
  end
58
58
 
59
- # Submits a file to Virustotal.com for analysis
60
- #
61
- # @param api_key Virustotal.com API key
62
- # @param path_to_file Path to file on disk to upload
63
- # @params **args named arguments for optional parameters - https://www.virustotal.com/en/documentation/private-api/#scan
64
- #
65
- # @return [JSON] Parsed response
66
- def self.scan_file(api_key, path_to_file, **args)
67
- if !File.exists?(path_to_file)
68
- raise Errno::ENOENT
69
- end
70
-
71
- params = {
72
- apikey: api_key,
73
- filename: path_to_file,
74
- file: File.new(path_to_file, 'rb')
75
- }
76
- Uirusu.query_api SCAN_URL, params.merge!(args), true
77
- end
59
+ # Submits a file to Virustotal.com for analysis
60
+ #
61
+ # @param api_key Virustotal.com API key
62
+ # @param path_to_file Path to file on disk to upload
63
+ # @params **args named arguments for optional parameters - https://www.virustotal.com/en/documentation/private-api/#scan
64
+ #
65
+ # @return [JSON] Parsed response
66
+ def self.scan_file(api_key, path_to_file, **args)
67
+ if !File.exists?(path_to_file)
68
+ raise Errno::ENOENT
69
+ end
70
+
71
+ params = {
72
+ apikey: api_key,
73
+ filename: path_to_file,
74
+ file: File.new(path_to_file, 'rb')
75
+ }
76
+ Uirusu.query_api SCAN_URL, params.merge!(args), true
77
+ end
78
78
 
79
79
  # Retrieves a custom upload URL for files larger than 32MB
80
80
  #
@@ -82,31 +82,30 @@ module Uirusu
82
82
  #
83
83
  # @return [JSON] Parsed response
84
84
  def self.scan_upload_url(api_key)
85
- params = {
85
+ params = {
86
86
  apikey: api_key
87
87
  }
88
88
  Uirusu.query_api SCAN_UPLOAD_URL, params
89
89
  end
90
90
 
91
- # Requests an existing file to be rescanned.
92
- #
93
- # @param api_key Virustotal.com API key
94
- # @param resource MD5/sha1/sha256/scan_id to rescan
95
- # @params **args named arguments for optional parameters - https://www.virustotal.com/en/documentation/private-api/#rescan
96
- #
97
- # @return [JSON] Parsed response
98
- def self.rescan_file(api_key, resource, **args)
99
- if resource == nil
100
- raise "Invalid resource, must be md5/sha1/sha256/scan_id"
101
- end
102
-
103
- params = {
104
- apikey: api_key,
105
- resource: resource
106
- }
107
-
108
- Uirusu.query_api RESCAN_URL, params.merge!(args), true
109
- end
91
+ # Requests an existing file to be rescanned.
92
+ #
93
+ # @param api_key Virustotal.com API key
94
+ # @param resource MD5/sha1/sha256/scan_id to rescan
95
+ # @params **args named arguments for optional parameters - https://www.virustotal.com/en/documentation/private-api/#rescan
96
+ #
97
+ # @return [JSON] Parsed response
98
+ def self.rescan_file(api_key, resource, **args)
99
+ if resource == nil
100
+ raise "Invalid resource, must be md5/sha1/sha256/scan_id"
101
+ end
102
+
103
+ params = {
104
+ apikey: api_key,
105
+ resource: resource
106
+ }
107
+ Uirusu.query_api RESCAN_URL, params.merge!(args), true
108
+ end
110
109
 
111
110
  # Deletes a scheduled rescan request.
112
111
  #
@@ -119,7 +118,7 @@ module Uirusu
119
118
  raise "Invalid resource, must be md5/sha1/sha256/scan_id"
120
119
  end
121
120
 
122
- params = {
121
+ params = {
123
122
  apikey: api_key,
124
123
  resource: resource
125
124
  }
@@ -236,6 +235,6 @@ module Uirusu
236
235
  # @return [JSON] Parsed response
237
236
  def self.false_positives(api_key, limit=100)
238
237
  raise "#false_positives not yet implemented. This API is only available to antivirus vendors participating in VirusTotal."
239
- end
238
+ end
240
239
  end
241
240
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2016 Arxopia LLC.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -31,16 +31,17 @@ module Uirusu
31
31
  # @param resource url to submit
32
32
  #
33
33
  # @return [JSON] Parsed response
34
- def self.scan_url(api_key, resource)
34
+ def self.scan_url api_key, resource
35
35
  if resource == nil
36
36
  raise "Invalid resource, must be a valid url"
37
37
  end
38
38
 
39
39
  params = {
40
40
  apikey: api_key,
41
- resource: resource
41
+ url: resource
42
42
  }
43
- Uirusu.query_api SCAN_URL, params
43
+
44
+ Uirusu.query_api SCAN_URL, params, true
44
45
  end
45
46
 
46
47
  # Searches reports by URL from Virustotal.com
@@ -49,7 +50,7 @@ module Uirusu
49
50
  # @param resource url to search
50
51
  #
51
52
  # @return [JSON] Parsed response
52
- def self.query_report(api_key, resource, **args)
53
+ def self.query_report api_key, resource, **args
53
54
  if resource == nil
54
55
  raise "Invalid resource, must be a valid url"
55
56
  end
@@ -58,7 +59,8 @@ module Uirusu
58
59
  apikey: api_key,
59
60
  resource: resource
60
61
  }
61
- Uirusu.query_api REPORT_URL, params.merge!(args)
62
+
63
+ Uirusu.query_api REPORT_URL, params.merge!(args), true
62
64
  end
63
65
 
64
66
  # Searches reports by URL from Virustotal.com
@@ -1,28 +1,23 @@
1
- # Copyright (c) 2012-2016 Arxopia LLC.
2
- # All rights reserved.
1
+ # Copyright (c) 2010-2017 Jacob Hammack.
3
2
  #
4
- # Redistribution and use in source and binary forms, with or without
5
- # modification, are permitted provided that the following conditions are met:
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
6
9
  #
7
- # * Redistributions of source code must retain the above copyright
8
- # notice, this list of conditions and the following disclaimer.
9
- # * Redistributions in binary form must reproduce the above copyright
10
- # notice, this list of conditions and the following disclaimer in the
11
- # documentation and/or other materials provided with the distribution.
12
- # * Neither the name of the Arxopia LLC nor the names of its contributors
13
- # may be used to endorse or promote products derived from this software
14
- # without specific prior written permission.
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
15
12
  #
16
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
- # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
- # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
- # DISCLAIMED. IN NO EVENT SHALL ARXOPIA LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
20
- # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22
- # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23
- # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
24
- # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
25
- # OF THE POSSIBILITY OF SUCH DAMAGE.
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
26
21
 
27
22
  base = __FILE__
28
23
  $:.unshift(File.join(File.dirname(base), 'lib'))
@@ -48,11 +43,11 @@ Gem::Specification.new do |s|
48
43
  s.has_rdoc = 'yard'
49
44
  s.extra_rdoc_files = ["README.markdown", "LICENSE", "docs/NEWS.markdown", "docs/TODO.markdown"]
50
45
 
51
- s.add_runtime_dependency 'rake', '~> 11.2', '>= 11.2.2'
52
- s.add_runtime_dependency 'json', '~> 1.8', '>= 1.8.3'
53
- s.add_runtime_dependency 'rest-client', '~> 1.8', '>= 1.8.0'
46
+ s.add_runtime_dependency 'rake', '~> 12.0', '>= 12.0.0'
47
+ s.add_runtime_dependency 'json', '~> 2.0', '>= 2.0.3'
48
+ s.add_runtime_dependency 'rest-client', '~> 2.0', '>= 2.0.0'
54
49
 
55
50
  s.add_development_dependency 'yard', '~> 0.8', '>= 0.8.7.6'
56
- s.add_development_dependency 'minitest', '~> 5.0', '>= 5.9'
51
+ s.add_development_dependency 'minitest', '~> 5.0', '>= 5.10.1'
57
52
  s.add_development_dependency 'test-unit', '~> 3.2', ">= 3.2"
58
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uirusu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Hammack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-21 00:00:00.000000000 Z
11
+ date: 2017-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -16,60 +16,60 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '11.2'
19
+ version: '12.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 11.2.2
22
+ version: 12.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '11.2'
29
+ version: '12.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 11.2.2
32
+ version: 12.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: json
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.8'
39
+ version: '2.0'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.8.3
42
+ version: 2.0.3
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '1.8'
49
+ version: '2.0'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 1.8.3
52
+ version: 2.0.3
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rest-client
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '1.8'
59
+ version: '2.0'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 1.8.0
62
+ version: 2.0.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '1.8'
69
+ version: '2.0'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 1.8.0
72
+ version: 2.0.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: yard
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: '5.0'
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: '5.9'
102
+ version: 5.10.1
103
103
  type: :development
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '5.0'
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: '5.9'
112
+ version: 5.10.1
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: test-unit
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +131,7 @@ dependencies:
131
131
  - !ruby/object:Gem::Version
132
132
  version: '3.2'
133
133
  description: uirusu is tool and REST library for interacting with Virustotal.org
134
- email: jacob.hammack@arxopia.com
134
+ email: jacob.hammack@hammackj.com
135
135
  executables:
136
136
  - uirusu
137
137
  extensions: []
@@ -142,7 +142,6 @@ extra_rdoc_files:
142
142
  - docs/TODO.markdown
143
143
  files:
144
144
  - Gemfile
145
- - Gemfile.lock
146
145
  - LICENSE
147
146
  - README.markdown
148
147
  - Rakefile
@@ -160,7 +159,7 @@ files:
160
159
  - lib/uirusu/vtresult.rb
161
160
  - lib/uirusu/vturl.rb
162
161
  - uirusu.gemspec
163
- homepage: http://arxopia.github.io/uirusu
162
+ homepage: http://hammackj.github.io/uirusu
164
163
  licenses:
165
164
  - MIT
166
165
  metadata: {}
@@ -180,9 +179,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
179
  version: '0'
181
180
  requirements: []
182
181
  rubyforge_project:
183
- rubygems_version: 2.6.6
182
+ rubygems_version: 2.6.8
184
183
  signing_key:
185
184
  specification_version: 4
186
185
  summary: uirusu
187
186
  test_files: []
188
- has_rdoc: yard
@@ -1,41 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- uirusu (1.0.1)
5
- json (~> 1.8, >= 1.8.3)
6
- rest-client (~> 1.8, >= 1.8.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- domain_name (0.5.20160615)
12
- unf (>= 0.0.5, < 1.0.0)
13
- http-cookie (1.0.2)
14
- domain_name (~> 0.5)
15
- json (1.8.3)
16
- mime-types (2.99.2)
17
- minitest (5.9.0)
18
- netrc (0.11.0)
19
- power_assert (0.3.0)
20
- rest-client (1.8.0)
21
- http-cookie (>= 1.0.2, < 2.0)
22
- mime-types (>= 1.16, < 3.0)
23
- netrc (~> 0.7)
24
- test-unit (3.2.0)
25
- power_assert
26
- unf (0.1.4)
27
- unf_ext
28
- unf_ext (0.0.7.2)
29
- yard (0.8.7.6)
30
-
31
- PLATFORMS
32
- ruby
33
-
34
- DEPENDENCIES
35
- minitest (~> 5.0, >= 5.9)
36
- test-unit (~> 3.2, >= 3.2)
37
- uirusu!
38
- yard (~> 0.8, >= 0.8.7.6)
39
-
40
- BUNDLED WITH
41
- 1.12.5