marver 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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