rapidash 0.1.0 → 0.1.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 +6 -1
- data/lib/rapidash/response.rb +2 -4
- data/lib/rapidash/version.rb +1 -1
- data/spec/rapidash/response_spec.rb +45 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27988e3bc9f82d6c93ca68a8f5e4a18a802b56c0
|
4
|
+
data.tar.gz: 65b988d98e2feb6afed163fb8876ef3f033d04d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e379666447ac2040248ea184dae2068c871ac9b51e0d446a71a5b6abe0525f981bd9cd2f43bd73050706091984f4d4d2a0f800fc3a74931f1682fb19b55c0b59
|
7
|
+
data.tar.gz: d9ca90ec4f6c5c88da837644642396281807b3387285a870ebc98b2ad54148f984535d7b0c7dca49133adf2bd0d6ee8769fce88d349d251aed565a6aedf3e9fd
|
data/README.md
CHANGED
@@ -20,6 +20,11 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
+
A screencast on Rapidash is available to watch in mp4 and ogv formats.
|
24
|
+
|
25
|
+
* [Rapidash Screencast mp4](http://screencasts.gazler.com/rapidash.mp4)
|
26
|
+
* [Rapidash Screencast ogv](http://screencasts.gazler.com/rapidash.ogv)
|
27
|
+
|
23
28
|
### Resources
|
24
29
|
|
25
30
|
Resources can be defined as follows:
|
@@ -158,4 +163,4 @@ p client.users("Gazler").repos![0].name #Githug
|
|
158
163
|
|
159
164
|
## Credits
|
160
165
|
|
161
|
-
Thanks to @Sid3show for the sweet logo!
|
166
|
+
Thanks to [@Sid3show](https://github.com/Sid3show) for the sweet logo!
|
data/lib/rapidash/response.rb
CHANGED
@@ -8,7 +8,6 @@ module Rapidash
|
|
8
8
|
def new(response)
|
9
9
|
return nil unless response.body
|
10
10
|
type = response.headers["content-type"]
|
11
|
-
if type.include?("application/json")
|
12
11
|
body = JSON.parse(response.body)
|
13
12
|
if body.kind_of?(Hash)
|
14
13
|
return Hashie::Mash.new(body)
|
@@ -19,9 +18,8 @@ module Rapidash
|
|
19
18
|
end
|
20
19
|
return output
|
21
20
|
end
|
22
|
-
|
23
|
-
|
24
|
-
end
|
21
|
+
rescue JSON::ParserError => e
|
22
|
+
raise ParseError.new("Failed to parse content for type: #{response.headers["content-type"]}")
|
25
23
|
end
|
26
24
|
end
|
27
25
|
|
data/lib/rapidash/version.rb
CHANGED
@@ -11,6 +11,26 @@ def valid_response_object
|
|
11
11
|
})
|
12
12
|
end
|
13
13
|
|
14
|
+
def valid_html_response_object
|
15
|
+
body = {"foo" => "bar" }.to_json
|
16
|
+
OpenStruct.new({
|
17
|
+
:headers => {
|
18
|
+
"content-type" => "text/html"
|
19
|
+
},
|
20
|
+
:body => body
|
21
|
+
})
|
22
|
+
end
|
23
|
+
|
24
|
+
def valid_js_response_object
|
25
|
+
body = {"foo" => "bar" }.to_json
|
26
|
+
OpenStruct.new({
|
27
|
+
:headers => {
|
28
|
+
"content-type" => "text/javascript"
|
29
|
+
},
|
30
|
+
:body => body
|
31
|
+
})
|
32
|
+
end
|
33
|
+
|
14
34
|
|
15
35
|
def valid_response_array
|
16
36
|
body = [{"foo" => "bar" }, {"baz" => "bra"}].to_json
|
@@ -32,6 +52,15 @@ def invalid_response
|
|
32
52
|
})
|
33
53
|
end
|
34
54
|
|
55
|
+
def invalid_js_response_object
|
56
|
+
OpenStruct.new({
|
57
|
+
:headers => {
|
58
|
+
"content-type" => "text/javascript"
|
59
|
+
},
|
60
|
+
:body => "<xml>something</xml>"
|
61
|
+
})
|
62
|
+
end
|
63
|
+
|
35
64
|
def nil_response
|
36
65
|
OpenStruct.new({
|
37
66
|
:body => nil
|
@@ -45,6 +74,16 @@ describe Rapidash::Response do
|
|
45
74
|
response = Rapidash::Response.new(valid_response_object)
|
46
75
|
response.foo.should eql("bar")
|
47
76
|
end
|
77
|
+
|
78
|
+
it "should parse JSON Objects returned with javascript type" do
|
79
|
+
response = Rapidash::Response.new(valid_js_response_object)
|
80
|
+
response.foo.should eql("bar")
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should parse JSON Objects returned with html type" do
|
84
|
+
response = Rapidash::Response.new(valid_html_response_object)
|
85
|
+
response.foo.should eql("bar")
|
86
|
+
end
|
48
87
|
|
49
88
|
it "should parse JSON Arrays" do
|
50
89
|
response = Rapidash::Response.new(valid_response_array)
|
@@ -63,6 +102,12 @@ describe Rapidash::Response do
|
|
63
102
|
Rapidash::Response.new(invalid_response)
|
64
103
|
}.to raise_error(Rapidash::ParseError)
|
65
104
|
end
|
105
|
+
|
106
|
+
it "should raise an error on a non-json response body" do
|
107
|
+
expect {
|
108
|
+
Rapidash::Response.new(invalid_js_response_object)
|
109
|
+
}.to raise_error(Rapidash::ParseError)
|
110
|
+
end
|
66
111
|
end
|
67
112
|
|
68
113
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rapidash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gary 'Gazler' Rennie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-03-
|
11
|
+
date: 2013-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|