thegamesdb 1.1.2 → 2.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.
@@ -1,113 +1,147 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './test_helper'
2
4
 
3
5
  describe 'GamesDB - platforms', :vcr do
6
+ let(:client) { Gamesdb::Client.new(ENV['GAMESDB_API_KEY']) }
7
+
4
8
  describe 'platforms' do
5
9
  before do
6
- @platforms = Gamesdb.platforms
10
+ @platforms = client.platforms
7
11
  end
8
12
 
9
13
  it 'should get gaming platforms' do
10
- @platforms.count.wont_be :<, 0
11
- @platforms.count.must_equal 110
14
+ expect(@platforms.count).wont_be :<, 0
15
+ expect(@platforms.count).must_equal 147
12
16
  end
13
17
 
14
18
  it 'should have a valid name' do
15
- @platforms[0][:name].must_be_kind_of String
19
+ expect(@platforms[0][:name]).must_be_kind_of String
16
20
  end
17
21
 
18
22
  it 'should have a valid id' do
19
- @platforms[0][:id].must_be_kind_of Integer
23
+ expect(@platforms[0][:id]).must_be_kind_of Integer
20
24
  end
21
25
 
22
26
  it 'should have a valid alias' do
23
- @platforms[0][:alias].must_be_kind_of String
27
+ expect(@platforms[0][:alias]).must_be_kind_of String
24
28
  end
25
29
 
26
30
  it 'should have valid fields for other stuff' do
27
31
  nes = @platforms.select { |p| p[:id] == 7 }.first
28
- nes[:icon].must_be_kind_of String
29
- nes[:console].must_be_kind_of String
30
- nes[:controller].must_be_kind_of String
31
- nes[:developer].must_be_kind_of String
32
- nes[:manufacturer].must_be_kind_of String
33
- nes[:maxcontrollers].must_be_kind_of String
34
- nes[:cpu].must_be_kind_of String
35
- nes[:memory].must_be_kind_of String
36
- nes[:sound].must_be_kind_of String
37
- nes[:display].must_be_kind_of String
38
- nes[:overview].must_be_kind_of String
32
+ expect(nes[:icon]).must_be_kind_of String
33
+ expect(nes[:console]).must_be_kind_of String
34
+ expect(nes[:controller]).must_be_kind_of String
35
+ expect(nes[:developer]).must_be_kind_of String
36
+ expect(nes[:manufacturer]).must_be_kind_of String
37
+ expect(nes[:maxcontrollers]).must_be_kind_of String
38
+ expect(nes[:cpu]).must_be_kind_of String
39
+ expect(nes[:memory]).must_be_kind_of String
40
+ expect(nes[:sound]).must_be_kind_of String
41
+ expect(nes[:display]).must_be_kind_of String
42
+ expect(nes[:overview]).must_be_kind_of String
39
43
  end
40
44
  end
41
45
 
42
46
  describe 'games by platform' do
43
47
  before do
44
- platforms = Gamesdb.platforms
45
- @first_page = Gamesdb.games_by_platform_id(platforms[0][:id])
46
- @second_page = Gamesdb.games_by_platform_id(platforms[0][:id], 2)
48
+ platforms = client.platforms
49
+ @first_page = client.games_by_platform_id(platforms[0][:id])
50
+ @second_page = client.games_by_platform_id(platforms[0][:id], 2)
47
51
  end
48
52
 
49
53
  it 'should return games in platform by id' do
50
- @first_page.count.wont_be :<, 0
51
- @first_page.count.must_equal 20
54
+ expect(@first_page.count).wont_be :<, 0
55
+ expect(@first_page.count).must_equal 20
52
56
  end
53
57
 
54
58
  it 'should return games in the platform for the second page' do
55
- @second_page.count.wont_be :<, 0
56
- @second_page.count.must_equal 20
57
- (@first_page & @second_page).must_equal []
59
+ expect(@second_page.count).wont_be :<, 0
60
+ expect(@second_page.count).must_equal 20
61
+ expect(@first_page & @second_page).must_equal []
58
62
  end
59
63
  end
60
64
 
61
65
  describe 'games by platform parameters' do
