marvel_api 0.2.0 → 0.2.1

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