marver 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -14
- data/lib/marver.rb +16 -2
- data/lib/marver/api.rb +9 -1
- data/lib/marver/api/client.rb +9 -6
- data/lib/marver/api/credentials.rb +1 -1
- data/lib/marver/api/errors.rb +33 -0
- data/lib/marver/client.rb +3 -1
- data/lib/marver/entities/character.rb +11 -23
- data/lib/marver/entities/comic.rb +19 -35
- data/lib/marver/entities/creator.rb +5 -26
- data/lib/marver/entities/event.rb +17 -26
- data/lib/marver/entities/serie.rb +15 -29
- data/lib/marver/entities/story.rb +11 -23
- data/lib/marver/entities/summary/character.rb +2 -2
- data/lib/marver/entities/summary/comic.rb +4 -4
- data/lib/marver/entities/summary/creator.rb +4 -2
- data/lib/marver/entities/summary/event.rb +2 -2
- data/lib/marver/entities/summary/serie.rb +3 -3
- data/lib/marver/entities/summary/story.rb +2 -2
- data/lib/marver/entities/url.rb +3 -3
- data/lib/marver/factories/character.rb +28 -0
- data/lib/marver/factories/comic.rb +27 -0
- data/lib/marver/factories/creator.rb +28 -0
- data/lib/marver/factories/date.rb +15 -0
- data/lib/marver/factories/event.rb +28 -0
- data/lib/marver/factories/factory.rb +20 -0
- data/lib/marver/factories/image.rb +15 -0
- data/lib/marver/factories/price.rb +15 -0
- data/lib/marver/factories/serie.rb +28 -0
- data/lib/marver/factories/story.rb +28 -0
- data/lib/marver/factories/summary/character.rb +23 -0
- data/lib/marver/factories/summary/comic.rb +23 -0
- data/lib/marver/factories/summary/creator.rb +23 -0
- data/lib/marver/factories/summary/event.rb +23 -0
- data/lib/marver/factories/summary/serie.rb +23 -0
- data/lib/marver/factories/summary/story.rb +23 -0
- data/lib/marver/factories/summary/summary.rb +12 -0
- data/lib/marver/factories/text_object.rb +16 -0
- data/lib/marver/factories/url.rb +15 -0
- data/lib/marver/finders/character_finder.rb +16 -2
- data/lib/marver/finders/comic_finder.rb +17 -1
- data/lib/marver/finders/creator_finder.rb +26 -0
- data/lib/marver/finders/event_finder.rb +16 -2
- data/lib/marver/finders/serie_finder.rb +16 -2
- data/lib/marver/finders/story_finder.rb +15 -2
- data/lib/marver/mappers/character_attributes_mapper.rb +25 -0
- data/lib/marver/mappers/comic_attributes_mapper.rb +40 -0
- data/lib/marver/mappers/creator_attributes_mapper.rb +29 -0
- data/lib/marver/mappers/event_attributes_mapper.rb +29 -0
- data/lib/marver/mappers/mappable.rb +86 -0
- data/lib/marver/mappers/serie_attributes_mapper.rb +32 -0
- data/lib/marver/mappers/story_attributes_mapper.rb +26 -0
- data/lib/marver/utils/finder_param_filter.rb +13 -0
- data/lib/marver/utils/string_helper.rb +7 -0
- data/lib/marver/version.rb +1 -1
- data/spec/marver/.DS_Store +0 -0
- data/spec/marver/api/client_spec.rb +1 -1
- data/spec/marver/api/credentials_spec.rb +2 -2
- data/spec/marver/api/error_spec.rb +9 -9
- data/spec/marver/client_spec.rb +8 -0
- data/spec/marver/entities/character_spec.rb +1 -1
- data/spec/marver/entities/comic_spec.rb +1 -1
- data/spec/marver/entities/creator_spec.rb +2 -2
- data/spec/marver/entities/event_spec.rb +1 -1
- data/spec/marver/entities/serie_spec.rb +2 -2
- data/spec/marver/entities/story_spec.rb +2 -2
- data/spec/marver/entities/summary/comic_spec.rb +9 -1
- data/spec/marver/factories/character_spec.rb +12 -0
- data/spec/marver/factories/comic_spec.rb +12 -0
- data/spec/marver/factories/creator_spec.rb +12 -0
- data/spec/marver/factories/date_spec.rb +13 -0
- data/spec/marver/factories/event_spec.rb +12 -0
- data/spec/marver/factories/image_spec.rb +13 -0
- data/spec/marver/factories/price_spec.rb +13 -0
- data/spec/marver/factories/serie_spec.rb +12 -0
- data/spec/marver/factories/story_spec.rb +12 -0
- data/spec/marver/factories/summary/character_spec.rb +13 -0
- data/spec/marver/factories/summary/comic_spec.rb +13 -0
- data/spec/marver/factories/summary/creator_spec.rb +13 -0
- data/spec/marver/factories/summary/event_spec.rb +13 -0
- data/spec/marver/factories/summary/serie_spec.rb +13 -0
- data/spec/marver/factories/summary/story_spec.rb +13 -0
- data/spec/marver/factories/text_object_spec.rb +13 -0
- data/spec/marver/factories/url_spec.rb +13 -0
- data/spec/marver/finders/character_finder_spec.rb +17 -9
- data/spec/marver/finders/comic_finder_spec.rb +11 -2
- data/spec/marver/finders/creator_finder_spec.rb +27 -0
- data/spec/marver/finders/event_finder_spec.rb +11 -2
- data/spec/marver/finders/serie_finder_spec.rb +10 -2
- data/spec/marver/finders/story_finder_spec.rb +11 -3
- data/spec/marver/mappers/character_attributes_mapper_spec.rb +14 -0
- data/spec/marver/mappers/comic_attributes_mapper_spec.rb +17 -0
- data/spec/marver/mappers/creator_attributes_mapper_spec.rb +15 -0
- data/spec/marver/mappers/event_attributes_mapper_spec.rb +14 -0
- data/spec/marver/mappers/serie_attributes_mapper_spec.rb +17 -0
- data/spec/marver/mappers/story_attributes_mapper_spec.rb +15 -0
- data/spec/marver/utils/finder_param_filter_spec.rb +17 -0
- data/spec/marver/utils/string_helper_spec.rb +7 -0
- metadata +86 -7
- data/TODO +0 -3
- data/lib/marver/api/error.rb +0 -13
- data/lib/marver/entities/commonable.rb +0 -37
- data/lib/marver/entities/queryable.rb +0 -12
- data/lib/marver/entities/summarizable.rb +0 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6749397ee2f275b76c39a716ebd42e4352b258cd
|
4
|
+
data.tar.gz: f5d09a4721ceb7ad5a748a7d2995babe02449068
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e14a63ed2ad301af75265219df20773f8dca10b53e0b75f9f8fd9bbd1ead3f00c025a798eef6d3f68a94c02475feca7115b530bb85c52851a95326b4fcad3e23
|
7
|
+
data.tar.gz: ed49c11bc4f0241e859e294e9f70c348e0b2ec4e0a5eb0afecb80b22b6b6a6f3c151330d85aac545273c391178233f87bd0634b2f243d503ce87a2c46a5af941
|
data/README.md
CHANGED
@@ -29,11 +29,11 @@ Marver.configure do |config|
|
|
29
29
|
end
|
30
30
|
|
31
31
|
client = Marver::Client.new
|
32
|
-
client.characters.
|
33
|
-
client.series.
|
34
|
-
client.events.
|
35
|
-
client.stories.
|
36
|
-
client.comics.
|
32
|
+
client.characters.find_by_name 'Hulk'
|
33
|
+
client.series.find_by_title 'The Avengers'
|
34
|
+
client.events.find_by_title 'Fall of the mutants'
|
35
|
+
client.stories.find_by_title 'Name of a story'
|
36
|
+
client.comics.find_by_title 'Spiderman'
|
37
37
|
```
|
38
38
|
|
39
39
|
Also, you can inspect summary (trimmed) objects of the associated entities to one entity.
|
@@ -45,7 +45,7 @@ Marver.configure do |config|
|
|
45
45
|
end
|
46
46
|
|
47
47
|
client = Marver::Client.new
|
48
|
-
hulk = client.characters.
|
48
|
+
hulk = client.characters.find_by_name 'Hulk'
|
49
49
|
hulk.comics # Returns an array of comics summaries
|
50
50
|
hulk.stories # Returns an array of stories where Hulk appears
|
51
51
|
```
|
@@ -58,14 +58,8 @@ comic.full # This will issue an API call and grab the full object with all data
|
|
58
58
|
```
|
59
59
|
|
60
60
|
### TO DO:
|
61
|
-
|
62
|
-
##### Entity Finder classes
|
63
|
-
Should be implemented within the Marver::Client class.
|
64
|
-
|
65
|
-
CreatorFinder
|
61
|
+
Inspect dependency graph?
|
66
62
|
|
67
63
|
#### Author
|
68
64
|
Ile Eftimov <br/>
|
69
|
-
[twitter](http://twitter.com/fteem) [website](http://eftimov.net)
|
70
|
-
|
71
|
-
Any kind of contribution is welcomed & encouraged :)
|
65
|
+
[twitter](http://twitter.com/fteem) [website](http://eftimov.net)
|
data/lib/marver.rb
CHANGED
@@ -3,6 +3,7 @@ require 'time'
|
|
3
3
|
require 'marver/version'
|
4
4
|
|
5
5
|
module Marver
|
6
|
+
FINDER_FILTERS = [ :orderBy, :limit, :offset ]
|
6
7
|
|
7
8
|
# Base Classes
|
8
9
|
autoload :Client, 'marver/client'
|
@@ -15,12 +16,26 @@ module Marver
|
|
15
16
|
autoload :ComicFinder, 'marver/finders/comic_finder'
|
16
17
|
autoload :EventFinder, 'marver/finders/event_finder'
|
17
18
|
autoload :StoryFinder, 'marver/finders/story_finder'
|
19
|
+
autoload :CreatorFinder, 'marver/finders/creator_finder'
|
20
|
+
|
21
|
+
#Factories
|
22
|
+
autoload :Factory, 'marver/factories/factory'
|
18
23
|
|
19
24
|
# API
|
20
25
|
autoload :API, 'marver/api'
|
21
26
|
|
22
27
|
# Helpers & builders
|
23
|
-
autoload :StringHelper, 'marver/
|
28
|
+
autoload :StringHelper, 'marver/utils/string_helper'
|
29
|
+
autoload :FinderParamFilter, 'marver/utils/finder_param_filter'
|
30
|
+
|
31
|
+
# Mappers
|
32
|
+
autoload :Mappable, 'marver/mappers/mappable'
|
33
|
+
autoload :ComicAttributesMapper, 'marver/mappers/comic_attributes_mapper'
|
34
|
+
autoload :CharacterAttributesMapper, 'marver/mappers/character_attributes_mapper'
|
35
|
+
autoload :CreatorAttributesMapper, 'marver/mappers/creator_attributes_mapper'
|
36
|
+
autoload :EventAttributesMapper, 'marver/mappers/event_attributes_mapper'
|
37
|
+
autoload :SerieAttributesMapper, 'marver/mappers/serie_attributes_mapper'
|
38
|
+
autoload :StoryAttributesMapper, 'marver/mappers/story_attributes_mapper'
|
24
39
|
|
25
40
|
# Common Entities
|
26
41
|
autoload :TextObject, 'marver/entities/text_object'
|
@@ -42,7 +57,6 @@ module Marver
|
|
42
57
|
|
43
58
|
autoload :Summarizable, 'marver/entities/summarizable'
|
44
59
|
autoload :Commonable, 'marver/entities/commonable'
|
45
|
-
autoload :Queryable, 'marver/entities/queryable'
|
46
60
|
|
47
61
|
|
48
62
|
class << self
|
data/lib/marver/api.rb
CHANGED
@@ -3,6 +3,14 @@ module Marver
|
|
3
3
|
autoload :Client, 'marver/api/client'
|
4
4
|
autoload :Response, 'marver/api/response'
|
5
5
|
autoload :Credentials, 'marver/api/credentials'
|
6
|
-
autoload :
|
6
|
+
autoload :ErrorHandler, 'marver/api/errors'
|
7
|
+
end
|
8
|
+
|
9
|
+
module Error
|
10
|
+
autoload :Conflict, 'marver/api/errors'
|
11
|
+
autoload :NotFound, 'marver/api/errors'
|
12
|
+
autoload :CredentialsFault, 'marver/api/errors'
|
13
|
+
autoload :MethodNotAllowed, 'marver/api/errors'
|
14
|
+
autoload :Forbidden, 'marver/api/errors'
|
7
15
|
end
|
8
16
|
end
|
data/lib/marver/api/client.rb
CHANGED
@@ -4,19 +4,22 @@ require 'digest/md5'
|
|
4
4
|
module Marver
|
5
5
|
module API
|
6
6
|
class Client
|
7
|
-
include Marver::Queryable
|
8
|
-
|
9
7
|
API_VERSION = "v1"
|
10
8
|
API_ENDPOINT = "http://gateway.marvel.com"
|
11
9
|
|
12
10
|
def get(entity, options)
|
13
|
-
|
14
|
-
|
15
|
-
Marver::API::Response.new(
|
11
|
+
url = "#{endpoint}/#{entity.to_s}"
|
12
|
+
json = RestClient.get url, { params: options.merge(credentials) }
|
13
|
+
Marver::API::Response.new(json)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_uri(uri)
|
17
|
+
response = RestClient.get uri, { params: credentials }
|
18
|
+
Marver::API::Response.new(response)
|
16
19
|
end
|
17
20
|
|
18
21
|
def endpoint
|
19
|
-
"#{API_ENDPOINT}/#{API_VERSION}/public
|
22
|
+
"#{API_ENDPOINT}/#{API_VERSION}/public"
|
20
23
|
end
|
21
24
|
|
22
25
|
def credentials
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Marver
|
2
|
+
module API
|
3
|
+
class ErrorHandler
|
4
|
+
def initialize(ex)
|
5
|
+
@message = ex.response['status']
|
6
|
+
end
|
7
|
+
|
8
|
+
def handle!
|
9
|
+
case @code
|
10
|
+
when 401
|
11
|
+
raise Marver::Error::CredentialsFault.new(@message)
|
12
|
+
when 403
|
13
|
+
raise Marver::Error::MethodNotAllowed.new(@message)
|
14
|
+
when 404
|
15
|
+
raise Marver::Error::NotFound.new(@message)
|
16
|
+
when 405
|
17
|
+
raise Marver::Error::Forbidden.new(@message)
|
18
|
+
when 409
|
19
|
+
raise Marver::Error::Conflict.new(@message)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
module Error
|
27
|
+
class Conflict < Exception; end
|
28
|
+
class NotFound < Exception; end
|
29
|
+
class CredentialsFault < Exception; end
|
30
|
+
class MethodNotAllowed < Exception; end
|
31
|
+
class Forbidden < Exception; end
|
32
|
+
end
|
33
|
+
end
|
data/lib/marver/client.rb
CHANGED
@@ -2,13 +2,15 @@ require './lib/marver.rb'
|
|
2
2
|
|
3
3
|
module Marver
|
4
4
|
class Client
|
5
|
-
attr_reader :characters, :series, :comics, :stories
|
5
|
+
attr_reader :characters, :series, :comics, :stories, :creators, :events
|
6
6
|
|
7
7
|
def initialize
|
8
8
|
@characters = Marver::CharacterFinder.new
|
9
9
|
@series = Marver::SerieFinder.new
|
10
10
|
@comics = Marver::ComicFinder.new
|
11
11
|
@stories = Marver::StoryFinder.new
|
12
|
+
@creators = Marver::CreatorFinder.new
|
13
|
+
@events = Marver::EventFinder.new
|
12
14
|
end
|
13
15
|
|
14
16
|
end
|
@@ -2,32 +2,20 @@ require './lib/marver.rb'
|
|
2
2
|
|
3
3
|
module Marver
|
4
4
|
class Character
|
5
|
-
|
6
|
-
|
5
|
+
attr_reader :id, :resource_uri, :description, :thumbnail, :urls, :name,
|
6
|
+
:series, :stories, :events, :comics, :full_path
|
7
7
|
|
8
|
-
|
8
|
+
def initialize(args)
|
9
|
+
@series = args[:series]
|
10
|
+
@stories = args[:stories]
|
11
|
+
@events = args[:events]
|
12
|
+
@comics = args[:comics]
|
13
|
+
@urls = args[:urls]
|
14
|
+
@thumbnail = args[:thumbnail]
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
if results.kind_of?(Array)
|
13
|
-
results.collect do |character|
|
14
|
-
Marver::Character.new(character)
|
15
|
-
end
|
16
|
-
else
|
17
|
-
new(results)
|
18
|
-
end
|
16
|
+
args[:attributes].each do |name, value|
|
17
|
+
instance_variable_set("@#{name}", value)
|
19
18
|
end
|
20
19
|
end
|
21
|
-
|
22
|
-
def initialize(json)
|
23
|
-
@json = json
|
24
|
-
|
25
|
-
@description = json['description']
|
26
|
-
|
27
|
-
@id = json['id'].to_i
|
28
|
-
@name = json['name']
|
29
|
-
@resource_uri = json['resourceURI']
|
30
|
-
end
|
31
|
-
|
32
20
|
end
|
33
21
|
end
|
@@ -2,43 +2,27 @@ require './lib/marver.rb'
|
|
2
2
|
|
3
3
|
module Marver
|
4
4
|
class Comic
|
5
|
-
|
6
|
-
|
5
|
+
attr_reader :id, :title, :stories, :series, :events, :characters, :variant_description,
|
6
|
+
:images, :ean, :format, :resource_uri, :stories, :text_objects, :digital_id,
|
7
|
+
:isbn, :diamond_code, :thumbnail, :upc, :issue_number, :prices, :issn, :dates,
|
8
|
+
:urls, :page_count, :description, :creators
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
def initialize(args)
|
11
|
+
@series = args[:series]
|
12
|
+
@stories = args[:stories]
|
13
|
+
@creators = args[:creators]
|
14
|
+
@events = args[:events]
|
15
|
+
@characters = args[:characters]
|
16
|
+
@urls = args[:urls]
|
17
|
+
@prices = args[:prices]
|
18
|
+
@images = args[:images]
|
19
|
+
@thumbnail = args[:thumbnail]
|
20
|
+
@text_objects = args[:text_objects]
|
21
|
+
@dates = args[:dates]
|
12
22
|
|
13
|
-
|
14
|
-
|
15
|
-
if results.kind_of?(Array)
|
16
|
-
results.collect do |comic|
|
17
|
-
Marver::Comic.new(comic)
|
18
|
-
end
|
19
|
-
else
|
20
|
-
new(results)
|
21
|
-
end
|
23
|
+
args[:attributes].each do |name, value|
|
24
|
+
instance_variable_set("@#{name}", value)
|
22
25
|
end
|
23
26
|
end
|
24
|
-
|
25
|
-
def initialize(json)
|
26
|
-
@json = json
|
27
|
-
@title = json['title']
|
28
|
-
@resource_uri = json['resourceURI']
|
29
|
-
@id = json['id'].to_i
|
30
|
-
@digital_id = json['digitalId']
|
31
|
-
@issue_number = json['issueNumber']
|
32
|
-
@variant_description = json['variantDescription']
|
33
|
-
@description = json['description']
|
34
|
-
@isbn = json['isbn']
|
35
|
-
@upc = json['upc']
|
36
|
-
@diamond_code = json['diamondCode']
|
37
|
-
@ean = json['ean']
|
38
|
-
@issn = json['issn']
|
39
|
-
@format = json['format']
|
40
|
-
@page_count = json['pageCount']
|
41
|
-
end
|
42
|
-
|
43
27
|
end
|
44
|
-
end
|
28
|
+
end
|
@@ -1,33 +1,12 @@
|
|
1
1
|
module Marver
|
2
2
|
class Creator
|
3
|
-
|
4
|
-
|
3
|
+
attr_reader :id, :first_name, :middle_name, :last_name, :full_name, :urls,
|
4
|
+
:suffix, :resource_uri, :series, :stories, :comics, :events, :thumbnail
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def build(results)
|
11
|
-
if results.kind_of?(Array)
|
12
|
-
results.collect do |creator|
|
13
|
-
Marver::Creator.new(creator)
|
14
|
-
end
|
15
|
-
else
|
16
|
-
new(results)
|
17
|
-
end
|
6
|
+
def initialize(attributes)
|
7
|
+
attributes.each do |name, value|
|
8
|
+
instance_variable_set("@#{name}", value)
|
18
9
|
end
|
19
10
|
end
|
20
|
-
|
21
|
-
def initialize(json)
|
22
|
-
@json = json
|
23
|
-
@id = @json['id']
|
24
|
-
@first_name = @json['firstName']
|
25
|
-
@middle_name = @json['middleName']
|
26
|
-
@last_name = @json['lastName']
|
27
|
-
@full_name = @json['fullName']
|
28
|
-
@suffix = @json['suffix']
|
29
|
-
@resource_uri = @json['resourceURI']
|
30
|
-
end
|
31
|
-
|
32
11
|
end
|
33
12
|
end
|
@@ -1,34 +1,25 @@
|
|
1
1
|
module Marver
|
2
2
|
class Event
|
3
|
-
|
4
|
-
|
3
|
+
attr_reader :title, :resource_uri, :description, :start, :end, :next, :previous,
|
4
|
+
:series, :stories, :events, :comics, :characters, :creators, :urls, :thumbnail
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
def initialize(args)
|
7
|
+
@next = args[:next]
|
8
|
+
@previous = args[:previous]
|
9
|
+
@creators = args[:creators]
|
10
|
+
@characters = args[:characters]
|
11
|
+
@series = args[:series]
|
12
|
+
@stories = args[:stories]
|
13
|
+
@events = args[:events]
|
14
|
+
@comics = args[:comics]
|
15
|
+
@urls = args[:urls]
|
16
|
+
@thumbnail = args[:thumbnail]
|
17
|
+
@start = args[:start]
|
18
|
+
@end = args[:_end]
|
8
19
|
|
9
|
-
|
10
|
-
|
11
|
-
if results.kind_of?(Array)
|
12
|
-
results.collect do |event|
|
13
|
-
Marver::Event.new(event)
|
14
|
-
end
|
15
|
-
else
|
16
|
-
new(results)
|
17
|
-
end
|
20
|
+
args[:attributes].each do |name, value|
|
21
|
+
instance_variable_set("@#{name}", value)
|
18
22
|
end
|
19
23
|
end
|
20
|
-
|
21
|
-
def initialize(json)
|
22
|
-
@json = json
|
23
|
-
|
24
|
-
@title = @json['title']
|
25
|
-
@resource_uri = @json['resourceURI']
|
26
|
-
|
27
|
-
@description = @json['description']
|
28
|
-
@start = DateTime.parse(@json['start'])
|
29
|
-
@end = DateTime.parse(@json['end'])
|
30
|
-
@next = Marver::Summary::Event.new(@json['next'])
|
31
|
-
@previous = Marver::Summary::Event.new(@json['previous'])
|
32
|
-
end
|
33
24
|
end
|
34
25
|
end
|
@@ -1,37 +1,23 @@
|
|
1
1
|
module Marver
|
2
2
|
class Serie
|
3
|
-
|
4
|
-
|
3
|
+
attr_reader :id, :title, :resource_uri, :description, :start_year, :end_year, :comics,
|
4
|
+
:rating, :previous, :stories, :events, :creators, :characters, :next,
|
5
|
+
:urls, :thumbnail
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
def initialize(args)
|
8
|
+
@stories = args[:stories]
|
9
|
+
@events = args[:events]
|
10
|
+
@creators = args[:creators]
|
11
|
+
@characters = args[:characters]
|
12
|
+
@next = args[:next_serie]
|
13
|
+
@previous = args[:prev_serie]
|
14
|
+
@comics = args[:comics]
|
15
|
+
@urls = args[:urls]
|
16
|
+
@thumbnail = args[:thumbnail]
|
8
17
|
|
9
|
-
|
10
|
-
|
11
|
-
if results.kind_of?(Array)
|
12
|
-
results.collect do |serie|
|
13
|
-
Marver::Serie.new(serie)
|
14
|
-
end
|
15
|
-
else
|
16
|
-
new(results)
|
17
|
-
end
|
18
|
+
args[:attributes].each do |name, value|
|
19
|
+
instance_variable_set("@#{name}", value)
|
18
20
|
end
|
19
21
|
end
|
20
|
-
|
21
|
-
def initialize(json)
|
22
|
-
@json = json
|
23
|
-
|
24
|
-
@id = @json['id']
|
25
|
-
@title = @json['title']
|
26
|
-
@resource_uri = @json['resourceURI']
|
27
|
-
@description = @json['description']
|
28
|
-
@start_year = @json['startYear']
|
29
|
-
@end_year = @json['endYear']
|
30
|
-
@rating = @json['rating']
|
31
|
-
|
32
|
-
@next = Marver::Summary::Serie.new(@json['next'])
|
33
|
-
@previous = Marver::Summary::Serie.new(@json['previous'])
|
34
|
-
end
|
35
|
-
|
36
22
|
end
|
37
23
|
end
|