mudbug 0.9.0.1 → 1.0.0.1
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 +4 -4
- data/README.md +2 -1
- data/Rakefile +13 -7
- data/VERSION +1 -1
- data/lib/mudbug.rb +1 -0
- data/mudbug.gemspec +4 -4
- data/test/mudbug.rb +80 -4
- metadata +5 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fc9de28ee1cc2bc7a3c6ed987a0b1e46d82083b
|
4
|
+
data.tar.gz: 288369cc57db114694c55156fe3e766c888214a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4d0afeee4edec6d8e410affad2042d59e9b775919c65d1a26dc90b205c64656380b7234274c20b30cdddb6bc082c3ac1e045e4b7016c8727d7b4c38c2dfbae7
|
7
|
+
data.tar.gz: dd5ffd9024ea0d7372a57c513d904b349033443716618c37650a21ff5ee7651801c493043163c701e12fcff23422e748f54a880c8ca339dd1a68a78654472144
|
data/README.md
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
[](https://travis-ci.org/rickhull/conway_deathmatch)
|
1
2
|
[](http://badge.fury.io/rb/mudbug)
|
2
3
|
[](https://codeclimate.com/github/rickhull/mudbug)
|
3
4
|
[](https://gemnasium.com/rickhull/mudbug)
|
4
|
-
[](https://hakiri.io/github/rickhull/mudbug/master)
|
5
|
+
[](https://hakiri.io/github/rickhull/mudbug/master)
|
5
6
|
|
6
7
|
Mudbug
|
7
8
|
=======
|
data/Rakefile
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
-
require 'buildar'
|
2
1
|
require 'rake/testtask'
|
3
2
|
|
4
|
-
Buildar.new do |b|
|
5
|
-
b.gemspec_file = 'mudbug.gemspec'
|
6
|
-
b.version_file = 'VERSION'
|
7
|
-
b.use_git = true
|
8
|
-
end
|
9
|
-
|
10
3
|
Rake::TestTask.new :test do |t|
|
11
4
|
t.pattern = 'test/*.rb'
|
12
5
|
end
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
begin
|
10
|
+
require 'buildar'
|
11
|
+
Buildar.new do |b|
|
12
|
+
b.gemspec_file = 'mudbug.gemspec'
|
13
|
+
b.version_file = 'VERSION'
|
14
|
+
b.use_git = true
|
15
|
+
end
|
16
|
+
rescue LoadError
|
17
|
+
warn "buildar tasks not available"
|
18
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0.1
|
data/lib/mudbug.rb
CHANGED
data/mudbug.gemspec
CHANGED
@@ -9,17 +9,17 @@ Gem::Specification.new do |s|
|
|
9
9
|
|
10
10
|
s.executables << 'mb'
|
11
11
|
|
12
|
-
s.add_runtime_dependency "rest-client", "~>
|
12
|
+
s.add_runtime_dependency "rest-client", "~> 2.0"
|
13
13
|
s.add_runtime_dependency "json", ">= 1.7.7"
|
14
14
|
s.add_runtime_dependency "lager", "~> 1"
|
15
15
|
s.add_runtime_dependency "dotcfg", "~> 0.2"
|
16
16
|
s.add_development_dependency "minitest", "~> 5.0"
|
17
17
|
s.add_development_dependency "buildar", "~> 3.0"
|
18
18
|
|
19
|
+
s.required_ruby_version = "~> 2"
|
20
|
+
|
19
21
|
# set version dynamically from version file contents
|
20
|
-
|
21
|
-
version_file = File.join(this_dir, 'VERSION')
|
22
|
-
s.version = File.read(version_file).chomp
|
22
|
+
s.version = File.read(File.join(__dir__, 'VERSION')).chomp
|
23
23
|
|
24
24
|
s.files = %w[
|
25
25
|
mudbug.gemspec
|
data/test/mudbug.rb
CHANGED
@@ -1,9 +1,85 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
|
-
|
3
|
-
# require_relative '../lib/mudbug'
|
2
|
+
require 'mudbug'
|
4
3
|
|
5
4
|
describe "Mudbug" do
|
6
|
-
|
7
|
-
|
5
|
+
describe "accept_header" do
|
6
|
+
it "must generate valid headers" do
|
7
|
+
h = Mudbug.accept_header(:json, :xml, :html, :text, :foo)
|
8
|
+
ary = h.split(', ')
|
9
|
+
ary.length.must_equal 5
|
10
|
+
|
11
|
+
# first entry does not have a qspec
|
12
|
+
ary[0].must_equal 'application/json'
|
13
|
+
|
14
|
+
# subsequent entries must have a qspec
|
15
|
+
qspec = /q=\d*\.*\d/ # e.g. q=0.5
|
16
|
+
|
17
|
+
xml_ary = ary[1].split(';')
|
18
|
+
xml_ary[0].must_equal 'application/xml'
|
19
|
+
xml_ary[1].must_match qspec
|
20
|
+
|
21
|
+
html_ary = ary[2].split(';')
|
22
|
+
html_ary[0].must_equal 'text/html'
|
23
|
+
html_ary[1].must_match qspec
|
24
|
+
|
25
|
+
text_ary = ary[3].split(';')
|
26
|
+
text_ary[0].must_equal 'text/plain'
|
27
|
+
text_ary[1].must_match qspec
|
28
|
+
|
29
|
+
foo_ary = ary[4].split(';')
|
30
|
+
foo_ary[0].must_equal 'application/foo'
|
31
|
+
foo_ary[1].must_match qspec
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "process" do
|
36
|
+
def http_response(body, opts = {})
|
37
|
+
opts[:http_ver] ||= 1.1
|
38
|
+
opts[:status_code] ||= '200 OK'
|
39
|
+
opts[:conn] ||= 'close'
|
40
|
+
headers = ["HTTP/#{opts[:http_ver]} #{opts[:status_code]}",
|
41
|
+
"Content-Length: #{body.length}",
|
42
|
+
"Connection: #{opts[:conn]}"]
|
43
|
+
headers << "Content-type: #{opts[:content_type]}" if opts[:content_type]
|
44
|
+
[headers, '', '', body].join("\n")
|
45
|
+
end
|
46
|
+
|
47
|
+
def dummy_io(str)
|
48
|
+
Net::BufferedIO.new(StringIO.new(str.gsub("\n", "\r\n")))
|
49
|
+
end
|
50
|
+
|
51
|
+
def net_http_resp(body, opts = {})
|
52
|
+
Net::HTTPResponse.read_new(dummy_io(http_response(body, opts)))
|
53
|
+
end
|
54
|
+
|
55
|
+
def rest_client_resp(body, opts = {})
|
56
|
+
req = RestClient::Request.new(method: 'get', url: 'http://google.com/')
|
57
|
+
RestClient::Response.create(body, net_http_resp(body, opts), req)
|
58
|
+
end
|
59
|
+
|
60
|
+
it "must process an empty response" do
|
61
|
+
empty_resp = rest_client_resp('', content_type: 'text/html')
|
62
|
+
body = Mudbug.process(empty_resp)
|
63
|
+
body.wont_be_nil
|
64
|
+
body.must_be_empty
|
65
|
+
end
|
66
|
+
|
67
|
+
it "must process a nonempty response" do
|
68
|
+
resp_body = 'foo: bar'
|
69
|
+
resp = rest_client_resp(resp_body, content_type: 'text/html')
|
70
|
+
body = Mudbug.process(resp)
|
71
|
+
body.wont_be_nil
|
72
|
+
body.wont_be_empty
|
73
|
+
body.must_equal resp_body
|
74
|
+
end
|
75
|
+
|
76
|
+
it "must warn about missing content-type" do
|
77
|
+
resp = rest_client_resp('')
|
78
|
+
out, err = capture_subprocess_io do
|
79
|
+
Mudbug.process(resp)
|
80
|
+
end
|
81
|
+
out.must_be_empty
|
82
|
+
err.wont_be_empty
|
83
|
+
end
|
8
84
|
end
|
9
85
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mudbug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rick Hull
|
@@ -16,20 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.8.0
|
19
|
+
version: '2.0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 1.8.0
|
26
|
+
version: '2.0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: json
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,9 +121,9 @@ require_paths:
|
|
127
121
|
- lib
|
128
122
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
123
|
requirements:
|
130
|
-
- - "
|
124
|
+
- - "~>"
|
131
125
|
- !ruby/object:Gem::Version
|
132
|
-
version: '
|
126
|
+
version: '2'
|
133
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
128
|
requirements:
|
135
129
|
- - ">="
|