uirusu 1.0.2 → 1.1.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
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