marver 0.0.6 → 0.1.0

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -14
  3. data/lib/marver.rb +16 -2
  4. data/lib/marver/api.rb +9 -1
  5. data/lib/marver/api/client.rb +9 -6
  6. data/lib/marver/api/credentials.rb +1 -1
  7. data/lib/marver/api/errors.rb +33 -0
  8. data/lib/marver/client.rb +3 -1
  9. data/lib/marver/entities/character.rb +11 -23
  10. data/lib/marver/entities/comic.rb +19 -35
  11. data/lib/marver/entities/creator.rb +5 -26
  12. data/lib/marver/entities/event.rb +17 -26
  13. data/lib/marver/entities/serie.rb +15 -29
  14. data/lib/marver/entities/story.rb +11 -23
  15. data/lib/marver/entities/summary/character.rb +2 -2
  16. data/lib/marver/entities/summary/comic.rb +4 -4
  17. data/lib/marver/entities/summary/creator.rb +4 -2
  18. data/lib/marver/entities/summary/event.rb +2 -2
  19. data/lib/marver/entities/summary/serie.rb +3 -3
  20. data/lib/marver/entities/summary/story.rb +2 -2
  21. data/lib/marver/entities/url.rb +3 -3
  22. data/lib/marver/factories/character.rb +28 -0
  23. data/lib/marver/factories/comic.rb +27 -0
  24. data/lib/marver/factories/creator.rb +28 -0
  25. data/lib/marver/factories/date.rb +15 -0
  26. data/lib/marver/factories/event.rb +28 -0
  27. data/lib/marver/factories/factory.rb +20 -0
  28. data/lib/marver/factories/image.rb +15 -0
  29. data/lib/marver/factories/price.rb +15 -0
  30. data/lib/marver/factories/serie.rb +28 -0
  31. data/lib/marver/factories/story.rb +28 -0
  32. data/lib/marver/factories/summary/character.rb +23 -0
  33. data/lib/marver/factories/summary/comic.rb +23 -0
  34. data/lib/marver/factories/summary/creator.rb +23 -0
  35. data/lib/marver/factories/summary/event.rb +23 -0
  36. data/lib/marver/factories/summary/serie.rb +23 -0
  37. data/lib/marver/factories/summary/story.rb +23 -0
  38. data/lib/marver/factories/summary/summary.rb +12 -0
  39. data/lib/marver/factories/text_object.rb +16 -0
  40. data/lib/marver/factories/url.rb +15 -0
  41. data/lib/marver/finders/character_finder.rb +16 -2
  42. data/lib/marver/finders/comic_finder.rb +17 -1
  43. data/lib/marver/finders/creator_finder.rb +26 -0
  44. data/lib/marver/finders/event_finder.rb +16 -2
  45. data/lib/marver/finders/serie_finder.rb +16 -2
  46. data/lib/marver/finders/story_finder.rb +15 -2
  47. data/lib/marver/mappers/character_attributes_mapper.rb +25 -0
  48. data/lib/marver/mappers/comic_attributes_mapper.rb +40 -0
  49. data/lib/marver/mappers/creator_attributes_mapper.rb +29 -0
  50. data/lib/marver/mappers/event_attributes_mapper.rb +29 -0
  51. data/lib/marver/mappers/mappable.rb +86 -0
  52. data/lib/marver/mappers/serie_attributes_mapper.rb +32 -0
  53. data/lib/marver/mappers/story_attributes_mapper.rb +26 -0
  54. data/lib/marver/utils/finder_param_filter.rb +13 -0
  55. data/lib/marver/utils/string_helper.rb +7 -0
  56. data/lib/marver/version.rb +1 -1
  57. data/spec/marver/.DS_Store +0 -0
  58. data/spec/marver/api/client_spec.rb +1 -1
  59. data/spec/marver/api/credentials_spec.rb +2 -2
  60. data/spec/marver/api/error_spec.rb +9 -9
  61. data/spec/marver/client_spec.rb +8 -0
  62. data/spec/marver/entities/character_spec.rb +1 -1
  63. data/spec/marver/entities/comic_spec.rb +1 -1
  64. data/spec/marver/entities/creator_spec.rb +2 -2
  65. data/spec/marver/entities/event_spec.rb +1 -1
  66. data/spec/marver/entities/serie_spec.rb +2 -2
  67. data/spec/marver/entities/story_spec.rb +2 -2
  68. data/spec/marver/entities/summary/comic_spec.rb +9 -1
  69. data/spec/marver/factories/character_spec.rb +12 -0
  70. data/spec/marver/factories/comic_spec.rb +12 -0
  71. data/spec/marver/factories/creator_spec.rb +12 -0
  72. data/spec/marver/factories/date_spec.rb +13 -0
  73. data/spec/marver/factories/event_spec.rb +12 -0
  74. data/spec/marver/factories/image_spec.rb +13 -0
  75. data/spec/marver/factories/price_spec.rb +13 -0
  76. data/spec/marver/factories/serie_spec.rb +12 -0
  77. data/spec/marver/factories/story_spec.rb +12 -0
  78. data/spec/marver/factories/summary/character_spec.rb +13 -0
  79. data/spec/marver/factories/summary/comic_spec.rb +13 -0
  80. data/spec/marver/factories/summary/creator_spec.rb +13 -0
  81. data/spec/marver/factories/summary/event_spec.rb +13 -0
  82. data/spec/marver/factories/summary/serie_spec.rb +13 -0
  83. data/spec/marver/factories/summary/story_spec.rb +13 -0
  84. data/spec/marver/factories/text_object_spec.rb +13 -0
  85. data/spec/marver/factories/url_spec.rb +13 -0
  86. data/spec/marver/finders/character_finder_spec.rb +17 -9
  87. data/spec/marver/finders/comic_finder_spec.rb +11 -2
  88. data/spec/marver/finders/creator_finder_spec.rb +27 -0
  89. data/spec/marver/finders/event_finder_spec.rb +11 -2
  90. data/spec/marver/finders/serie_finder_spec.rb +10 -2
  91. data/spec/marver/finders/story_finder_spec.rb +11 -3
  92. data/spec/marver/mappers/character_attributes_mapper_spec.rb +14 -0
  93. data/spec/marver/mappers/comic_attributes_mapper_spec.rb +17 -0
  94. data/spec/marver/mappers/creator_attributes_mapper_spec.rb +15 -0
  95. data/spec/marver/mappers/event_attributes_mapper_spec.rb +14 -0
  96. data/spec/marver/mappers/serie_attributes_mapper_spec.rb +17 -0
  97. data/spec/marver/mappers/story_attributes_mapper_spec.rb +15 -0
  98. data/spec/marver/utils/finder_param_filter_spec.rb +17 -0
  99. data/spec/marver/utils/string_helper_spec.rb +7 -0
  100. metadata +86 -7
  101. data/TODO +0 -3
  102. data/lib/marver/api/error.rb +0 -13
  103. data/lib/marver/entities/commonable.rb +0 -37
  104. data/lib/marver/entities/queryable.rb +0 -12
  105. data/lib/marver/entities/summarizable.rb +0 -54
