---
title: "A huge collection of Ruby and Rails security best practices"
publication: "Ruby Weekly"
issue: 496
published_at: "2020-04-09"
canonical_url: "https://rubyweekly.com/issues/496"
---

This week's Ruby news, views, and libraries.       

#496 — April 9, 2020 

[Read on the Web](https://rubyweekly.com/issues/496)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/bipe6pjt1d0fchyrvx08.jpg)](https://github.com/victords/super-bombinhas)   

[Super Bombinhas: An In-Development Platform Game in Ruby](https://github.com/victords/super-bombinhas) — I was genuinely surprised how easy this was to get running on my macOS setup. `gem install minigl`, clone this repo, run `game.rb` and, yep, you have a Ruby powered platform game running. Genuinely a neat bit of work. 

Victor David Santos   

[70+ Ruby and Rails Security Best Practices and Vulnerabilities](https://hixonrails.com/ruby-on-rails-tutorials/ruby-on-rails-security-best-practices/) — The folks at Hix have released another enormously comprehensive list around Rails. A lot to digest here. 

Wiktor Plaga   [![\](https://copm.s3.amazonaws.com/e56fcf76.png)](https://www.cloud66.com/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-q2-1) 

[Happy Rails Deployments with Cloud 66](https://www.cloud66.com/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-q2-1) — The simplicity of Heroku on your own servers. Deploy your Ruby, Rails, Sinatra and Rack application to any cloud or server. Try it free and get extra $66 free credits with the code: '`Ruby-Weekly`'. 

Cloud 66 sponsor   

[A Few of My Favorite Things](https://blog.testdouble.com/posts/2020-04-07-favorite-things/) — Kyle asked his coworkers to share their favorite command line tools and tricks and, wow, what a compilation. I bet you’ll find something to make your setup better here. 

Kyle Adams   

[The 'Citadel' Architecture?](https://blog.appsignal.com/2020/04/08/the-citadel-architecture-at-appsignal.html) — DHH has coined the term ‘Citadel’ to refer to ‘a single Majestic Monolith (that) captures the majority mass of the app, with a few auxiliary outpost apps for highly specialized and divergent needs.’ This pattern is quite common in the Ruby and Rails world including at [GitLab](https://twitter.com/sytses/status/1247953624392597504) and AppSignal, as we see here. 

Thijs Cadier  

💻 Jobs  

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-rubyweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77583) — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started. 

Vettery   

[Lead Engineer at Moon Creative Lab](https://boards.greenhouse.io/moon/jobs/4634639002?gh_src=52e2df502) — Moon is incubating startup ideas from around the globe. Write code, guide new businesses, build dev teams, and hone your craft in our design-led innovation lab. 

Moon Creative Lab  

▶️ Get ready for your next role: **[Pluralsight is free for the entire month of April.](https://go.pluralsight.com/C0085955)** Stay Home. Skill Up. _#FreeApril_ —SPONSORED 

📘 Articles & Tutorials  

[How to Build a Conference Line with Twilio and Ruby](https://www.twilio.com/blog/build-conference-line-twilio-ruby) — I don’t know what the cost of something like this is, but it’s pretty wild how easy this is to do. Maybe make a family conference line? 

Phil Nash (Twilio)   

[Heredocs and How to Use Them](https://blog.saeloun.com/2020/04/08/heredoc-in-ruby-and-rails.html) — [Here documents](https://en.wikipedia.org/wiki/Here_document) are a way to include long string literals into source code in many languages but are often overlooked by Rubyists. It’s worth being familiar with their syntax, though. 

Romil Mehta   

[Our Rails Upgrade Process: How to Bundle Update Rails](https://www.fastruby.io/blog/rails/upgrade/our-rails-upgrade-process.html) — We’ve seen variations of this process in the path, involving dual-booting Rails and walking through dependencies. It’s a good reminder. 

Cleiviane Costa (FastRuby)   

▶[Using Google Maps API with StimulusJS](https://www.driftingruby.com/episodes/google-maps-api-with-stimulusjs) — We haven’t seen a Stimulus tutorial in a bit and this one shows how to incorporate an external library to use Google Maps. Also, maps are cool. 

Drifting Ruby   

▶[Streaming Music to Livestreamers](https://www.heroku.com/podcasts/codeish/63-streaming-music-to-livestreamers) — Learn about Pretzel Rocks, a service built to provide stream-safe music for livestreamers. 

Heroku podcastsponsor   

[Why You (Probably) Don't Need PostGIS](https://blog.rebased.pl/2020/04/07/why-you-probably-dont-need-postgis.html) — PostGIS is a popular and _very_ powerful set of geospatial extensions for Postgres but for many geospatial tasks it’s a bit like using _“a very large cannon to shoot a tiny bird”_ and there are simpler alternatives. 

Krzysztof Zych   

[Upgrading Rails: Tracking Down Deprecated Callbacks in Rails 5.0](https://labs.clio.com/upgrading-rails-tracking-down-deprecated-callbacks-in-rails-5-0-b4288c5fab5e) — Alex actually taps into the ActiveSupport Callback methods and modifies what the deprecation warnings display to make finding them easier. 

Alex Taylor   

[How to Restart Sidekiq Automatically for Each Deployment](https://www.codewithjason.com/restart-sidekiq-automatically-deployment/) — Jason taps into systemd and systemctl, so this is focused on a Linux-based deployment environment. Still, it’s easier than you might suspect. 

Jason Swett   

[What Is The Ruby Legacy?](https://avdi.codes/what-is-the-ruby-legacy/) — Avdi muses on a “post-Ruby world” and the lessons we have learned and can teach. 

Avdi Grimm   

[`obj.method_name` vs `class << obj`: The Real Difference](https://emmanuelhayford.com/the-difference-between-self-method-name-and-class-self-in-ruby/) 

Emmanuel Hayford   

[A Hands-On Tutorial to Debugging Your Code with `pry-byebug`](https://remimercier.com/pry-byebug-tutorial/) 

Remi Mercier   

[The Ruby Security Checklist](https://link.sqreen.com/yCOS9oW8) 

Sqreen sponsor  

🛠 Code and Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/wwpfdx4crvzpcqxrlyk0.jpg)](https://github.com/topfunky/gruff)   

[Gruff Graphs: A Graphing Library for Ruby](https://github.com/topfunky/gruff) — This library is _12 years old_ but has just had its first release in 4 years so it deserves a link up and.. I just gave it a spin and it still works well if you want to render basic charts to graphics. 

Geoffrey Grosenbach and Watson   

[amazing_print: Pretty Print Your Ruby Objects with Style](https://github.com/amazing-print/amazing_print) — AmazingPrint is a fork of AwesomePrint, which seems to have stagnated. Print your objects in full color with full indentation, etc. Awesome! Amazing! 

AmazingPrint   

[Slack-Ruby-Bot: A Generic Slack Bot Framework](https://github.com/slack-ruby/slack-ruby-bot) — Bills itself as “the easiest way to write a Slack bot in Ruby” and might be the perfect way to annoy, entertain and inform your fellow coworkers while working from home 😄 

Daniel Doubrovkine, Artsy and Contributors   

[Brutal: A Code-First Approach to Automate The Writing of Unit Tests](https://github.com/fixrb/brutal) — A way to remove some of the boilerplate of testing using YAML and code generation. An interesting _idea_ though I’d be curious to see if it actually catches on. 

Sashite   

[CSV Shaper: A DSL for Creating CSV Output](https://github.com/paulspringett/csv_shaper) — Kicking data into shape for CSV output isn’t much fun at the best of times, so if anything can make it better.. 

Paul Springett   

[Chatwoot: Simple, Open Source Live Chat Software](https://github.com/chatwoot/chatwoot) — A Rails-based open source alternative to a service like Intercom, say. 

Chatwoot   

[elasticsearch-ruby 7.6.0: Ruby Integrations & Client for Elasticsearch](https://github.com/elastic/elasticsearch-ruby/releases/tag/v7.6.0) — Elasticsearch is a popular search query-driven document database. 

elastic         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Cooperpress](https://cooperpress.com/). 

[Change your email address](https://rubyweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
