rawg_api 0.1.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 (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.travis.yml +6 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +97 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +234 -0
  9. data/Rakefile +10 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/lib/rawg_api/boot.rb +39 -0
  13. data/lib/rawg_api/clients/base_client.rb +31 -0
  14. data/lib/rawg_api/clients/creator_roles.rb +12 -0
  15. data/lib/rawg_api/clients/creators.rb +16 -0
  16. data/lib/rawg_api/clients/developers.rb +16 -0
  17. data/lib/rawg_api/clients/game/achievements.rb +14 -0
  18. data/lib/rawg_api/clients/game/additions.rb +14 -0
  19. data/lib/rawg_api/clients/game/details.rb +14 -0
  20. data/lib/rawg_api/clients/game/development_team.rb +14 -0
  21. data/lib/rawg_api/clients/game/parent_games.rb +14 -0
  22. data/lib/rawg_api/clients/game/reddit.rb +14 -0
  23. data/lib/rawg_api/clients/game/screenshots.rb +14 -0
  24. data/lib/rawg_api/clients/game/series.rb +14 -0
  25. data/lib/rawg_api/clients/game/stores.rb +14 -0
  26. data/lib/rawg_api/clients/game/suggested_games.rb +14 -0
  27. data/lib/rawg_api/clients/game/trailers.rb +14 -0
  28. data/lib/rawg_api/clients/game/twich.rb +14 -0
  29. data/lib/rawg_api/clients/game/youtube.rb +14 -0
  30. data/lib/rawg_api/clients/games.rb +51 -0
  31. data/lib/rawg_api/clients/genres.rb +16 -0
  32. data/lib/rawg_api/clients/parent_platforms.rb +11 -0
  33. data/lib/rawg_api/clients/platforms.rb +16 -0
  34. data/lib/rawg_api/clients/publishers.rb +16 -0
  35. data/lib/rawg_api/clients/stores.rb +16 -0
  36. data/lib/rawg_api/clients/tag_details.rb +12 -0
  37. data/lib/rawg_api/clients/tags.rb +12 -0
  38. data/lib/rawg_api/configuration.rb +47 -0
  39. data/lib/rawg_api/entities/base_entity.rb +54 -0
  40. data/lib/rawg_api/entities/creator.rb +9 -0
  41. data/lib/rawg_api/entities/creator_role.rb +9 -0
  42. data/lib/rawg_api/entities/developer.rb +9 -0
  43. data/lib/rawg_api/entities/game/achievements.rb +11 -0
  44. data/lib/rawg_api/entities/game/additions.rb +13 -0
  45. data/lib/rawg_api/entities/game/details.rb +20 -0
  46. data/lib/rawg_api/entities/game/development_team.rb +11 -0
  47. data/lib/rawg_api/entities/game/entity.rb +25 -0
  48. data/lib/rawg_api/entities/game/parent_games.rb +13 -0
  49. data/lib/rawg_api/entities/game/reddit.rb +11 -0
  50. data/lib/rawg_api/entities/game/screenshots.rb +11 -0
  51. data/lib/rawg_api/entities/game/series.rb +13 -0
  52. data/lib/rawg_api/entities/game/stores.rb +11 -0
  53. data/lib/rawg_api/entities/game/suggested_games.rb +11 -0
  54. data/lib/rawg_api/entities/game/trailers.rb +11 -0
  55. data/lib/rawg_api/entities/game/twitch.rb +12 -0
  56. data/lib/rawg_api/entities/game/youtube.rb +13 -0
  57. data/lib/rawg_api/entities/genre.rb +9 -0
  58. data/lib/rawg_api/entities/parent_platform.rb +9 -0
  59. data/lib/rawg_api/entities/platform.rb +9 -0
  60. data/lib/rawg_api/entities/publisher.rb +9 -0
  61. data/lib/rawg_api/entities/store.rb +9 -0
  62. data/lib/rawg_api/entities/tag.rb +11 -0
  63. data/lib/rawg_api/entities/tag_details.rb +9 -0
  64. data/lib/rawg_api/extensions/dry_monads.rb +12 -0
  65. data/lib/rawg_api/version.rb +3 -0
  66. data/lib/rawg_api.rb +6 -0
  67. data/rawg_api.gemspec +43 -0
  68. metadata +311 -0
@@ -0,0 +1,9 @@
1
+ module RawgApi
2
+ module Entities
3
+ class Publisher < BaseEntity
4
+ client_service Clients::Publishers
5
+
6
+ attr_entity :id, :name, :slug, :games_count, :image_background
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module RawgApi
2
+ module Entities
3
+ class Store < BaseEntity
4
+ client_service Clients::Stores
5
+
6
+ attr_entity :id, :name, :domain, :slug, :games_count, :image_background
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module RawgApi
2
+ module Entities
3
+ class Tag < BaseEntity
4
+ client_service Clients::Tags
5
+
6
+ delegate_method TagDetails, :find, :find
7
+
8
+ attr_entity :id, :name, :slug, :games_count, :image_background
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module RawgApi
2
+ module Entities
3
+ class TagDetails < BaseEntity
4
+ client_service Clients::TagDetails
5
+
6
+ attr_entity :id, :name, :slug, :games_count, :image_background
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ module RawgApi
2
+ module Extensions
3
+ module DryMonads
4
+
5
+ def from_success(value)
6
+ return Dry::Monads::Success(nil) if value.nil?
7
+ value.is_a?(Array) || value[:results].is_a?(Array) ? collection(value) : new(value)
8
+ end
9
+
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module RawgApi
2
+ VERSION = "0.1.1"
3
+ end
data/lib/rawg_api.rb ADDED
@@ -0,0 +1,6 @@
1
+ require_relative 'rawg_api/boot'
2
+
3
+ module RawgApi
4
+ end
5
+
6
+
data/rawg_api.gemspec ADDED
@@ -0,0 +1,43 @@
1
+ require_relative 'lib/rawg_api/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "rawg_api"
5
+ spec.version = RawgApi::VERSION
6
+ spec.authors = ["Harry Georgilas"]
7
+ spec.email = ["harrygeorgilas@gmail.com"]
8
+
9
+ spec.summary = %q{Rawg.io API ruby wrapper}
10
+ spec.description = %q{A ruby API wrapper for rawg.io API v1.0}
11
+ spec.homepage = "https://github.com/hgeorgilas/rawg_api"
12
+ spec.license = "MIT"
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
14
+
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["source_code_uri"] = spec.homepage
17
+
18
+ # Specify which files should be added to the gem when it is released.
19
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
21
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
+ end
23
+ spec.bindir = "exe"
24
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ spec.require_paths = ["lib"]
26
+
27
+ spec.add_dependency 'api_struct', '~> 1.0', '>= 1.0.5'
28
+ spec.add_dependency 'dotenv'
29
+ spec.add_dependency 'dry-configurable', '~> 0.9.0'
30
+ spec.add_dependency 'dry-monads', '~> 1.3', '>= 1.3.5'
31
+ spec.add_dependency 'hashie', '~> 4.1'
32
+
33
+
34
+ spec.add_development_dependency 'bundler', '~> 2.1'
35
+ spec.add_development_dependency 'minitest', '~> 5.0'
36
+ spec.add_development_dependency 'rake', '~> 12.3'
37
+ spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.1'
38
+ spec.add_development_dependency 'pry-byebug', '~> 3.7'
39
+ spec.add_development_dependency 'pry'
40
+ spec.add_development_dependency 'httplog'
41
+ spec.add_development_dependency 'webmock'
42
+
43
+ end
metadata ADDED
@@ -0,0 +1,311 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rawg_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Harry Georgilas
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-04-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: api_struct
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.5
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.5
33
+ - !ruby/object:Gem::Dependency
34
+ name: dotenv
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: dry-configurable
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.0
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.9.0
61
+ - !ruby/object:Gem::Dependency
62
+ name: dry-monads
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.3'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.3.5
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '1.3'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 1.3.5
81
+ - !ruby/object:Gem::Dependency
82
+ name: hashie
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '4.1'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '4.1'
95
+ - !ruby/object:Gem::Dependency
96
+ name: bundler
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '2.1'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '2.1'
109
+ - !ruby/object:Gem::Dependency
110
+ name: minitest
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '5.0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '5.0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: rake
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '12.3'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '12.3'
137
+ - !ruby/object:Gem::Dependency
138
+ name: vcr
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '3.0'
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 3.0.1
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '3.0'
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 3.0.1
157
+ - !ruby/object:Gem::Dependency
158
+ name: pry-byebug
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: '3.7'
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '3.7'
171
+ - !ruby/object:Gem::Dependency
172
+ name: pry
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ - !ruby/object:Gem::Dependency
186
+ name: httplog
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: webmock
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ description: A ruby API wrapper for rawg.io API v1.0
214
+ email:
215
+ - harrygeorgilas@gmail.com
216
+ executables: []
217
+ extensions: []
218
+ extra_rdoc_files: []
219
+ files:
220
+ - ".gitignore"
221
+ - ".travis.yml"
222
+ - CODE_OF_CONDUCT.md
223
+ - Gemfile
224
+ - Gemfile.lock
225
+ - LICENSE.txt
226
+ - README.md
227
+ - Rakefile
228
+ - bin/console
229
+ - bin/setup
230
+ - lib/rawg_api.rb
231
+ - lib/rawg_api/boot.rb
232
+ - lib/rawg_api/clients/base_client.rb
233
+ - lib/rawg_api/clients/creator_roles.rb
234
+ - lib/rawg_api/clients/creators.rb
235
+ - lib/rawg_api/clients/developers.rb
236
+ - lib/rawg_api/clients/game/achievements.rb
237
+ - lib/rawg_api/clients/game/additions.rb
238
+ - lib/rawg_api/clients/game/details.rb
239
+ - lib/rawg_api/clients/game/development_team.rb
240
+ - lib/rawg_api/clients/game/parent_games.rb
241
+ - lib/rawg_api/clients/game/reddit.rb
242
+ - lib/rawg_api/clients/game/screenshots.rb
243
+ - lib/rawg_api/clients/game/series.rb
244
+ - lib/rawg_api/clients/game/stores.rb
245
+ - lib/rawg_api/clients/game/suggested_games.rb
246
+ - lib/rawg_api/clients/game/trailers.rb
247
+ - lib/rawg_api/clients/game/twich.rb
248
+ - lib/rawg_api/clients/game/youtube.rb
249
+ - lib/rawg_api/clients/games.rb
250
+ - lib/rawg_api/clients/genres.rb
251
+ - lib/rawg_api/clients/parent_platforms.rb
252
+ - lib/rawg_api/clients/platforms.rb
253
+ - lib/rawg_api/clients/publishers.rb
254
+ - lib/rawg_api/clients/stores.rb
255
+ - lib/rawg_api/clients/tag_details.rb
256
+ - lib/rawg_api/clients/tags.rb
257
+ - lib/rawg_api/configuration.rb
258
+ - lib/rawg_api/entities/base_entity.rb
259
+ - lib/rawg_api/entities/creator.rb
260
+ - lib/rawg_api/entities/creator_role.rb
261
+ - lib/rawg_api/entities/developer.rb
262
+ - lib/rawg_api/entities/game/achievements.rb
263
+ - lib/rawg_api/entities/game/additions.rb
264
+ - lib/rawg_api/entities/game/details.rb
265
+ - lib/rawg_api/entities/game/development_team.rb
266
+ - lib/rawg_api/entities/game/entity.rb
267
+ - lib/rawg_api/entities/game/parent_games.rb
268
+ - lib/rawg_api/entities/game/reddit.rb
269
+ - lib/rawg_api/entities/game/screenshots.rb
270
+ - lib/rawg_api/entities/game/series.rb
271
+ - lib/rawg_api/entities/game/stores.rb
272
+ - lib/rawg_api/entities/game/suggested_games.rb
273
+ - lib/rawg_api/entities/game/trailers.rb
274
+ - lib/rawg_api/entities/game/twitch.rb
275
+ - lib/rawg_api/entities/game/youtube.rb
276
+ - lib/rawg_api/entities/genre.rb
277
+ - lib/rawg_api/entities/parent_platform.rb
278
+ - lib/rawg_api/entities/platform.rb
279
+ - lib/rawg_api/entities/publisher.rb
280
+ - lib/rawg_api/entities/store.rb
281
+ - lib/rawg_api/entities/tag.rb
282
+ - lib/rawg_api/entities/tag_details.rb
283
+ - lib/rawg_api/extensions/dry_monads.rb
284
+ - lib/rawg_api/version.rb
285
+ - rawg_api.gemspec
286
+ homepage: https://github.com/hgeorgilas/rawg_api
287
+ licenses:
288
+ - MIT
289
+ metadata:
290
+ homepage_uri: https://github.com/hgeorgilas/rawg_api
291
+ source_code_uri: https://github.com/hgeorgilas/rawg_api
292
+ post_install_message:
293
+ rdoc_options: []
294
+ require_paths:
295
+ - lib
296
+ required_ruby_version: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - ">="
299
+ - !ruby/object:Gem::Version
300
+ version: 2.5.0
301
+ required_rubygems_version: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - ">="
304
+ - !ruby/object:Gem::Version
305
+ version: '0'
306
+ requirements: []
307
+ rubygems_version: 3.1.2
308
+ signing_key:
309
+ specification_version: 4
310
+ summary: Rawg.io API ruby wrapper
311
+ test_files: []