62
66
  before do
63
- @games1 = Gamesdb.games_by_platform_id(4950)
64
- @games2 = Gamesdb.games_by_platform_id(4948)
65
- @games3 = Gamesdb.games_by_platform_id("4950,4948")
67
+ @games1 = client.games_by_platform_id(4950)
68
+ @games2 = client.games_by_platform_id(4948)
69
+ @games3 = client.games_by_platform_id('4950,4948')
66
70
  end
67
71
 
68
72
  it 'supports comma separated list' do
69
- @games1.count.must_equal 20
70
- @games2.count.must_equal 1
71
- @games3.count.must_equal 20
73
+ expect(@games1.count).must_equal 20
74
+ expect(@games2.count).must_equal 20
75
+ expect(@games3.count).must_equal 20
72
76
 
73
- (@games3 - @games1).must_equal @games2
77
+ expect(@games3 - @games1).must_equal @games2
74
78
  end
75
-
76
79
  end
77
80
 
78
81
  describe 'platform' do
79
82
  describe 'assigning basic info' do
80
83
  before do
81
- @platform = Gamesdb.platform_by_id(6)
84
+ @platform = client.platforms_by_id(6)
82
85
  end
83
86
 
84
87
  it 'should return valid platform info' do
85
- @platform[:name].must_equal 'Super Nintendo (SNES)'
86
- @platform[:overview].must_be_kind_of String
87
- @platform[:developer].must_be_kind_of String
88
- @platform[:manufacturer].must_equal 'Nintendo'
89
- @platform[:cpu].must_be_kind_of String
90
- @platform[:memory].must_be_kind_of String
91
- @platform[:sound].must_be_kind_of String
92
- @platform[:display].must_be_kind_of String
88
+ expect(@platform[:name]).must_equal 'Super Nintendo (SNES)'
89
+ expect(@platform[:overview]).must_be_kind_of String
90
+ expect(@platform[:developer]).must_be_kind_of String
91
+ expect(@platform[:manufacturer]).must_equal 'Nintendo'
92
+ expect(@platform[:cpu]).must_be_kind_of String
93
+ expect(@platform[:memory]).must_be_kind_of String
94
+ expect(@platform[:sound]).must_be_kind_of String
95
+ expect(@platform[:display]).must_be_kind_of String
93
96
  end
94
97
  end
95
98
 
96
99
  describe 'without hardware or images' do
97
100
  before do
98
- @platform = Gamesdb.platform_by_id 4916
101
+ @platform = client.platforms_by_id(4916)
99
102
  end
100
103
 
101
104
  it 'should return valid platform info' do
102
- @platform[:name].must_equal 'Android'
103
- @platform[:overview].must_be_kind_of String
104
- @platform[:developer].must_be_kind_of String
105
- @platform[:manufacturer].must_be_nil
106
- @platform[:cpu].must_be_nil
107
- @platform[:memory].must_be_nil
108
- @platform[:sound].must_be_nil
109
- @platform[:display].must_be_nil
105
+ expect(@platform[:name]).must_equal 'Android'
106
+ expect(@platform[:overview]).must_be_kind_of String
107
+ expect(@platform[:developer]).must_be_kind_of String
108
+ expect(@platform[:manufacturer]).must_be_nil
109
+ expect(@platform[:cpu]).must_be_nil
110
+ expect(@platform[:memory]).must_be_nil
111
+ expect(@platform[:sound]).must_be_nil
112
+ expect(@platform[:display]).must_be_nil
110
113
  end
111
114
  end
112
115
  end
