ultron 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -8
- data/lib/ultron/models/entities.rb +1 -1
- data/lib/ultron/version.rb +1 -1
- data/spec/cassettes/exceptions/should_throw_a_Resource_Not_Found_exception_when_we_search_for_something_nonsensical.yml +33 -0
- data/spec/cassettes/exceptions/should_throw_an_Ultron_exception_when_we_do_something_dumb.yml +34 -0
- data/spec/ultron/exceptions_spec.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6195265a3aa3ffae282744daa6ffaaab7415d9fe
|
4
|
+
data.tar.gz: 8f647150c7d3d127967591e1bf089907243d1420
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19cea53dd77e216e09839cc1617b51ae0cff573973196ecdd77d223db1ca581239f940221713d5e2f5d35ea94be161a3d89359c2932bb29dcee2346342b4fb44
|
7
|
+
data.tar.gz: c1916685fb592072dbacddb8e6864f87475a9e1a728b082900671108df8506212d02b4f61b3c2bcce944a41a7c218d7baa69ece68608e6010e39d4f1dcd3c5b4
|
data/README.md
CHANGED
@@ -14,13 +14,17 @@ Ruby bindings for the [Marvel Comics API](http://developer.marvel.com/)
|
|
14
14
|
ultron
|
15
15
|
bundle
|
16
16
|
rake
|
17
|
+
|
18
|
+
Or just
|
19
|
+
|
20
|
+
gem install ultron
|
17
21
|
|
18
|
-
To actually use it you need an API
|
22
|
+
To actually use it you need an API keypair which you can get from [here](https://developer.marvel.com/signup), put them into `.env` like this
|
19
23
|
|
20
24
|
PUBLIC_KEY: this_r_public_key
|
21
25
|
PRIVATE_KEY: this_one_r_private_key
|
22
|
-
|
23
|
-
|
26
|
+
|
27
|
+
I've made a [little toy app](https://github.com/pikesley/powerman) which uses this gem to explore the data.
|
24
28
|
|
25
29
|
## API
|
26
30
|
|
@@ -92,12 +96,14 @@ I've tried to follow the [Marvel API](http://developer.marvel.com/docs#!/public/
|
|
92
96
|
end
|
93
97
|
end
|
94
98
|
|
95
|
-
### Raise a custom exception when
|
99
|
+
### Raise a custom exception when we do something dumb
|
96
100
|
|
97
|
-
it 'should throw
|
101
|
+
it 'should throw a Resource Not Found exception when we search for something nonsensical', :vcr do
|
98
102
|
begin
|
99
|
-
|
103
|
+
characters = Characters.by_creator 186 # characters by creator is a nonsense concept in the Marvel API
|
100
104
|
rescue UltronException => e
|
101
|
-
e.status.should == '
|
105
|
+
e.status.should == 'Resource does not exist. Check http://developer.marvel.com/docs'
|
102
106
|
end
|
103
|
-
end
|
107
|
+
end
|
108
|
+
|
109
|
+
This all got a lot more elegant after a chat over a fry-up with @floppy at the always-superb [First-Step Cafe](https://plus.google.com/100027883675109761806/about?gl=uk&hl=en) in Shoreditch.
|
@@ -31,7 +31,7 @@ module Ultron
|
|
31
31
|
def self.response url
|
32
32
|
response = Ultron::Connection.perform url
|
33
33
|
case response['code'].to_s
|
34
|
-
when /^4/
|
34
|
+
when /^4/, /^5/
|
35
35
|
raise MarvelException.new response
|
36
36
|
when 'ResourceNotFound'
|
37
37
|
raise UltronException.new 'Resource does not exist. Check %s' % Config.instance.config.api_docs
|
data/lib/ultron/version.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://gateway.marvel.com/v1/public/creators/186/characters?apikey=<PUBLIC_KEY>&hash=a304d29c7e65217654f6ddd18daf2b3c&ts=1392317244
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
User-Agent:
|
13
|
+
- 'Ultron v0.1.4: https://rubygems.org/gems/ultron'
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 404
|
17
|
+
message: Not Found
|
18
|
+
headers:
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Content-Length:
|
22
|
+
- '181'
|
23
|
+
Date:
|
24
|
+
- Sat, 15 Feb 2014 21:34:57 GMT
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
body:
|
28
|
+
encoding: ASCII-8BIT
|
29
|
+
string: "{\"code\":\"ResourceNotFound\",\"message\":\"/v1/public/creators/186/characters?ts=1392317244&apikey=<PUBLIC_KEY>&hash=a304d29c7e65217654f6ddd18daf2b3c
|
30
|
+
does not exist\"}"
|
31
|
+
http_version:
|
32
|
+
recorded_at: Thu, 13 Feb 2014 18:47:24 GMT
|
33
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://gateway.marvel.com/v1/public/comics?apikey=<PUBLIC_KEY>&hash=a304d29c7e65217654f6ddd18daf2b3c&offset=1000000&ts=1392317244
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
User-Agent:
|
13
|
+
- 'Ultron v0.1.4: https://rubygems.org/gems/ultron'
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Etag:
|
20
|
+
- c6221500e62a7317e759c6bd37130ee5c62c0cba
|
21
|
+
Content-Type:
|
22
|
+
- application/json
|
23
|
+
Content-Length:
|
24
|
+
- '150'
|
25
|
+
Date:
|
26
|
+
- Sun, 16 Feb 2014 16:52:41 GMT
|
27
|
+
Connection:
|
28
|
+
- keep-alive
|
29
|
+
body:
|
30
|
+
encoding: ASCII-8BIT
|
31
|
+
string: "{\"code\":200,\"status\":\"Ok\",\"etag\":\"c6221500e62a7317e759c6bd37130ee5c62c0cba\",\"data\":{\"offset\":1000000,\"limit\":20,\"total\":31917,\"count\":0,\"results\":[]}}"
|
32
|
+
http_version:
|
33
|
+
recorded_at: Thu, 13 Feb 2014 18:47:24 GMT
|
34
|
+
recorded_with: VCR 2.8.0
|
@@ -24,7 +24,7 @@ module Ultron
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
it 'should throw an Ultron exception
|
27
|
+
it 'should throw an Ultron exception when we do something dumb', :vcr do
|
28
28
|
begin
|
29
29
|
comics = Comics.where offset: 1000000
|
30
30
|
rescue UltronException => e
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ultron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pikesley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curb
|
@@ -298,7 +298,9 @@ files:
|
|
298
298
|
- spec/cassettes/exceptions/should_throw_a_No_Results_exception.yml
|
299
299
|
- spec/cassettes/exceptions/should_throw_a_Not_Found_exception.yml
|
300
300
|
- spec/cassettes/exceptions/should_throw_a_Resource_Not_Found_exception_when_we_search_for_something_non-sensical.yml
|
301
|
+
- spec/cassettes/exceptions/should_throw_a_Resource_Not_Found_exception_when_we_search_for_something_nonsensical.yml
|
301
302
|
- spec/cassettes/exceptions/should_throw_an_Ultron_exception_for_something_internal_to_Ultron.yml
|
303
|
+
- spec/cassettes/exceptions/should_throw_an_Ultron_exception_when_we_do_something_dumb.yml
|
302
304
|
- spec/cassettes/sample/let_us_pick_a_random_item/should_get_a_count_of_items_for_a_lookup.yml
|
303
305
|
- spec/cassettes/sample/let_us_pick_a_random_item/should_give_us_a_random_comic.yml
|
304
306
|
- spec/cassettes/sample/let_us_pick_a_random_item/should_give_us_a_random_comic_for_a_more_complex_search.yml
|
@@ -378,7 +380,9 @@ test_files:
|
|
378
380
|
- spec/cassettes/exceptions/should_throw_a_No_Results_exception.yml
|
379
381
|
- spec/cassettes/exceptions/should_throw_a_Not_Found_exception.yml
|
380
382
|
- spec/cassettes/exceptions/should_throw_a_Resource_Not_Found_exception_when_we_search_for_something_non-sensical.yml
|
383
|
+
- spec/cassettes/exceptions/should_throw_a_Resource_Not_Found_exception_when_we_search_for_something_nonsensical.yml
|
381
384
|
- spec/cassettes/exceptions/should_throw_an_Ultron_exception_for_something_internal_to_Ultron.yml
|
385
|
+
- spec/cassettes/exceptions/should_throw_an_Ultron_exception_when_we_do_something_dumb.yml
|
382
386
|
- spec/cassettes/sample/let_us_pick_a_random_item/should_get_a_count_of_items_for_a_lookup.yml
|
383
387
|
- spec/cassettes/sample/let_us_pick_a_random_item/should_give_us_a_random_comic.yml
|
384
388
|
- spec/cassettes/sample/let_us_pick_a_random_item/should_give_us_a_random_comic_for_a_more_complex_search.yml
|