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.
@@ -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