116
+
117
+ describe 'platforms by name' do
118
+ it 'should return platforms' do
119
+ @platforms = client.platforms_by_name('Nintendo')
120
+
121
+ expect(@platforms.count).must_equal 14
122
+ names = @platforms.sort_by { |p| p[:name] }.map { |p| p[:name] }
123
+ expect(names).must_equal [
124
+ 'Nintendo 3DS', 'Nintendo 64', 'Nintendo DS', 'Nintendo Entertainment System (NES)',
125
+ 'Nintendo Game Boy', 'Nintendo Game Boy Advance', 'Nintendo Game Boy Color', 'Nintendo GameCube',
126
+ 'Nintendo Pokémon Mini', 'Nintendo Switch', 'Nintendo Virtual Boy', 'Nintendo Wii', 'Nintendo Wii U',
127
+ 'Super Nintendo (SNES)'
128
+ ]
129
+ end
130
+ end
131
+
132
+ describe 'platform images' do
133
+ it 'should return all images for a platform' do
134
+ @images = client.platform_images(7)
135
+
136
+ expect(@images.count).must_equal(10)
137
+ expect(@images.first.keys).must_equal(['id', 'type', 'filename'])
138
+ end
139
+
140
+ it 'should filter image type for a platform' do
141
+ @images = client.platform_images(7, type: 'boxart')
142
+
143
+ expect(@images.count).must_equal(1)
144
+ expect(@images.first).must_equal({ 'id' => 222, 'type' => 'boxart', 'filename' => 'platform/boxart/7-2.jpg' })
145
+ end
146
+ end
113
147
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './test_helper'
4
+
5
+ describe 'GamesDB - Publishers', :vcr do
6
+ let(:client) { Gamesdb::Client.new(ENV['GAMESDB_API_KEY']) }
7
+
8
+ describe 'publishers' do
9
+ it 'should return publishers' do
10
+ publishers = client.publishers
11
+
12
+ expect(publishers.count.positive?)
13
+ expect(publishers.first.keys).must_equal(['id', 'name'])
14
+ end
15
+ end
16
+ end
data/test/test_helper.rb CHANGED
@@ -1,10 +1,11 @@
1
- require 'simplecov'
2
- SimpleCov.start
1
+ # frozen_string_literal: true
2
+
3
3
  require 'minitest/autorun'
4
4
  require 'minitest/reporters'
5
5
  require 'minitest/spec'
6
6
  require 'vcr'
7
7
  require 'minitest-vcr'
8
+
8
9
  Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
9
10
  MinitestVcr::Spec.configure!
10
11
 
data/thegamesdb.gemspec CHANGED
@@ -1,8 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
 
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require 'thegamesdb/version'
5
7
 
8
+ # rubocop:disable Metrics/BlockLength
6
9
  Gem::Specification.new do |spec|
7
10
  spec.name = 'thegamesdb'
8
11
  spec.version = Gamesdb::VERSION
@@ -13,23 +16,25 @@ Gem::Specification.new do |spec|
13
16
  spec.homepage = 'http://github.com/picandocodigo/gamesdb'
14
17
  spec.license = 'MIT'
15
18
 
16
- spec.files = `git ls-files`.split($/)
19
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
21
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
22
  spec.require_paths = ['lib']
23
+ spec.required_ruby_version = '> 2.7.0'
20
24
  spec.add_development_dependency 'bundler'
21
- spec.add_development_dependency 'byebug'
25
+ spec.add_development_dependency 'byebug' unless defined?(JRUBY_VERSION)
22
26
  spec.add_development_dependency 'minitest-reporters'
23
27
  spec.add_development_dependency 'minitest-vcr'
24
28
  spec.add_development_dependency 'rake'
25
- spec.add_development_dependency 'simplecov'
29
+ spec.add_development_dependency 'rubocop'
26
30
  spec.add_development_dependency 'vcr', '~> 4'
27
31
  spec.add_development_dependency 'webmock'
