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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9589ae72b4b56baa321cddca0791c4592b0c395d
4
- data.tar.gz: 5aaec23b05786f5cd5d4f80b51fab7721b26307d
3
+ metadata.gz: 2fc9de28ee1cc2bc7a3c6ed987a0b1e46d82083b
4
+ data.tar.gz: 288369cc57db114694c55156fe3e766c888214a1
5
5
  SHA512:
6
- metadata.gz: bdde49e183a7f09bbfdaab2c983115eac3f05afb53f0f44e90a4c725ed552af24f013535bc5b65f250174cf0d1cb58a69e4332e545c14194d82d2379f6e95f6f
7
- data.tar.gz: 7bdcbe027bcf3fe0449ada821f5fd59c463b06732466edb64b8b3cd25f7943ad7d154d88347cbe2541aa1f64527a0799ea33ae91c7e907b074fdd8d1859c46b0
6
+ metadata.gz: c4d0afeee4edec6d8e410affad2042d59e9b775919c65d1a26dc90b205c64656380b7234274c20b30cdddb6bc082c3ac1e045e4b7016c8727d7b4c38c2dfbae7
7
+ data.tar.gz: dd5ffd9024ea0d7372a57c513d904b349033443716618c37650a21ff5ee7651801c493043163c701e12fcff23422e748f54a880c8ca339dd1a68a78654472144
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
+ [![Build Status](https://travis-ci.org/rickhull/mudbug.svg?branch=master)](https://travis-ci.org/rickhull/conway_deathmatch)
1
2
  [![Gem Version](https://badge.fury.io/rb/mudbug.svg)](http://badge.fury.io/rb/mudbug)
2
3
  [![Code Climate](https://codeclimate.com/github/rickhull/mudbug/badges/gpa.svg)](https://codeclimate.com/github/rickhull/mudbug)
3
4
  [![Dependency Status](https://gemnasium.com/rickhull/mudbug.svg)](https://gemnasium.com/rickhull/mudbug)
4
- [![Security Status](https://hakiri.io/github/rickhull/mudbug/master.svg)](https://hakiri.io/github/rickhull/mudbug/master)
5
+ [![Security Status](https://hakiri.io/github/rickhull/mudbug/master.svg?cachebuster)](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.9.0.1
1
+ 1.0.0.1
data/lib/mudbug.rb CHANGED
@@ -66,6 +66,7 @@ class Mudbug
66
66
 
67
67
  # get the content-type
68
68
  ct, charset = ct.split(';').map { |s| s.strip }
69
+ @lager.info { "got charset: #{charset}; ignoring" } if charset
69
70
 
70
71
  # raise if we got Content-type we didn't ask for
71
72
  if accept and !accept.include?(ct)
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", "~> 1", ">= 1.8.0"
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
- this_dir = File.expand_path('..', __FILE__)
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
- it "has no tests" do
7
- skip
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.9.0.1
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: '1'
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: '1'
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: '0'
126
+ version: '2'
133
127
  required_rubygems_version: !ruby/object:Gem::Requirement
134
128
  requirements:
135
129
  - - ">="