data/TODO DELETED
@@ -1,3 +0,0 @@
1
- 1. Fix grouping of classes by directory. Should be in context of namespacing.
2
- 3. Build objects when data is parsed.
3
- 4. Improve Marver::REST::Client by returning parsed JSON.
@@ -1,13 +0,0 @@
1
- module Marver
2
- module API
3
- class Error
4
- attr_reader :code, :status
5
-
6
- def initialize(json)
7
- @code = json['code'].to_i
8
- @status = json['status']
9
- end
10
-
11
- end
12
- end
13
- end
@@ -1,37 +0,0 @@
1
- module Marver
2
- module Commonable
3
- def prices
4
- @prices ||= entity_items('prices').collect do |price|
5
- Marver::Price.new(price)
6
- end
7
- end
8
-
9
- def images
10
- @images ||= entity_items('images').collect do |image|
11
- Marver::Image.new(image)
12
- end
13
- end
14
-
15
- def urls
16
- @urls ||= entity_items('urls').collect do |url|
17
- Marver::Url.new(url)
18
- end
19
- end
20
-
21
- def text_objects
22
- @text_objects ||= entity_items('textObjects').collect do |text_object|
23
- Marver::TextObject.new(text_object)
24
- end
25
- end
26
-
27
- def thumbnail
28
- @thumbnail ||= Marver::Image.new(json['thumbnail'])
29
- end
30
-
31
- def dates
32
- @dates ||= entity_items('dates').collect do |date|
33
- Marver::KeyDate.new(date)
34
- end
35
- end
36
- end
37
- end
@@ -1,12 +0,0 @@
1
- require './lib/marver.rb'
2
-
3
- module Marver
4
- module Queryable
5
- def hash_to_querystring(hash)
6
- hash.keys.inject('') do |query_string, key|
7
- query_string << '&' unless key == hash.keys.first
8
- query_string << "#{URI.encode(key.to_s)}=#{URI.encode(hash[key])}"
9
- end
10
- end
11
- end
12
- end
@@ -1,54 +0,0 @@
1
- module Marver
2
- module Summarizable
3
-
4
- def characters
5
- @characters ||= entity_items('characters').collect do |character|
6
- Marver::Summary::Character.new(character)
7
- end
8
- end
9
-
10
- def creators
11
- @creators ||= entity_items('creators').collect do |creator|
12
- Marver::Summary::Creator.new(creator)
13
- end
14
- end
15
-
16
- def events
17
- @events ||= entity_items('events').collect do |event|
18
- Marver::Summary::Event.new(event)
19
- end
20
- end
21
-
22
- def series
23
- @series ||= entity_items('series').collect do |serie|
24
- Marver::Summary::Serie.new(serie)
25
- end
26
- end
27
-
28
- def stories
29
- @stories ||= entity_items('stories').collect do |story|
30
- Marver::Summary::Story.new(story)
31
- end
32
- end
33
-
34
- def characters
35
- @characters ||= entity_items('characters').collect do |character|
36
- Marver::Summary::Character.new(character)
37
- end
38
- end
39
-
40
- def comics
41
- @comics ||= entity_items('comics').collect do |comic|
42
- Marver::Summary::Comic.new(comic)
43
- end
44
- end
45
-
46
- def entity_items(entity)
47
- if json[entity].kind_of?(Hash) && json[entity].has_key?('items')
48
- [json[entity]['items']].compact.flatten(1)
49
- else
50
- [json[entity]].compact.flatten(1)
51
- end
52
- end
53
- end
54
- end