28
- spec.metadata = {
29
- "bug_tracker_uri" => "https://github.com/picandocodigo/gamesdb/issues",
30
- "changelog_uri" => "https://github.com/picandocodigo/gamesdb/blob/master/CHANGELOG.md",
31
- "documentation_uri" => "https://github.com/picandocodigo/gamesdb/blob/master/README.md#gamesdb",
32
- "homepage_uri" => "https://github.com/picandocodigo/gamesdb",
33
- "source_code_uri" => "https://github.com/picandocodigo/gamesdb",
32
+ spec.metadata = {
33
+ 'bug_tracker_uri' => 'https://github.com/picandocodigo/gamesdb/issues',
34
+ 'changelog_uri' => 'https://github.com/picandocodigo/gamesdb/blob/master/CHANGELOG.md',
35
+ 'documentation_uri' => 'https://github.com/picandocodigo/gamesdb/blob/master/README.md#gamesdb',
36
+ 'homepage_uri' => 'https://github.com/picandocodigo/gamesdb',
37
+ 'source_code_uri' => 'https://github.com/picandocodigo/gamesdb'
34
38
  }
35
39
  end
40
+ # rubocop:enable Metrics/BlockLength
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thegamesdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fernando Briano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-16 00:00:00.000000000 Z
11
+ date: 2023-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: simplecov
84
+ name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -129,18 +129,31 @@ executables: []
129
129
  extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
+ - ".github/workflows/main.yml"
133
+ - ".github/workflows/rubocop.yml"
132
134
  - ".gitignore"
133
- - ".travis.yml"
135
+ - ".rubocop.yml"
134
136
  - CHANGELOG.md
135
137
  - Gemfile
136
138
  - LICENSE.txt
137
139
  - README.md
138
140
  - Rakefile
139
141
  - lib/thegamesdb.rb
140
- - lib/thegamesdb/config.rb
142
+ - lib/thegamesdb/developers.rb
143
+ - lib/thegamesdb/error.rb
144
+ - lib/thegamesdb/games.rb
145
+ - lib/thegamesdb/genres.rb
146
+ - lib/thegamesdb/images.rb
147
+ - lib/thegamesdb/platforms.rb
148
+ - lib/thegamesdb/publishers.rb
149
+ - lib/thegamesdb/utils.rb
141
150
  - lib/thegamesdb/version.rb
151
+ - test/client_test.rb
152
+ - test/developers_test.rb
142
153
  - test/games_test.rb
154
+ - test/genres_test.rb
143
155
  - test/platform_test.rb
156
+ - test/publishers_test.rb
144
157
  - test/test_helper.rb
145
158
  - thegamesdb.gemspec
146
159
  homepage: http://github.com/picandocodigo/gamesdb
@@ -158,20 +171,24 @@ require_paths:
158
171
  - lib
159
172
  required_ruby_version: !ruby/object:Gem::Requirement
160
173
  requirements:
161
- - - ">="
174
+ - - ">"
162
175
  - !ruby/object:Gem::Version
163
- version: '0'
176
+ version: 2.7.0
164
177
  required_rubygems_version: !ruby/object:Gem::Requirement
165
178
  requirements:
166
179
  - - ">="
167
180
  - !ruby/object:Gem::Version
168
181
  version: '0'
169
182
  requirements: []
170
- rubygems_version: 3.0.6
183
+ rubygems_version: 3.3.7
171
184
  signing_key:
172
185
  specification_version: 4
173
186
  summary: Client for TheGamesDB API (thegamesdb.net).
174
187
  test_files:
188
+ - test/client_test.rb
189
+ - test/developers_test.rb
175
190
  - test/games_test.rb
191
+ - test/genres_test.rb
176
192
  - test/platform_test.rb
193
+ - test/publishers_test.rb
177
194
  - test/test_helper.rb
data/.travis.yml DELETED
@@ -1,24 +0,0 @@
1
- env:
2
- global:
3
- - CC_TEST_REPORTER_ID=3ca09808c18a3fb0a12a7b113aeca064acf88831f8a36ee2e9fda89ca37b0650
4
- language: ruby
5
- rvm:
6
- - 2.3.8
7
- - 2.4.9
8
- - 2.5.7
9
- - 2.6.5
10
- - 2.7.0
11
- - truffleruby
12
- - ruby-head
13
- install: bundle install
14
- before_script:
15
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
16
- - chmod +x ./cc-test-reporter
17
- - ./cc-test-reporter before-build
18
- script:
19
- - bundle exec rake test
20
- after_script:
21
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
22
- allow_failures:
23
- - rvm: ruby-head
24
- - rvm: truffleruby
@@ -1,9 +0,0 @@
1
- module Gamesdb
2
- class Config
3
- attr_accessor :api_key
4
-
5
- def initialize
6
- @api_key = ENV['GAMESDB_API_KEY'] || nil
7
- end
8
- end
9
- end