marvel_api 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.document +1 -1
  3. data/.rspec +2 -1
  4. data/.travis.yml +8 -0
  5. data/Gemfile +11 -4
  6. data/Guardfile +5 -0
  7. data/LICENSE.txt +1 -1
  8. data/README.md +16 -4
  9. data/Rakefile +11 -8
  10. data/lib/marvel/client.rb +6 -14
  11. data/lib/marvel/connection.rb +10 -2
  12. data/lib/marvel/error.rb +16 -0
  13. data/lib/marvel/request.rb +22 -8
  14. data/lib/marvel/response.rb +21 -0
  15. data/lib/marvel/version.rb +14 -0
  16. data/marvel_api.gemspec +75 -18
  17. data/spec/fixtures/characters/character.json +341 -0
  18. data/spec/fixtures/characters/character_comics.json +4975 -0
  19. data/spec/fixtures/characters/character_events.json +1666 -0
  20. data/spec/fixtures/characters/character_series.json +6117 -0
  21. data/spec/fixtures/characters/character_stories.json +1873 -0
  22. data/spec/fixtures/characters/characters.json +3006 -0
  23. data/spec/fixtures/comics/comic.json +359 -0
  24. data/spec/fixtures/comics/comic_characters.json +4649 -0
  25. data/spec/fixtures/comics/comic_creators.json +4387 -0
  26. data/spec/fixtures/comics/comic_events.json +522 -0
  27. data/spec/fixtures/comics/comic_stories.json +1985 -0
  28. data/spec/fixtures/comics/comics.json +2246 -0
  29. data/spec/fixtures/creators/creator.json +340 -0
  30. data/spec/fixtures/creators/creator_comics.json +2856 -0
  31. data/spec/fixtures/creators/creator_events.json +1899 -0
  32. data/spec/fixtures/creators/creator_series.json +4686 -0
  33. data/spec/fixtures/creators/creator_stories.json +1491 -0
  34. data/spec/fixtures/creators/creators.json +1376 -0
  35. data/spec/fixtures/errors/empty_parameter.json +4 -0
  36. data/spec/fixtures/errors/excessive_filter_values.json +4 -0
  37. data/spec/fixtures/errors/invalid_credentials.json +4 -0
  38. data/spec/fixtures/errors/invalid_filter_value.json +4 -0
  39. data/spec/fixtures/errors/invalid_hash_ts_key_combo.json +4 -0
  40. data/spec/fixtures/errors/invalid_ordering.json +4 -0
  41. data/spec/fixtures/errors/invalid_parameter.json +4 -0
  42. data/spec/fixtures/errors/limit_invalid.json +4 -0
  43. data/spec/fixtures/errors/limit_over_100.json +4 -0
  44. data/spec/fixtures/errors/resource_not_found.json +4 -0
  45. data/spec/fixtures/events/event.json +522 -0
  46. data/spec/fixtures/events/event_characters.json +6397 -0
  47. data/spec/fixtures/events/event_comics.json +4718 -0
  48. data/spec/fixtures/events/event_creators.json +5869 -0
  49. data/spec/fixtures/events/event_series.json +2243 -0
  50. data/spec/fixtures/events/event_stories.json +4846 -0
  51. data/spec/fixtures/events/events.json +8613 -0
  52. data/spec/fixtures/series/serie.json +448 -0
  53. data/spec/fixtures/series/series.json +3464 -0
  54. data/spec/fixtures/series/series_characters.json +6029 -0
  55. data/spec/fixtures/series/series_comics.json +2935 -0
  56. data/spec/fixtures/series/series_creators.json +5923 -0
  57. data/spec/fixtures/series/series_events.json +944 -0
  58. data/spec/fixtures/series/series_stories.json +1544 -0
  59. data/spec/fixtures/stories/stories.json +1282 -0
  60. data/spec/fixtures/stories/story.json +117 -0
  61. data/spec/fixtures/stories/story_characters.json +794 -0
  62. data/spec/fixtures/stories/story_comics.json +522 -0
  63. data/spec/fixtures/stories/story_creators.json +1672 -0
  64. data/spec/fixtures/stories/story_events.json +522 -0
  65. data/spec/fixtures/stories/story_series.json +695 -0
  66. data/spec/marvel_api/client/client_character_spec.rb +142 -0
  67. data/spec/marvel_api/client/client_comic_spec.rb +141 -0
  68. data/spec/marvel_api/client/client_creator_spec.rb +139 -0
  69. data/spec/marvel_api/client/client_event_spec.rb +163 -0
  70. data/spec/marvel_api/client/client_series_spec.rb +165 -0
  71. data/spec/marvel_api/client/client_story_spec.rb +162 -0
  72. data/spec/marvel_api/error_spec.rb +192 -0
  73. data/spec/marvel_api_spec.rb +15 -3
  74. data/spec/spec_helper.rb +55 -4
  75. metadata +83 -27
  76. data/VERSION +0 -1
  77. data/spec/marvel_api/client_spec.rb +0 -7
