thegamesdb 1.1.2 → 2.1.0

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