marvelite 0.0.5 → 0.0.6.a

Sign up to get free protection for your applications and to get access to all the features.
@@ -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/40128?apikey=123456&ts=1&hash=d4f1bab013916a533ef31e3ad5fb0887', 'events/event.json')
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(40128)).to be_a(Marvelite::API::Response)
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(40128)[:data][:results][0][:title]).to eq('Acts of Vengeance!')
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(40128)[:data][:results][0][:title]).to eq('Acts of Vengeance!')
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.5
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-06 00:00:00.000000000 Z
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: '0'
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