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
@@ -2,32 +2,20 @@ require './lib/marver.rb'
|
|
2
2
|
|
3
3
|
module Marver
|
4
4
|
class Story
|
5
|
-
|
6
|
-
|
5
|
+
attr_reader :title, :type, :resource_uri, :description, :thumbnail, :original_issue,
|
6
|
+
:characters, :creators, :events, :series, :comics
|
7
7
|
|
8
|
-
|
8
|
+
def initialize(args)
|
9
|
+
@characters = args[:characters]
|
10
|
+
@creators = args[:creators]
|
11
|
+
@events = args[:events]
|
12
|
+
@series = args[:series]
|
13
|
+
@comics = args[:comics]
|
14
|
+
@original_issue = args[:original_issue]
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
if results.kind_of?(Array)
|
13
|
-
results.collect do |story|
|
14
|
-
Marver::Story.new(story)
|
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
|
-
@title = @json['title']
|
26
|
-
@type = @json['type']
|
27
|
-
@resource_uri = @json['resourceURI']
|
28
|
-
@description = @json['description']
|
29
|
-
|
30
|
-
@original_issue = Marver::Summary::Comic.new(@json['originalIssue'])
|
31
|
-
end
|
32
20
|
end
|
33
21
|
end
|
@@ -14,8 +14,8 @@ module Marver
|
|
14
14
|
|
15
15
|
def full
|
16
16
|
response = Marver::API::Response.new(RestClient.get(@resource_uri))
|
17
|
-
|
18
|
-
Marver::Character.
|
17
|
+
results = Marver::DataContainer.new(response).results
|
18
|
+
Marver::Factory::Character.new(results).build
|
19
19
|
end
|
20
20
|
|
21
21
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require './lib/marver
|
1
|
+
require './lib/marver'
|
2
2
|
|
3
3
|
module Marver
|
4
4
|
module Summary
|
@@ -12,9 +12,9 @@ module Marver
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def full
|
15
|
-
response = Marver::API::
|
16
|
-
|
17
|
-
Marver::Comic.
|
15
|
+
response = Marver::API::Client.new.get_uri(@resource_uri)
|
16
|
+
results = Marver::DataContainer.new(response).results
|
17
|
+
Marver::Factory::Comic.new(results).build
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require './lib/marver'
|
2
|
+
|
1
3
|
module Marver
|
2
4
|
module Summary
|
3
5
|
class Creator
|
@@ -11,8 +13,8 @@ module Marver
|
|
11
13
|
|
12
14
|
def full
|
13
15
|
response = Marver::API::Response.new(RestClient.get(@resource_uri))
|
14
|
-
|
15
|
-
Marver::Creator.
|
16
|
+
results = Marver::DataContainer.new(response).results
|
17
|
+
Marver::Factory::Creator.new(results).build
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
@@ -12,8 +12,8 @@ module Marver
|
|
12
12
|
|
13
13
|
def full
|
14
14
|
response = Marver::API::Response.new(RestClient.get(@resource_uri))
|
15
|
-
|
16
|
-
Marver::Event.
|
15
|
+
results = Marver::DataContainer.new(response).results
|
16
|
+
Marver::Factory::Event.new(results).build
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require './lib/marver.rb'
|
1
2
|
module Marver
|
2
3
|
module Summary
|
3
4
|
class Serie
|
@@ -10,10 +11,9 @@ module Marver
|
|
10
11
|
|
11
12
|
def full
|
12
13
|
response = Marver::API::Response.new(RestClient.get(@resource_uri))
|
13
|
-
|
14
|
-
Marver::Serie.
|
14
|
+
results = Marver::DataContainer.new(response).results
|
15
|
+
Marver::Factory::Serie.new(results).build
|
15
16
|
end
|
16
|
-
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -12,8 +12,8 @@ module Marver
|
|
12
12
|
|
13
13
|
def full
|
14
14
|
response = Marver::API::Response.new(RestClient.get(@resource_uri))
|
15
|
-
|
16
|
-
Marver::Story.
|
15
|
+
results = Marver::DataContainer.new(response).results
|
16
|
+
Marver::Factory::Story.new(results).build
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lib/marver/entities/url.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require './lib/marver.rb'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
class Character
|
6
|
+
|
7
|
+
def initialize(results)
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |character|
|
14
|
+
create_character(character)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
create_character(@results)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def create_character(params)
|
23
|
+
attributes = Marver::CharacterAttributesMapper.new(params).map
|
24
|
+
Marver::Character.new(attributes: attributes)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require './lib/marver.rb'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
class Comic
|
6
|
+
def initialize(results)
|
7
|
+
@results = results
|
8
|
+
end
|
9
|
+
|
10
|
+
def build
|
11
|
+
if @results.kind_of?(Array)
|
12
|
+
@results.collect do |comic|
|
13
|
+
create_comic(comic)
|
14
|
+
end
|
15
|
+
else
|
16
|
+
create_comic(@results)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
def create_comic(params)
|
22
|
+
attributes = ComicAttributesMapper.new(params).map
|
23
|
+
Marver::Comic.new(attributes: attributes)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require './lib/marver.rb'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
class Creator
|
6
|
+
|
7
|
+
def initialize(results)
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |creator|
|
14
|
+
create_creator(creator)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
create_creator(@results)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def create_creator(params)
|
23
|
+
attributes = CreatorAttributesMapper.new(params).map
|
24
|
+
Marver::Creator.new(attributes)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require './lib/marver.rb'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
class Event
|
6
|
+
|
7
|
+
def initialize(results)
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |event|
|
14
|
+
create_event(event)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
create_event(@results)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def create_event(params)
|
23
|
+
attributes = Marver::EventAttributesMapper.new(params).map
|
24
|
+
Marver::Event.new(attributes: attributes)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Marver
|
2
|
+
module Factory
|
3
|
+
autoload :Character, 'marver/factories/character'
|
4
|
+
autoload :Comic, 'marver/factories/comic'
|
5
|
+
autoload :Story, 'marver/factories/story'
|
6
|
+
autoload :Event, 'marver/factories/event'
|
7
|
+
autoload :Serie, 'marver/factories/serie'
|
8
|
+
autoload :Creator, 'marver/factories/creator'
|
9
|
+
|
10
|
+
autoload :Url, 'marver/factories/url'
|
11
|
+
autoload :Price, 'marver/factories/price'
|
12
|
+
autoload :Image, 'marver/factories/image'
|
13
|
+
autoload :TextObject, 'marver/factories/text_object'
|
14
|
+
autoload :Date, 'marver/factories/date'
|
15
|
+
|
16
|
+
autoload :Summary, 'marver/factories/summary/summary'
|
17
|
+
|
18
|
+
autoload :Buildable, 'marver/factories/buildable'
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require './lib/marver.rb'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
class Serie
|
6
|
+
|
7
|
+
def initialize(results)
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |serie|
|
14
|
+
create_serie(serie)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
create_serie(@results)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def create_serie(params)
|
23
|
+
attributes = Marver::SerieAttributesMapper.new(params).map
|
24
|
+
Marver::Serie.new(attributes: attributes)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require './lib/marver.rb'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
class Story
|
6
|
+
|
7
|
+
def initialize(results)
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |story|
|
14
|
+
create_story(story)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
create_story(@results)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def create_story(params)
|
23
|
+
attributes = StoryAttributesMapper.new(params).map
|
24
|
+
Marver::Story.new(attributes: attributes)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require './lib/marver'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
module Summary
|
6
|
+
class Character
|
7
|
+
def initialize results
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |character|
|
14
|
+
Marver::Summary::Character.new(character)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
[Marver::Summary::Character.new(@results)]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require './lib/marver'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
module Summary
|
6
|
+
class Comic
|
7
|
+
def initialize results
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |comic|
|
14
|
+
Marver::Summary::Comic.new(comic)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
[Marver::Summary::Comic.new(@results)]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require './lib/marver'
|
2
|
+
|
3
|
+
module Marver
|
4
|
+
module Factory
|
5
|
+
module Summary
|
6
|
+
class Creator
|
7
|
+
def initialize(results)
|
8
|
+
@results = results
|
9
|
+
end
|
10
|
+
|
11
|
+
def build
|
12
|
+
if @results.kind_of?(Array)
|
13
|
+
@results.collect do |creator|
|
14
|
+
Marver::Summary::Creator.new(creator)
|
15
|
+
end
|
16
|
+
else
|
17
|
+
[Marver::Summary::Creator.new(@results)]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|