marvelite 0.0.5 → 0.0.6.a
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/CHANGELOG.md +12 -0
- data/README.md +21 -230
- data/Rakefile +8 -1
- data/lib/marvelite.rb +1 -4
- data/lib/marvelite/api/client.rb +52 -5
- data/lib/marvelite/api/config/v1.yml +22 -1
- data/lib/marvelite/version.rb +1 -1
- data/spec/fixtures/series/serie.json +427 -0
- data/spec/fixtures/series/serie_characters.json +5159 -0
- data/spec/fixtures/series/serie_comics.json +3107 -0
- data/spec/fixtures/series/serie_creators.json +5991 -0
- data/spec/fixtures/series/serie_events.json +1367 -0
- data/spec/fixtures/series/serie_stories.json +1312 -0
- data/spec/fixtures/series/series.json +3399 -0
- data/spec/marvelite/api/client_characters_endpoints_spec.rb +1 -0
- data/spec/marvelite/api/client_events_endpoints_spec.rb +4 -4
- data/spec/marvelite/api/client_series_endpoints_spec.rb +135 -0
- data/spec/marvelite/api/client_spec.rb +0 -20
- metadata +20 -7
- data/lib/marvelite/api/character_methods.rb +0 -70
- data/lib/marvelite/api/comic_methods.rb +0 -35
- data/lib/marvelite/api/event_methods.rb +0 -80
@@ -115,6 +115,7 @@ describe Marvelite::API::Client do
|
|
115
115
|
|
116
116
|
describe '#character_stories' do
|
117
117
|
before do
|
118
|
+
stub_get('characters?name=Spider-Man&apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'characters/character.json')
|
118
119
|
stub_get('characters/1009610/stories?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'characters/character_stories.json')
|
119
120
|
end
|
120
121
|
|
@@ -21,19 +21,19 @@ describe Marvelite::API::Client do
|
|
21
21
|
|
22
22
|
describe '#event' do
|
23
23
|
before do
|
24
|
-
stub_get('events/
|
24
|
+
stub_get('events/116?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'events/event.json')
|
25
25
|
stub_get('events?name=Acts%20of%20Vengeance!&apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'events/event.json')
|
26
26
|
end
|
27
27
|
it 'returns a Marvelite::API::Response object' do
|
28
|
-
expect(client.event(
|
28
|
+
expect(client.event(116)).to be_a(Marvelite::API::Response)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'Response object is populated with JSON from the event endpoint' do
|
32
|
-
expect(client.event(
|
32
|
+
expect(client.event(116)[:data][:results][0][:title]).to eq('Acts of Vengeance!')
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'accepts an Integer as event id' do
|
36
|
-
expect(client.event(
|
36
|
+
expect(client.event(116)[:data][:results][0][:title]).to eq('Acts of Vengeance!')
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'accepts a String as event name' do
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Marvelite::API::Client do
|
4
|
+
context "Series Endpoints" do
|
5
|
+
let(:client) { marvelite_test_client }
|
6
|
+
|
7
|
+
describe '#series' do
|
8
|
+
before do
|
9
|
+
stub_get('series?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/series.json')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'returns a Marvelite::API::Response object' do
|
13
|
+
expect(client.series).to be_a(Marvelite::API::Response)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'Response object is populated with JSON from the series endpoint' do
|
17
|
+
expect(client.series["status"]).to eq("Ok")
|
18
|
+
expect(client.series[:data][:results].size).to eq(20)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#serie' do
|
23
|
+
before do
|
24
|
+
stub_get('series/2069?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/serie.json')
|
25
|
+
stub_get('series?title=Spider-Man!&apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/serie.json')
|
26
|
+
end
|
27
|
+
it 'returns a Marvelite::API::Response object' do
|
28
|
+
expect(client.serie(2069)).to be_a(Marvelite::API::Response)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'Response object is populated with JSON from the serie endpoint' do
|
32
|
+
expect(client.serie(2069)[:data][:results][0][:title]).to eq('Spider-Man (1990 - 1998)')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'accepts an Integer as serie id' do
|
36
|
+
expect(client.serie(2069)[:data][:results][0][:title]).to eq('Spider-Man (1990 - 1998)')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#serie_characters' do
|
41
|
+
before do
|
42
|
+
stub_get('series/2069/characters?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/serie_characters.json')
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'returns a Marvelite::API::Response object' do
|
46
|
+
expect(client.series_characters(2069)).to be_a(Marvelite::API::Response)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'Response object is populated with JSON from the series endpoint' do
|
50
|
+
expect(client.series_characters(2069)["status"]).to eq("Ok")
|
51
|
+
expect(client.series_characters(2069)[:data][:results].size).to eq(16)
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'accepts an Integer as serie id' do
|
55
|
+
expect(client.series_characters(2069)[:data][:results][0][:name]).to eq('Adam Warlock')
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe '#serie_comics' do
|
60
|
+
before do
|
61
|
+
stub_get('series/2069/comics?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/serie_comics.json')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'returns a Marvelite::API::Response object' do
|
65
|
+
expect(client.series_comics(2069)).to be_a(Marvelite::API::Response)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'Response object is populated with JSON from the series endpoint' do
|
69
|
+
expect(client.series_comics(2069)["status"]).to eq("Ok")
|
70
|
+
expect(client.series_comics(2069)[:data][:results].size).to eq(20)
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'accepts an Integer as serie id' do
|
74
|
+
expect(client.series_comics(2069)[:data][:results][0][:title]).to eq('Spider-Man (1990) #98')
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe '#serie_creators' do
|
79
|
+
before do
|
80
|
+
stub_get('series/2069/creators?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/serie_creators.json')
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'returns a Marvelite::API::Response object' do
|
84
|
+
expect(client.series_creators(2069)).to be_a(Marvelite::API::Response)
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'Response object is populated with JSON from the series endpoint' do
|
88
|
+
expect(client.series_creators(2069)["status"]).to eq("Ok")
|
89
|
+
expect(client.series_creators(2069)[:data][:results].size).to eq(20)
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'accepts an Integer as serie id' do
|
93
|
+
expect(client.series_creators(2069)[:data][:results][0][:fullName]).to eq('Comicraft')
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe '#serie_events' do
|
98
|
+
before do
|
99
|
+
stub_get('series/2069/events?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/serie_events.json')
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'returns a Marvelite::API::Response object' do
|
103
|
+
expect(client.series_events(2069)).to be_a(Marvelite::API::Response)
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'Response object is populated with JSON from the series endpoint' do
|
107
|
+
expect(client.series_events(2069)["status"]).to eq("Ok")
|
108
|
+
expect(client.series_events(2069)[:data][:results].size).to eq(3)
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'accepts an Integer as serie id' do
|
112
|
+
expect(client.series_events(2069)[:data][:results][0][:title]).to eq('Infinity War')
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe '#serie_stories' do
|
117
|
+
before do
|
118
|
+
stub_get('series/2069/stories?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'series/serie_stories.json')
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'returns a Marvelite::API::Response object' do
|
122
|
+
expect(client.series_stories(2069)).to be_a(Marvelite::API::Response)
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'Response object is populated with JSON from the series endpoint' do
|
126
|
+
expect(client.series_stories(2069)["status"]).to eq("Ok")
|
127
|
+
expect(client.series_stories(2069)[:data][:results].size).to eq(20)
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'accepts an Integer as serie id' do
|
131
|
+
expect(client.series_stories(2069)[:data][:results][0][:title]).to eq('Cover #23741')
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
@@ -61,24 +61,4 @@ describe Marvelite::API::Client do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
64
|
-
|
65
|
-
context "helper methods" do
|
66
|
-
describe '#find_character_by_name' do
|
67
|
-
let(:client) { marvelite_test_client }
|
68
|
-
|
69
|
-
before do
|
70
|
-
stub_get('characters?name=Spider-Man&apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'characters/character.json')
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'retrieves a character through its name' do
|
74
|
-
response = client.send(:find_character_by_name, 'Spider-Man')
|
75
|
-
expect(response[:data][:results][0][:id]).to eq(1009610)
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'can call character.id to the response' do
|
79
|
-
character = client.send(:find_character_by_name, 'Spider-Man')
|
80
|
-
expect(character.id).to eq(1009610)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
64
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marvelite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6.a
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antonio Antillon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -129,11 +129,8 @@ executables: []
|
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
|
-
- lib/marvelite/api/character_methods.rb
|
133
132
|
- lib/marvelite/api/client.rb
|
134
|
-
- lib/marvelite/api/comic_methods.rb
|
135
133
|
- lib/marvelite/api/config/v1.yml
|
136
|
-
- lib/marvelite/api/event_methods.rb
|
137
134
|
- lib/marvelite/api/response.rb
|
138
135
|
- lib/marvelite/api/router.rb
|
139
136
|
- lib/marvelite/version.rb
|
@@ -157,9 +154,17 @@ files:
|
|
157
154
|
- spec/fixtures/events/event_series.json
|
158
155
|
- spec/fixtures/events/event_stories.json
|
159
156
|
- spec/fixtures/events/events.json
|
157
|
+
- spec/fixtures/series/serie.json
|
158
|
+
- spec/fixtures/series/serie_characters.json
|
159
|
+
- spec/fixtures/series/serie_comics.json
|
160
|
+
- spec/fixtures/series/serie_creators.json
|
161
|
+
- spec/fixtures/series/serie_events.json
|
162
|
+
- spec/fixtures/series/serie_stories.json
|
163
|
+
- spec/fixtures/series/series.json
|
160
164
|
- spec/marvelite/api/client_characters_endpoints_spec.rb
|
161
165
|
- spec/marvelite/api/client_comics_endpoints_spec.rb
|
162
166
|
- spec/marvelite/api/client_events_endpoints_spec.rb
|
167
|
+
- spec/marvelite/api/client_series_endpoints_spec.rb
|
163
168
|
- spec/marvelite/api/client_spec.rb
|
164
169
|
- spec/marvelite/api/router_spec.rb
|
165
170
|
- spec/spec_helper.rb
|
@@ -183,9 +188,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
183
188
|
version: '0'
|
184
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
185
190
|
requirements:
|
186
|
-
- - '
|
191
|
+
- - '>'
|
187
192
|
- !ruby/object:Gem::Version
|
188
|
-
version:
|
193
|
+
version: 1.3.1
|
189
194
|
requirements: []
|
190
195
|
rubyforge_project:
|
191
196
|
rubygems_version: 2.0.6
|
@@ -212,9 +217,17 @@ test_files:
|
|
212
217
|
- spec/fixtures/events/event_series.json
|
213
218
|
- spec/fixtures/events/event_stories.json
|
214
219
|
- spec/fixtures/events/events.json
|
220
|
+
- spec/fixtures/series/serie.json
|
221
|
+
- spec/fixtures/series/serie_characters.json
|
222
|
+
- spec/fixtures/series/serie_comics.json
|
223
|
+
- spec/fixtures/series/serie_creators.json
|
224
|
+
- spec/fixtures/series/serie_events.json
|
225
|
+
- spec/fixtures/series/serie_stories.json
|
226
|
+
- spec/fixtures/series/series.json
|
215
227
|
- spec/marvelite/api/client_characters_endpoints_spec.rb
|
216
228
|
- spec/marvelite/api/client_comics_endpoints_spec.rb
|
217
229
|
- spec/marvelite/api/client_events_endpoints_spec.rb
|
230
|
+
- spec/marvelite/api/client_series_endpoints_spec.rb
|
218
231
|
- spec/marvelite/api/client_spec.rb
|
219
232
|
- spec/marvelite/api/router_spec.rb
|
220
233
|
- spec/spec_helper.rb
|
@@ -1,70 +0,0 @@
|
|
1
|
-
module Marvelite
|
2
|
-
module API
|
3
|
-
module CharacterMethods
|
4
|
-
def characters(query_params = {})
|
5
|
-
response = self.class.get(router.characters_path, :query => params(query_params))
|
6
|
-
build_response_object(response)
|
7
|
-
end
|
8
|
-
|
9
|
-
def character(value)
|
10
|
-
by_name = value.is_a?(String) ? true : false
|
11
|
-
response = if by_name
|
12
|
-
find_character_by_name(value)
|
13
|
-
else
|
14
|
-
self.class.get(router.character_path(:id => value), :query => params)
|
15
|
-
end
|
16
|
-
|
17
|
-
build_response_object(response)
|
18
|
-
end
|
19
|
-
|
20
|
-
def character_comics(id, query_params = {})
|
21
|
-
if id.is_a?(String)
|
22
|
-
character = find_character_by_name(id)
|
23
|
-
return false unless character
|
24
|
-
id = character.id
|
25
|
-
end
|
26
|
-
|
27
|
-
response = self.class.get(router.character_comics_path(:id => id), :query => params(query_params))
|
28
|
-
build_response_object(response)
|
29
|
-
end
|
30
|
-
|
31
|
-
def character_events(id, query_params = {})
|
32
|
-
if id.is_a?(String)
|
33
|
-
character = find_character_by_name(id)
|
34
|
-
return false unless character
|
35
|
-
id = character.id
|
36
|
-
end
|
37
|
-
response = self.class.get(router.character_events_path(:id => id), :query => params(query_params))
|
38
|
-
build_response_object(response)
|
39
|
-
end
|
40
|
-
|
41
|
-
def character_series(id, query_params = {})
|
42
|
-
if id.is_a?(String)
|
43
|
-
character = find_character_by_name(id)
|
44
|
-
return false unless character
|
45
|
-
id = character.id
|
46
|
-
end
|
47
|
-
response = self.class.get(router.character_series_path(:id => id), :query => params(query_params))
|
48
|
-
build_response_object(response)
|
49
|
-
end
|
50
|
-
|
51
|
-
def character_stories(id, query_params = {})
|
52
|
-
if id.is_a?(String)
|
53
|
-
character = find_character_by_name(id)
|
54
|
-
return false unless character
|
55
|
-
id = character.id
|
56
|
-
end
|
57
|
-
response = self.class.get(router.character_stories_path(:id => id), :query => params(query_params))
|
58
|
-
build_response_object(response)
|
59
|
-
end
|
60
|
-
|
61
|
-
def find_character_by_name(name)
|
62
|
-
response = self.characters(:name => name)
|
63
|
-
return false unless response[:data][:results].size > 0
|
64
|
-
|
65
|
-
response.id = response[:data][:results][0][:id]
|
66
|
-
response
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Marvelite
|
2
|
-
module API
|
3
|
-
module ComicMethods
|
4
|
-
def comics(query_params = {})
|
5
|
-
response = self.class.get(router.comics_path, :query => params(query_params))
|
6
|
-
build_response_object(response)
|
7
|
-
end
|
8
|
-
|
9
|
-
def comic(id)
|
10
|
-
response = self.class.get(router.comic_path(:id => id), :query => params)
|
11
|
-
build_response_object(response)
|
12
|
-
end
|
13
|
-
|
14
|
-
def comic_characters(id, query_params = {})
|
15
|
-
response = self.class.get(router.comic_characters_path(:id => id), :query => params(query_params))
|
16
|
-
build_response_object(response)
|
17
|
-
end
|
18
|
-
|
19
|
-
def comic_events(id, query_params = {})
|
20
|
-
response = self.class.get(router.comic_events_path(:id => id), :query => params(query_params))
|
21
|
-
build_response_object(response)
|
22
|
-
end
|
23
|
-
|
24
|
-
def comic_creators(id, query_params = {})
|
25
|
-
response = self.class.get(router.comic_creators_path(:id => id), :query => params(query_params))
|
26
|
-
build_response_object(response)
|
27
|
-
end
|
28
|
-
|
29
|
-
def comic_stories(id, query_params = {})
|
30
|
-
response = self.class.get(router.comic_stories_path(:id => id), :query => params(query_params))
|
31
|
-
build_response_object(response)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
module Marvelite
|
2
|
-
module API
|
3
|
-
module EventMethods
|
4
|
-
def events(query_params = {})
|
5
|
-
response = self.class.get(router.events_path, :query => params(query_params))
|
6
|
-
build_response_object(response)
|
7
|
-
end
|
8
|
-
|
9
|
-
def event(id)
|
10
|
-
by_name = id.is_a?(String) ? true : false
|
11
|
-
response = if by_name
|
12
|
-
find_event_by_name(id)
|
13
|
-
else
|
14
|
-
# self.class.get(router.character_path(:id => value), :query => params)
|
15
|
-
self.class.get(router.event_path(:id => id), :query => params)
|
16
|
-
end
|
17
|
-
build_response_object(response)
|
18
|
-
end
|
19
|
-
|
20
|
-
def event_characters(id, query_params = {})
|
21
|
-
if id.is_a?(String)
|
22
|
-
event = find_event_by_name(id)
|
23
|
-
return false unless event
|
24
|
-
id = event.id
|
25
|
-
end
|
26
|
-
response = self.class.get(router.event_characters_path(:id => id), :query => params(query_params))
|
27
|
-
build_response_object(response)
|
28
|
-
end
|
29
|
-
|
30
|
-
def event_comics(id, query_params = {})
|
31
|
-
if id.is_a?(String)
|
32
|
-
event = find_event_by_name(id)
|
33
|
-
return false unless event
|
34
|
-
id = event.id
|
35
|
-
end
|
36
|
-
response = self.class.get(router.event_comics_path(:id => id), :query => params(query_params))
|
37
|
-
build_response_object(response)
|
38
|
-
end
|
39
|
-
|
40
|
-
def event_creators(id, query_params = {})
|
41
|
-
if id.is_a?(String)
|
42
|
-
event = find_event_by_name(id)
|
43
|
-
return false unless event
|
44
|
-
id = event.id
|
45
|
-
end
|
46
|
-
response = self.class.get(router.event_creators_path(:id => id), :query => params(query_params))
|
47
|
-
build_response_object(response)
|
48
|
-
end
|
49
|
-
|
50
|
-
def event_series(id, query_params = {})
|
51
|
-
if id.is_a?(String)
|
52
|
-
event = find_event_by_name(id)
|
53
|
-
return false unless event
|
54
|
-
id = event.id
|
55
|
-
end
|
56
|
-
response = self.class.get(router.event_series_path(:id => id), :query => params(query_params))
|
57
|
-
build_response_object(response)
|
58
|
-
end
|
59
|
-
|
60
|
-
def event_stories(id, query_params = {})
|
61
|
-
if id.is_a?(String)
|
62
|
-
event = find_event_by_name(id)
|
63
|
-
return false unless event
|
64
|
-
id = event.id
|
65
|
-
end
|
66
|
-
response = self.class.get(router.event_stories_path(:id => id), :query => params(query_params))
|
67
|
-
build_response_object(response)
|
68
|
-
end
|
69
|
-
|
70
|
-
protected
|
71
|
-
def find_event_by_name(name)
|
72
|
-
response = self.events(:name => name)
|
73
|
-
return false unless response[:data][:results].size > 0
|
74
|
-
|
75
|
-
response.id = response[:data][:results][0][:id]
|
76
|
-
response
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|