#453 — June 6, 2019

Read on the Web

Ruby Weekly

Ruby 2.7.0 Preview 1 Released — The “preview” stage of 2.7.0 is upon us and is now in good shape to be tested by the wider community. Features include:

  • Heap compaction in the garbage collector (a win for long-running and multithreaded apps).
  • Pattern matching.
  • Multi-line editing support and rdoc integration in irb.
  • The .: method reference operator.
  • Enumerable#tally for counting the occurrence of elements in an enumerable.
  • Beginless ranges, numbered parameters, JIT imrovements, and more.

The final version of Ruby 2.7 is due, as ever, on Christmas Day.

Produce High-Quality Code More Efficiently with RubyMine — With smart code completion, dozens of refactorings, and support for popular frameworks, all working out of the box, RubyMine is an IDE that makes development easier and more enjoyable. Try the new RubyMine 2019.1.

JetBrains sponsor

Direct Instruction Marking in Ruby 2.6 — GitHub upgraded to Ruby 2.6 and saw a 3 percent decrease in post boot memory usage. Aaron explains how the optimization works at a technical level.

Aaron Patterson (GitHub)

macOS to Remove Having Ruby Installed by Default — The next version of macOS (10.15) is deprecating having ‘scripting language runtimes’ (which includes Ruby) installed by default, though it seems they might not disappear until 10.16. In related news, macOS will also be switching from bash to zsh.

Apple Developer Documentation

GraphQL on Rails: From Zero to The First Query — This article explains the basics of GraphQL, fixes a bug in the first query, and sets the stage for the forthcoming article on mutations.

Martian Chronicles

💻 Jobs

Sr. Software Engineer - Rails (Seattle, WA) — You get it done with Rails, have strong programming fundamentals, are adaptable, and ready to jump in anywhere. Leafly is looking for you.

Leafly

Ruby on Rails Developer at X-Team (Remote) — Join the most energizing community for developers. Work from anywhere with the world's leading brands.

X-Team

Land a New Dev Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

Rails 6 Boot Sequence — If you’ve never walked through how Rails starts up, it’s a good exercise that highlights the design of Rails and how it uses things like Rack and Bundler.

Younes Serraj

Don’t Email From Active Record Callbacks — Using callbacks has to be done with care, so this is great advice on one thing not to do in a real Rails app.

Andy Croll

The Open Source Conundrum: How Do We Keep the Lights On? — Thoughts behind funding need to change if Open Source is to remain sustainable well into the future.

CodeFund sponsor

Enhanced Shell Scripting with Ruby — A set of tips that will start you on the path of adding Ruby to your shell scripting toolbox.

DevDungeon

Why You Should Consider Bounded Contexts in Rails — One approach to applying Domain Driven Design concepts to Rails. I bet this article will inspire opinions.

Tomas Valent

Split RSpec Tests with Jenkins Parallel Pipeline to Run Specs Faster — I bet the longest stage in your CI pipeline is running the tests. Running them in parallel could help.

Knapsack Pro

dry-rb 1.0: Upgrading Validations, Types and Schemas

Igor Morozov

🔧 Code & Tools

PostgreSQLCursor: An Active Record Postgres Adapter Extension for using a Cursor to Return a Large Result Set — Anything that helps me make use of Postgres’s advanced features with Active Record gets a thumbs up from me.

Allen Fair

trip.rb: A Concurrent Tracer That Can Pause, Resume, and Alter Code — This looks like a pretty handy tool, almost like an external debugger that can change binding variables and pause on errors.

rg-3

Test Drive First Class CI/CD Pipelines

GoCD sponsor

WebMock: Stub and Set Expectations on HTTP Requests for Testing — Supports lots of HTTP libraries like Net::HTTP, Excon, the http gem, and Curb::Easy.

Bartosz Blimke

Onebox: Turn URLs into Website Previews — Originally created for the Discourse forum software.

Discourse

Truemail 1.0: A Configurable Plain Ruby Email Validator — Offers three levels of email validation: regex, MX records, and SMTP.

Ruby Garage

Flatware: A Parallel Test Runner for RSpec and Cucumber with Pretty Output

Brian Dunn

Rambulance: Dynamically Render Error Pages or JSON Responses for Rails Apps

Yuki Nishijima