@@ -1,9 +1,21 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
- describe 'Marvel' do
3
+ describe Marvel do
4
4
  describe '.new' do
5
- it 'should return a Marvel::Client' do
6
- Marvel.new.should be_a Marvel::Client
5
+ it 'returns a Marvel::Client' do
6
+ expect(Marvel.new).to be_a Marvel::Client
7
+ end
8
+ end
9
+
10
+ describe '.configure' do
11
+ it 'sets the api_key and private_key' do
12
+ Marvel.configure do |config|
13
+ config.api_key = '1234'
14
+ config.private_key = 'abcd'
15
+ end
16
+
17
+ expect(Marvel.api_key).to eq '1234'
18
+ expect(Marvel.private_key).to eq 'abcd'
7
19
  end
8
20
  end
9
21
  end
@@ -1,16 +1,67 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ]
8
+
9
+ SimpleCov.start
10
+
1
11
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
12
  $LOAD_PATH.unshift(File.dirname(__FILE__))
13
+
3
14
  require 'rspec'
15
+ require 'webmock/rspec'
4
16
  require 'marvel_api'
5
17
 
6
18
  # Requires supporting files with custom matchers and macros, etc,
7
19
  # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
20
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
9
21
 
10
22
  RSpec.configure do |config|
11
-
23
+ config.expect_with(:rspec) { |c| c.syntax = :expect }
24
+ end
25
+
26
+ WebMock.disable_net_connect!(allow: 'coveralls.io')
27
+
28
+ def marvel_test_client
29
+ Marvel::Client.new.tap do |client|
30
+ client.configure do |config|
31
+ config.api_key = '1234'
32
+ config.private_key = 'abcd'
33
+ end
34
+ end
35
+ end
36
+
37
+ AUTH = '?ts=1&apikey=1234&hash=ffd275c5130566a2916217b101f26150'
38
+
39
+ def stub_get(path, options = {})
40
+ file = options.delete(:returns)
41
+ code = options.delete(:response_code) || 200
42
+ etag = options.delete(:etag)
43
+ headers = Marvel::Connection::HEADERS
44
+ headers.merge!('If-None-Match' => etag) if etag
45
+ params = '&' + options.map { |k, v| "#{k}=#{v}" } * '&'
46
+ endpoint = Marvel::Connection::BASE_API_URL + path + AUTH + params
47
+ stub_request(:get, endpoint)
48
+ .with(headers: headers)
49
+ .to_return(body: fixture(file), status: code)
50
+ end
51
+
52
+ def fixture_path
53
+ File.expand_path('../fixtures', __FILE__)
54
+ end
55
+
56
+ def fixture(file)
57
+ File.new(fixture_path + '/' + file) rescue nil
12
58
  end
13
59
 
14
- Marvel.configure do |config|
15
-
60
+ module Marvel
61
+ module Request
62
+ private
63
+ def timestamp
64
+ '1'
65
+ end
66
+ end
16
67
  end
metadata CHANGED
@@ -1,57 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marvel_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rahul Horé
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-20 00:00:00.000000000 Z
11
+ date: 2014-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - "<"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.10'
17
20
  - - ">="
18
21
  - !ruby/object:Gem::Version
19
- version: '0'
22
+ version: '0.7'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - "<"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.10'
24
30
  - - ">="
25
31
  - !ruby/object:Gem::Version
26
- version: '0'
32
+ version: '0.7'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: faraday_middleware
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
37
+ - - "<"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.10'
31
40
  - - ">="
32
41
  - !ruby/object:Gem::Version
33
- version: '0'
42
+ version: '0.8'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
47
+ - - "<"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.10'
38
50
  - - ">="
39
51
  - !ruby/object:Gem::Version
40
- version: '0'
52
+ version: '0.8'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: hashie
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
57
  - - ">="
46
58
  - !ruby/object:Gem::Version
47
- version: '0'
59
+ version: 0.4.0
48
60
  type: :runtime
49
61
  prerelease: false
50
62
  version_requirements: !ruby/object:Gem::Requirement
51
63
  requirements:
52
64
  - - ">="
53
65
  - !ruby/object:Gem::Version
54
- version: '0'
66
+ version: 0.4.0
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: pry
57
69
  requirement: !ruby/object:Gem::Requirement
@@ -136,22 +148,7 @@ dependencies:
136
148
  - - "~>"
137
149
  - !ruby/object:Gem::Version
138
150
  version: 1.8.7
139
- - !ruby/object:Gem::Dependency
140
- name: simplecov
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- description: Marvel_API is a Ruby gem that lets you explore the Marvel Universe like
154
- never before.
151
+ description: Explore the Marvel Universe like never before.
155
152
  email: hore.rahul@gmail.com
