The Ruby and Rails community linklog
Made a library? Written a blog post? Found a useful tutorial? Share it with the Ruby community here or just enjoy what everyone else has found!
Submit a post
Post Preview
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
How fast is Ruby 2.5, 2.6 and 2.6 –jit in generating Prawn PDFs
I tried to find out if the new Ruby 2.6 JIT (from preview3) can help the performance when generating invoices using InvoicePrinter and Prawn. Here is the benchmark.
Announcing the release of WebpackerCli
Announcing the release of WebpackerCli. Bringing the convenience of Rails’ Webpacker to any web framework… even those in other languages.
Convert html snippet into a png file
https://github.com/igorkasyanchuk/omg_image new gem which allows creating previews for your HTML snippets. Actually, there are many ways how to use it: from nice previews to charts and email attachments. [more inside]
Image Placeholder for your development environment
Some time ago I was working together with Szymon on one of our clients web application. We used copy of products catalog coming from production server on our development machines. What we were lacking were product photos, causing application layout to look poorly and making any CSS job hard. We tried to find a smart solution for that case.
Mastering data structures in Ruby — Singly linked lists
This is the first post of a series I made on how to create essential data structures from scratch. So far the series covers singly linked lists, doubly linked lists, circular linked lists, stacks, queues, hash tables, sets, and binary trees (and there more coming soon!). Each data structure is covered in a brief post that explains in a casual tone the core aspects of each data structure. I hope you enjoy them!
Taking Stimulus.js (front-end framework by Basecamp) for a ride
I am trying Stimulus.js lately in Rails and I think it fits nicely the server-rendered HTML + Turbolinks use case. This is my first look on Stimulus.js.
9 New Features In Ruby 2.6
A new Ruby version is almost here! What new & exciting features does it come with? Find out in this new article:
Six Great Reasons to Build Service Architectures in Ruby with Eventide
Eventide makes service development as approachable as Rails made web development in 2006, and seeks to democratize this as-yet esoteric subject that, at the moment, tends to be calcified under a thick layer of popular myths and fads.
finite_machine is back!
The finite_machine gem is back with improved APIs, faster execution times (2x more events fired per second), smaller memory footprint (2x fewer object allocations) and thread safety! Good place to start is at the FiniteMachine website.
ScriptCore - a mruby sandboxie for user's dynamic logic (safe eval)
ScriptCore based on Shopify’s ESS, it’s a mruby sandbox to run untrusted codes (usually written by users), ESS powered Shopify Scripts, and ScriptCore wrapping ESS (with some modifications) to easy to integrate with Rails apps, and I took a video to show the dummy app: https://twitter.com/jasl9187/status/1061674632380481536
Lazy preloading for ActiveRecord
ArLazyPreload gem allows you to avoid N+1 problem for cases, when you don’t know the exact list of associations you’re going to load (hi, GraphQL!). When you specify a list of lazy loaded associations, they would be loaded only when accessed for the first time: [more inside]
Type assertion with Ruby 2.6
With RubyVM::AST in 2.6 we can write more beautiful type-assertions: [more inside]
Headless browser testing with capybara-chrome
Test your latest Javascript with the most popular and modern web browser: Chrome. QtWebkit has become increasingly difficult to install, and requires shims for most modern Javascript techniques. Now you can swap out capybara-webkit for capybara-chrome and never worry about re-installing qt again. [more inside]
Smart select for GraphQL
GraphQL::SmartSelect is a plugin for graphql-ruby and ActiveRecord, which allows you to optimize DB queries and select only the columns required for the query. [more inside]
Migrating from Paperclip to Active Storage
My first challenge as an intern:
Should you learn using VIM?
Any VIM users or haters here?🤔 Share your thoughts in the article’s comments!🗨️ https://driggl.com/blog/a/should-you-start-using-vim [more inside]
ElixirConf 2018: Thoughts on Elixir from a Ruby developer
Elixir has had my attention for awhile now and my interest in the language and community hasn’t wavered. ElixirConf offered me an opportunity to translate that interest into action. As an experienced Rubyist, I am pleased with my development experience, community support, and the capabilities of Ruby. Elixir offers these same benefits and adds features such as concurrency, fault tolerance, and speed to the mix. [more inside]
Testing Asynchronous Threads in Ruby
🦇 Laundry day at the Batcave. Testing asynchronous threads in Ruby explained.
Passenger 5.3.6: fixes smart spawning
Passenger 5.3.6 has been released. Most notably is the smart spawning fix, but it also includes fixes for frustrating warnings on macOS >= High Sierra, and gemset detection on RVM 1.29:
OS time: working on open source during company time
We get to contribute to open source software at Phusion, like through maintaining the frontapp gem. Initially scratching our own itch, outside contributions make working on it really worth the while:
Tinkering with developer documentation: creating an ePub
Taking feedback on the new Docs to heart, we tried rendering an ePub from the documentation. A tale of (plenty) HTML errors:
How lag isn't always a bad thing
Redesigning the Passenger Docs using React, and then rewriting it in Ruby (Middleman), rendered some interesting challenges and insights: