ruby-development-toolbox 1.3.2 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -1
- data/Gemfile.lock +2 -1
- data/README.md +60 -0
- data/Rakefile +3 -2
- data/VERSION +1 -1
- data/lib/toolbox/array.rb +8 -8
- data/lib/toolbox/http.rb +208 -0
- data/ruby-development-toolbox.gemspec +12 -7
- data/test/test_toolbox_http.rb +18 -0
- metadata +21 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5617c949afadb92dd7a3acb8c5505e5eb02c8a52
|
4
|
+
data.tar.gz: 29d5d156a1733866e01b40000c3ea4516c4d31ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 192122294fbc818dd832ad27cd653b17e723a076a1971bace2bccb520fbb9f70834415a3137bd2b53d67ed96b44468a8357282d32112291739d62f286bfddb0a
|
7
|
+
data.tar.gz: 8ddbed2b82ccea569b2373364e33010dae8d6c6732af39a6f68564e0d6fb6ef6b6118620360eed032e13bcab04ed95c3a7bd28c4caddb7266923f26b31e1800c
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -38,6 +38,66 @@ This is to support operations like the following:
|
|
38
38
|
|
39
39
|
The projects homepage can be found [here](https://github.com/gradeawarrior/ruby-development-toolbox). You can also refer to the [Rubydoc YARD Server](http://rubydoc.info/github/gradeawarrior/ruby-development-toolbox/frames)
|
40
40
|
|
41
|
+
In summary, the following modules are available currently in this gem:
|
42
|
+
|
43
|
+
### 1. toolbox/array
|
44
|
+
|
45
|
+
This is to implement equivalence check for arrays. In the context of arrays, we use =~ as a means of checking if array1 is contained in array2; or if object is contained in array1
|
46
|
+
|
47
|
+
### 2. toolbox/boolean
|
48
|
+
|
49
|
+
The main application of the Boolean module is to support reading boolean values from a String (e.g. while reading a configuration value) and having the ability to convert it back to a boolean true/false for easier evaluation in your Ruby code
|
50
|
+
|
51
|
+
### 3. toolbox/gem_specification
|
52
|
+
|
53
|
+
Extends the functionality of a Gem::Specification to be able to retrieve the latest version of gems currently on your system.
|
54
|
+
|
55
|
+
### 4. toolbox/hash_diff
|
56
|
+
|
57
|
+
Extends the functionality of a Hash to be able to perform (i) diff and (ii) similarity operations. For implementation details, see the Hash class for the extended functions
|
58
|
+
|
59
|
+
### 5. toolbox/http
|
60
|
+
|
61
|
+
A simple testing client based on the Perl version found in: [QA-Perl-Lib.git](https://github.com/gradeawarrior/QA-Perl-Lib/blob/master/QA/Test/WebService.pm)
|
62
|
+
|
63
|
+
An example usage would be the following:
|
64
|
+
|
65
|
+
require 'toolbox/http'
|
66
|
+
|
67
|
+
response = Toolbox::Http.request(:method => 'GET', :url => 'http://www.google.com')
|
68
|
+
if response.code == 200.to_s
|
69
|
+
puts "Yay! It worked!"
|
70
|
+
else
|
71
|
+
puts "Boo! Something broke!" unless response.code == 200.to_s
|
72
|
+
end
|
73
|
+
|
74
|
+
### 6. toolbox/integer
|
75
|
+
|
76
|
+
Extends the functionality of String to support checking if a String can be converted to an Integer
|
77
|
+
|
78
|
+
require 'toolbox/integer'
|
79
|
+
|
80
|
+
['-1', '0', '1', '1.0', 'one', '1 too many'].each do |test|
|
81
|
+
puts "This can be converted to an Integer" if test.is_i?
|
82
|
+
puts "This cannot be converted to an Integer" unless test.is_i?
|
83
|
+
end
|
84
|
+
|
85
|
+
### 7. toolbox/json
|
86
|
+
|
87
|
+
Extends the functionality of String to support pretty_printing json. This is really a natural extension of the basic String type to support JSON.pretty_generate(string).
|
88
|
+
|
89
|
+
### 8. toolbox/uuid
|
90
|
+
|
91
|
+
A generic UUID class:
|
92
|
+
|
93
|
+
$ irb
|
94
|
+
require 'toolbox/uuid'
|
95
|
+
=> true
|
96
|
+
UUID.generate
|
97
|
+
=> "0a391631-22ba-40ea-af2e-65a64de4a42b"
|
98
|
+
UUID.generate
|
99
|
+
=> "092516ba-a2f4-45cf-9e1d-c5e63342aaa4"
|
100
|
+
|
41
101
|
# Development
|
42
102
|
|
43
103
|
The project is built by [jeweler](https://github.com/technicalpickles/jeweler). See the project's page for more details about how to manage this gem. However, I will list out quick guidance on a typical release.
|
data/Rakefile
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'bundler'
|
5
|
+
require 'rake'
|
6
|
+
require 'jeweler'
|
7
|
+
|
5
8
|
begin
|
6
9
|
Bundler.setup(:default, :development)
|
7
10
|
rescue Bundler::BundlerError => e
|
@@ -9,9 +12,7 @@ rescue Bundler::BundlerError => e
|
|
9
12
|
$stderr.puts "Run `bundle install` to install missing gems"
|
10
13
|
exit e.status_code
|
11
14
|
end
|
12
|
-
require 'rake'
|
13
15
|
|
14
|
-
require 'jeweler'
|
15
16
|
Jeweler::Tasks.new do |gem|
|
16
17
|
# gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
|
17
18
|
gem.name = "ruby-development-toolbox"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.4.0
|
data/lib/toolbox/array.rb
CHANGED
@@ -23,17 +23,17 @@ module Toolbox
|
|
23
23
|
# we use =~ as a means of checking if array1 is contained in array2; or if
|
24
24
|
# object is contained in array1
|
25
25
|
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
26
|
+
# sample_array = [1, 2, 3]
|
27
|
+
# puts sample_array =~ 3 ## This prints true
|
28
|
+
# puts sample_array =~ 4 ## This prints false
|
29
29
|
#
|
30
30
|
# The other way is the following:
|
31
31
|
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
32
|
+
# sample_array1 = [1, 2, 3]
|
33
|
+
# sample_array2 = [1, 2, 3, 4]
|
34
|
+
#
|
35
|
+
# puts sample_array2 =~ sample_array1 ## This prints true, because everything in array1 is in array2
|
36
|
+
# puts sample_array1 =~ sample_array2 ## This prints false, because not everything in array2 is in array1
|
37
37
|
#
|
38
38
|
module Array
|
39
39
|
end
|
data/lib/toolbox/http.rb
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'toolbox/boolean'
|
3
|
+
require 'toolbox/json'
|
4
|
+
require 'uri'
|
5
|
+
|
6
|
+
begin
|
7
|
+
$SSL_AVAILABLE = true
|
8
|
+
require 'net/https'
|
9
|
+
rescue Exception
|
10
|
+
$SSL_AVAILABLE = false
|
11
|
+
end
|
12
|
+
|
13
|
+
module Toolbox
|
14
|
+
|
15
|
+
##
|
16
|
+
# A simple testing client based on the Perl version found in:
|
17
|
+
#
|
18
|
+
# https://github.com/gradeawarrior/QA-Perl-Lib/blob/master/QA/Test/WebService.pm
|
19
|
+
#
|
20
|
+
# An example usage would be the following:
|
21
|
+
#
|
22
|
+
# require 'toolbox/http'
|
23
|
+
#
|
24
|
+
# response = Toolbox::Http.request(:method => 'GET', :url => 'http://www.google.com')
|
25
|
+
# if response.code == 200.to_s
|
26
|
+
# puts "Yay! It worked!"
|
27
|
+
# else
|
28
|
+
# puts "Boo! Something broke!" unless response.code == 200.to_s
|
29
|
+
# end
|
30
|
+
#
|
31
|
+
class Http
|
32
|
+
|
33
|
+
##
|
34
|
+
# Generate and display curl request
|
35
|
+
#
|
36
|
+
# == Parameters
|
37
|
+
# uri : The URI you are performing the request on
|
38
|
+
# request : The Net::HTTP Request object
|
39
|
+
#
|
40
|
+
# == Returns
|
41
|
+
# curl_request : String representing the curl request
|
42
|
+
#
|
43
|
+
def self.generate_curl_request(uri, request)
|
44
|
+
curl_request_str = "curl -v -X #{request.method} \"#{uri.scheme}://#{uri.host}:#{uri.port}#{request.path}\""
|
45
|
+
|
46
|
+
# Generate headers
|
47
|
+
request.each_header do |name, value|
|
48
|
+
curl_request_str += " -H '#{name}: #{value}'" if (name !~ /user-agent/i && name !~ /accept/i)
|
49
|
+
end
|
50
|
+
|
51
|
+
curl_request_str += " -k" if (uri.scheme.to_s == "https")
|
52
|
+
curl_request_str += " -d 'YOUR_REQUEST_BODY'" if state.nil? && state.get(:curl_file).nil?
|
53
|
+
curl_request_str += " -d @#{state.get(:curl_file)}" if !state.nil? && !state.get(:curl_file).nil?
|
54
|
+
curl_request_str
|
55
|
+
end
|
56
|
+
|
57
|
+
##
|
58
|
+
# Show details about request
|
59
|
+
#
|
60
|
+
# == Parameters
|
61
|
+
# uri : The URI you are performing the request on
|
62
|
+
# request : The Net::HTTP Request object
|
63
|
+
# disable_print_body : Disables printing body
|
64
|
+
#
|
65
|
+
def self.show_req(uri, request, disable_print_body=false)
|
66
|
+
|
67
|
+
## Print verbose output from RESTest
|
68
|
+
puts "$ #{generate_curl_request(uri, request)}"
|
69
|
+
puts '---[ Request ]----------------------------------------------------'
|
70
|
+
puts "URI: #{uri.scheme}://#{uri.host}:#{uri.port}"
|
71
|
+
puts "#{request.method} #{request.path}"
|
72
|
+
|
73
|
+
request.each_header { |name, value| puts "#{name}: #{value}" }
|
74
|
+
if disable_print_body
|
75
|
+
puts "\n<!-- Disabled print body for Content-Type: #{request.content_type}-->\n"
|
76
|
+
else
|
77
|
+
puts "\n#{request.body}\n"
|
78
|
+
end
|
79
|
+
puts '------------------------------------------------------------------'
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
##
|
84
|
+
# Show details about response received
|
85
|
+
#
|
86
|
+
# == Parameters
|
87
|
+
# response : The Net::HTTPResponse object
|
88
|
+
# disable_print_body : Disables printing body
|
89
|
+
#
|
90
|
+
def self.show_response(response, disable_print_body=false)
|
91
|
+
|
92
|
+
puts '---[ Response ]---------------------------------------------------'
|
93
|
+
if response
|
94
|
+
puts "#{response.code} #{response.message}"
|
95
|
+
if (response.code.to_i > 0)
|
96
|
+
response.each_header { |name, value| puts "#{name}: #{value}" }
|
97
|
+
end
|
98
|
+
if disable_print_body
|
99
|
+
puts "\n<!-- Disabled print body for Content-Type: #{request.content_type}-->\n"
|
100
|
+
else
|
101
|
+
puts "\n#{response.body}\n"
|
102
|
+
end
|
103
|
+
else
|
104
|
+
puts 'response object is nil!'
|
105
|
+
end
|
106
|
+
puts '------------------------------------------------------------------'
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
##
|
111
|
+
# A simple testing client based on the Perl version found in:
|
112
|
+
#
|
113
|
+
# https://github.com/gradeawarrior/QA-Perl-Lib/blob/master/QA/Test/WebService.pm
|
114
|
+
#
|
115
|
+
# == Parameters
|
116
|
+
# :method => (Required) Sets the request method to perform. The valid methods are GET, POST, PUT, & DELETE
|
117
|
+
# :url => (Required) This should be set to the exact service API (e.g. 'http://www.google.com'). Port,
|
118
|
+
# path, and query parameters should also be specified. NOTE: If you specified the
|
119
|
+
# :request option, then the URI path and query parameters will be configured there.
|
120
|
+
# :request => (Optional) Default: nil - You can optionally setup your Net::HTTP::[Get|Post|Put|Delete]
|
121
|
+
# operation here. Other request could also be specified here if
|
122
|
+
# not supported via :method parameter.
|
123
|
+
# :timeout => (Optional) Default: 60 - This is the default request timeout
|
124
|
+
# :basic_auth => (Optional) Default: nil - This should be a hash containing 'user' and 'password' keys
|
125
|
+
# :headers => (Optional) Default: {} - A Hash containing all the Request headers that need to be set
|
126
|
+
# :request_body => (Optional) Default: nil - The request body for PUT and POST requests
|
127
|
+
# :content_type => (Optional) Default: nil - Sets the 'Content-Type' header
|
128
|
+
# :debug => (Optional) Default: false - Enables debug output
|
129
|
+
# :disable_print_body => (Optional) Default: false - This will hide the request/response body output
|
130
|
+
#
|
131
|
+
# == Returns
|
132
|
+
#
|
133
|
+
# A Net::HTTPResponse object is returned. This is the standard object returned from Net::HTTP
|
134
|
+
#
|
135
|
+
# == Throws (Exceptions)
|
136
|
+
#
|
137
|
+
# Any of the standard Net::HTTP::Exceptions could be returned if there is an error connecting
|
138
|
+
# to the downstream server.
|
139
|
+
#
|
140
|
+
# Additionally, The method could return:
|
141
|
+
# - ArgumentError
|
142
|
+
# - URI parse error
|
143
|
+
#
|
144
|
+
def self.request(*args)
|
145
|
+
|
146
|
+
args = args.nil? || args.empty? ? {} : args.pop
|
147
|
+
args = {} unless args.is_a?(::Hash)
|
148
|
+
raise ArgumentError, 'method is required!' if args[:method].nil? && args[:request].nil?
|
149
|
+
raise ArgumentError, 'url is required!' if args[:url].nil?
|
150
|
+
|
151
|
+
## Options and defaults
|
152
|
+
request = args[:request]
|
153
|
+
args[:method] = request.method if request
|
154
|
+
args[:timeout] = args[:timeout] ? args[:timeout] : 60
|
155
|
+
args[:headers] = args[:headers] ? args[:headers] : {}
|
156
|
+
args[:headers]['Content-Type'] = args[:content_type] if args[:content_type]
|
157
|
+
args[:debug] = args[:debug].nil? ? false : args[:debug].to_bool
|
158
|
+
args[:disable_print_body] = args[:disable_print_body].nil? ? false : args[:disable_print_body].to_bool
|
159
|
+
|
160
|
+
puts "Requesting: #{args[:method]} #{uri.to_s}" if args[:debug]
|
161
|
+
|
162
|
+
## Set the request based on the URL
|
163
|
+
if args[:url]
|
164
|
+
uri = args[:url].is_a?(::URI) ? args[:url] : URI(args[:url])
|
165
|
+
request_path = "#{uri.path}#{uri.query || ''}"
|
166
|
+
request_path = request_path.empty? ? '/' : request_path
|
167
|
+
|
168
|
+
if args[:method]
|
169
|
+
request = case args[:method]
|
170
|
+
when 'GET'
|
171
|
+
Net::HTTP::Get.new(request_path, args[:headers])
|
172
|
+
when 'POST'
|
173
|
+
req = Net::HTTP::Post.new(request_path, args[:headers])
|
174
|
+
req.body = args[:request_body] if args[:request_body]
|
175
|
+
req
|
176
|
+
when 'PUT'
|
177
|
+
req = Net::HTTP::Put.new(request_path, args[:headers])
|
178
|
+
req.body = args[:request_body] if args[:request_body]
|
179
|
+
req
|
180
|
+
when 'DELETE'
|
181
|
+
Net::HTTP::Delete.new(request_path, args[:headers])
|
182
|
+
else
|
183
|
+
raise ArgumentError, "Invalid method #{args[:method]}!"
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
## Set Auth
|
189
|
+
req.basic_auth(args[:basic_auth]['user'], args[:basic_auth]['password']) if args[:basic_auth]
|
190
|
+
|
191
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
192
|
+
http.read_timeout = args[:timeout]
|
193
|
+
|
194
|
+
if uri.scheme == 'https'
|
195
|
+
raise RuntimeError, 'SSL required but not available!' unless $SSL_AVAILABLE
|
196
|
+
http.use_ssl = true
|
197
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
198
|
+
end
|
199
|
+
|
200
|
+
show_req(uri, request, state) if args[:debug]
|
201
|
+
response = http.request(request)
|
202
|
+
show_response(response) if args[:debug]
|
203
|
+
response
|
204
|
+
|
205
|
+
end
|
206
|
+
|
207
|
+
end
|
208
|
+
end
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: ruby-development-toolbox 1.
|
5
|
+
# stub: ruby-development-toolbox 1.4.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "ruby-development-toolbox"
|
9
|
-
s.version = "1.
|
9
|
+
s.version = "1.4.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Peter Salas"]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2015-02-04"
|
15
15
|
s.description = "A collection of useful utilities and libraries for Ruby development (not Rails)"
|
16
16
|
s.email = "psalas+github@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
"lib/toolbox/boolean.rb",
|
34
34
|
"lib/toolbox/gem_specification.rb",
|
35
35
|
"lib/toolbox/hash_diff.rb",
|
36
|
+
"lib/toolbox/http.rb",
|
36
37
|
"lib/toolbox/integer.rb",
|
37
38
|
"lib/toolbox/json.rb",
|
38
39
|
"lib/toolbox/uuid.rb",
|
@@ -42,11 +43,12 @@ Gem::Specification.new do |s|
|
|
42
43
|
"test/representations/person.rb",
|
43
44
|
"test/test_toolbox-integer.rb",
|
44
45
|
"test/test_toolbox_array.rb",
|
46
|
+
"test/test_toolbox_http.rb",
|
45
47
|
"test/test_toolbox_json.rb"
|
46
48
|
]
|
47
49
|
s.homepage = "http://github.com/gradeawarrior/ruby-development-toolbox"
|
48
50
|
s.licenses = ["MIT"]
|
49
|
-
s.rubygems_version = "2.
|
51
|
+
s.rubygems_version = "2.4.3"
|
50
52
|
s.summary = "Useful Ruby Development Toolbox"
|
51
53
|
|
52
54
|
if s.respond_to? :specification_version then
|
@@ -56,14 +58,16 @@ Gem::Specification.new do |s|
|
|
56
58
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
57
59
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
58
60
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
59
|
-
s.add_development_dependency(%q<
|
61
|
+
s.add_development_dependency(%q<minitest>, ["~> 4.0"])
|
62
|
+
s.add_development_dependency(%q<jeweler>, ["= 2.0.1"])
|
60
63
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
61
64
|
s.add_development_dependency(%q<yard>, [">= 0.8.7.3"])
|
62
65
|
else
|
63
66
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
64
67
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
65
68
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
66
|
-
s.add_dependency(%q<
|
69
|
+
s.add_dependency(%q<minitest>, ["~> 4.0"])
|
70
|
+
s.add_dependency(%q<jeweler>, ["= 2.0.1"])
|
67
71
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
68
72
|
s.add_dependency(%q<yard>, [">= 0.8.7.3"])
|
69
73
|
end
|
@@ -71,7 +75,8 @@ Gem::Specification.new do |s|
|
|
71
75
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
72
76
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
73
77
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
74
|
-
s.add_dependency(%q<
|
78
|
+
s.add_dependency(%q<minitest>, ["~> 4.0"])
|
79
|
+
s.add_dependency(%q<jeweler>, ["= 2.0.1"])
|
75
80
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
76
81
|
s.add_dependency(%q<yard>, [">= 0.8.7.3"])
|
77
82
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'toolbox/http'
|
3
|
+
require 'net/http'
|
4
|
+
|
5
|
+
class TestToolboxHttp < Test::Unit::TestCase
|
6
|
+
|
7
|
+
should 'be able to make a simple request to google' do
|
8
|
+
response = Toolbox::Http.request(:method => 'GET', :url => 'http://www.google.com')
|
9
|
+
assert_equal(200.to_s, response.code)
|
10
|
+
end
|
11
|
+
|
12
|
+
should 'be able to make a simple request to google using Net::Http::Get Request' do
|
13
|
+
req = Net::HTTP::Get.new("/", {})
|
14
|
+
response = Toolbox::Http.request(:url => 'http://www.google.com', :request => req)
|
15
|
+
assert_equal(200.to_s, response.code)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-development-toolbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Salas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: shoulda
|
@@ -53,17 +53,31 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '4.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: jeweler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.0.1
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: 2.0.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
@@ -117,6 +131,7 @@ files:
|
|
117
131
|
- lib/toolbox/boolean.rb
|
118
132
|
- lib/toolbox/gem_specification.rb
|
119
133
|
- lib/toolbox/hash_diff.rb
|
134
|
+
- lib/toolbox/http.rb
|
120
135
|
- lib/toolbox/integer.rb
|
121
136
|
- lib/toolbox/json.rb
|
122
137
|
- lib/toolbox/uuid.rb
|
@@ -126,6 +141,7 @@ files:
|
|
126
141
|
- test/representations/person.rb
|
127
142
|
- test/test_toolbox-integer.rb
|
128
143
|
- test/test_toolbox_array.rb
|
144
|
+
- test/test_toolbox_http.rb
|
129
145
|
- test/test_toolbox_json.rb
|
130
146
|
homepage: http://github.com/gradeawarrior/ruby-development-toolbox
|
131
147
|
licenses:
|
@@ -147,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
163
|
version: '0'
|
148
164
|
requirements: []
|
149
165
|
rubyforge_project:
|
150
|
-
rubygems_version: 2.
|
166
|
+
rubygems_version: 2.4.3
|
151
167
|
signing_key:
|
152
168
|
specification_version: 4
|
153
169
|
summary: Useful Ruby Development Toolbox
|