156
153
  executables: []
157
154
  extensions: []
@@ -161,18 +158,77 @@ extra_rdoc_files:
161
158
  files:
162
159
  - ".document"
163
160
  - ".rspec"
161
+ - ".travis.yml"
164
162
  - Gemfile
163
+ - Guardfile
165
164
  - LICENSE.txt
166
165
  - README.md
167
166
  - Rakefile
168
- - VERSION
169
167
  - lib/marvel/client.rb
170
168
  - lib/marvel/configuration.rb
171
169
  - lib/marvel/connection.rb
170
+ - lib/marvel/error.rb
172
171
  - lib/marvel/request.rb
172
+ - lib/marvel/response.rb
173
+ - lib/marvel/version.rb
173
174
  - lib/marvel_api.rb
174
175
  - marvel_api.gemspec
175
- - spec/marvel_api/client_spec.rb
176
+ - spec/fixtures/characters/character.json
177
+ - spec/fixtures/characters/character_comics.json
178
+ - spec/fixtures/characters/character_events.json
179
+ - spec/fixtures/characters/character_series.json
180
+ - spec/fixtures/characters/character_stories.json
181
+ - spec/fixtures/characters/characters.json
182
+ - spec/fixtures/comics/comic.json
183
+ - spec/fixtures/comics/comic_characters.json
184
+ - spec/fixtures/comics/comic_creators.json
185
+ - spec/fixtures/comics/comic_events.json
186
+ - spec/fixtures/comics/comic_stories.json
187
+ - spec/fixtures/comics/comics.json
188
+ - spec/fixtures/creators/creator.json
189
+ - spec/fixtures/creators/creator_comics.json
190
+ - spec/fixtures/creators/creator_events.json
191
+ - spec/fixtures/creators/creator_series.json
192
+ - spec/fixtures/creators/creator_stories.json
193
+ - spec/fixtures/creators/creators.json
194
+ - spec/fixtures/errors/empty_parameter.json
195
+ - spec/fixtures/errors/excessive_filter_values.json
196
+ - spec/fixtures/errors/invalid_credentials.json
197
+ - spec/fixtures/errors/invalid_filter_value.json
198
+ - spec/fixtures/errors/invalid_hash_ts_key_combo.json
199
+ - spec/fixtures/errors/invalid_ordering.json
200
+ - spec/fixtures/errors/invalid_parameter.json
201
+ - spec/fixtures/errors/limit_invalid.json
202
+ - spec/fixtures/errors/limit_over_100.json
203
+ - spec/fixtures/errors/resource_not_found.json
204
+ - spec/fixtures/events/event.json
205
+ - spec/fixtures/events/event_characters.json
206
+ - spec/fixtures/events/event_comics.json
207
+ - spec/fixtures/events/event_creators.json
208
+ - spec/fixtures/events/event_series.json
209
+ - spec/fixtures/events/event_stories.json
210
+ - spec/fixtures/events/events.json
211
+ - spec/fixtures/series/serie.json
212
+ - spec/fixtures/series/series.json
213
+ - spec/fixtures/series/series_characters.json
214
+ - spec/fixtures/series/series_comics.json
215
+ - spec/fixtures/series/series_creators.json
216
+ - spec/fixtures/series/series_events.json
217
+ - spec/fixtures/series/series_stories.json
218
+ - spec/fixtures/stories/stories.json
219
+ - spec/fixtures/stories/story.json
220
+ - spec/fixtures/stories/story_characters.json
221
+ - spec/fixtures/stories/story_comics.json
222
+ - spec/fixtures/stories/story_creators.json
223
+ - spec/fixtures/stories/story_events.json
224
+ - spec/fixtures/stories/story_series.json
225
+ - spec/marvel_api/client/client_character_spec.rb
226
+ - spec/marvel_api/client/client_comic_spec.rb
227
+ - spec/marvel_api/client/client_creator_spec.rb
228
+ - spec/marvel_api/client/client_event_spec.rb
229
+ - spec/marvel_api/client/client_series_spec.rb
230
+ - spec/marvel_api/client/client_story_spec.rb
231
+ - spec/marvel_api/error_spec.rb
176
232
  - spec/marvel_api_spec.rb
177
233
  - spec/spec_helper.rb
178
234
  homepage: http://github.com/O-I/marvel
@@ -187,7 +243,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
243
  requirements:
188
244
  - - ">="
189
245
  - !ruby/object:Gem::Version
190
- version: '0'
246
+ version: 1.9.3
191
247
  required_rubygems_version: !ruby/object:Gem::Requirement
192
248
  requirements:
193
249
  - - ">="
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.2.0
@@ -1,7 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Marvel::Client do
4
- before do
5
- @client = Marvel::Client.new
6
- end
7
- end