You [Gerald Bauer¹] have been permanently banned [for life] from participating in r/ruby (because of your writing off / outside of r/ruby). I do not see your participation adding anything to this [ruby] community.

-- Richard Schneeman (r/ruby mod and fanatic illiberal ultra leftie on a cancel culture mission)

¹: I know. Who cares? Who is this Gerald Bauer anyway. A random nobody for sure. It just happens that I am the admin among other things of Planet Ruby.

Case Studies of Code of Conduct "Cancel Culture" Out-Of-Control Power Abuse - Ruby - A Call for Tolerance On Ruby-Talk Results In Ban On Reddit Ruby

Update (August, 2022) - A Call for More Tolerance And Call For No-Ban Policy Results In Ban On Ruby-Talk (With No Reason Given)

>  I just banned
>  -- SHIBATA Hiroshi
>>  -- Ryan Davis
>> My full support to moderators.
>> -- Xavier Noria
>> My full support to moderators.
>>  -- Carlo E. Prelz
>>  That's fun.
>>  -- Alice

Read the full story »

« 25 Days of Ruby Gems - Ruby Advent Calendar 2020, December 1st - December 25th

Day 9 - thegamesdb Gem - Get Donkey Kong, Super Mario Bros., The Legend of Zelda ‘n’ More. API Client for TheGamesDB, an Open Database for Video Game Data

Written by picandocodigo Fernando Briano

Software engineer at Elastic maintaing among others many elastic gems and member of Data Uruguay - an open data, transparency and information access non-governmental org (NGO) - has worked on open data projects. Blogs at Picando Código. Plays Nintendo. Listens to Punk Rock. Reads books. Drinks beer.

TheGamesDb is an open, online database with information about video games. You can find information about video game consoles, developers, publishers and obviously game titles! The data is backed up by a community of users and you can join and submit data yourself.

The website has a JSON HTTP API which you can use in your own application to retrieve data from the database. A few years ago I started a Rails project which was going to use data from TheGamesDB. I assumed there’d already be a gem for this, so I went looking for it. I found a gem which hadn’t been updated for a long while so I built my own. The gem is thegamesdb and I recently released version 2.0.0.

I started by implementing just some of the API endpoints, the ones I wanted to use in my Rails app. But in time it kept evolving and I kept updating it and publishing new releases. At some point the original API was deprecated and when it was announced it’d be shut down, I took the opportunity to released version 1.0.0. This first “stable” release added support for the new API which - among other changes - required an API key.

With version 2.0.0, I implemented 100% of the API endpoints in Ruby, refactored the way the gem works to make it easier to instantiate a client and set the API key, and made some other breaking changes in methods from the 1.x branch.

You can gem install thegamesdb or add thegamesdb to your Gemfile to install it. You will need to request an API Key on the website’s forum.

API keys

Once you have an API key, you can instantiate a Client:

client ='<API_KEY>')
response = client.platforms

The base API Response includes remaining_monthly_allowance for your API key, extra_allowance and allowance_refresh_timer. These values are updated on the client instance on every request so you can use client.remaining_monthly_client to check how many requests the API key has left.

There are five main ‘namespaces’ for API endpoints: Games, Platforms, Genres, Developers and Publishers. Genres, Developers and Publishers are very simple methods with no parameters that return an Array of Hashes with information about the respective entities, e.g.:

#=> [
#  {"id"=>1,  "name"=>"Action"},
#  {"id"=>2,  "name"=>"Adventure"},
#  {"id"=>20, "name"=>"Board"},
#   ...

For Platforms and Games there are several methods for retrieving information: by id, by name, images (filtering with ‘boxart’, ‘banner’ or ‘fanart’) and more. You can find out more about the endpoints in the README.

Hope you check out thegamesdb for your video game related projects!

Find Out More


Built with Ruby (running Jekyll) on 2023-01-25 18:05:39 +0000 in 0.371 seconds.
Hosted on GitHub Pages. </> Source on GitHub. (0) Dedicated to the public domain.