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.
Why the CSV standard library is broken (Part III) - CSV Record as Array? Hash? etc.
Hello, I’ve written a new (and third) episode on why the CSV standard library is broken, broken, broken (and how to fix it). Let’s have a look at how to handle csv records - How about returning an array? hash? struct? row? etc. Or how about adding new “low-level” parsers for supporting more dialects and formats or for faster code with c-extensions? Questions and comments welcome. Cheers. Prost. PS: If you want to see other (more) CSV formats / dialects pre-configured and supported “out-of-the-box” in the new csv reader, please tell. PPS: Why care about CSV? Did you know - data is the new gold :-) and CSV is the world’s most popular (No. 1) data format.
Rails Parts
When we restarted developing an application from scratch, we stumbled upon a great way to split the files in your Rails app into different parts. Read about how to use Rails in parts.
Kafka vs Mosquitto - which tool is better for communication between microservices?
In this post, we’re going to make a comparison between two popular tools - Kafka and Mosquitto to see which one is better for communication between microservices.
Datatables Basics
Datatables in Rails that implements pagination, search, sorting by column. Read more here Integrate Datatables without using any pagination gems in Rails Includes a link to a sample Rails project.
The Problems With Validating ActiveRecord Models and Why State Validation Is a Bad Id
In the typical Rails application, you can find the most of the validations in the ActiveRecord models, which is nothing surprising - ActiveRecord models are used for multiple things. Whether it is a good thing, or a bad thing (in most cases it’s the latter) deserves a separate book or at least blog post-series as it’s not a simple problem, there is one specific thing that can cause a lot of issues that are difficult to solve and go beyond design decisions and ease of maintenance of the application, something that impacts the behavior of the model - the validations. [more inside]
My awesome RSpec hacks
Check out my gist article. Hope you will find something useful hacks to make you testing easy
Nine tips for Rails migration mastery
Several guidelines to help you navigate the many database changes you’ll make throughout your career as a Rails developer. [more inside]
Browserino -- A user-agent string parser.
Tired of asking your users for their browser / OS and their versions? Do you want to know wether they are visiting your website on mobile or would you like to know their locale to be able to provide a better experience? Then check out Browserino, a user-agent string parser with Rails support.
Runtime Introspection in Ruby
Ruby offers a variety of methods that allow you to ask an object about its capabilities (which messages/methods does it respond to?), its variables and constants, and its backstory (the object’s class and ancestors). [more inside]
How to: Get most of the database cleaner
Road to fast and sane specs continues, this time we fine tune database cleaner setup, to use mix of transactions, deletion and truncation ⚡️ http://bit.ly/testing-sanity-p2-clean-db ⚡️ #testing #ruby
Ruby Conferences & Camps in 2018 Calendar Update @ Planet Ruby - What's Upcoming?
Hello, I’ve updated the ruby conferences & camps in 2018 calendar. What’s upcoming? October: Sat 6 (1d) Ruby Russia @ Moscow, Russia // Thu+Fri 25+26 (2d) RubyConf Malaysia @ Kuala Lumpur, Malaysia ++ November: Fri 9 (1d) Keep Ruby Weird @ Austin, Texas, United States // Tue-Thu 13-15 (3d) RubyConf @ Los Angeles, California, United States. Any others? Please tell. Cheers. Prost. PS: Did you know? The calendar page (source) is built with … jekyll. PPS: For 2019, see the ruby conferences & camps in 2019 calendar page.
A quick overview of what's a class in Ruby
A 2minutes video about what’s a class in Ruby https://www.youtube.com/watch?v=dL_44Tca-eI&feature=youtu.be
How to Create Paid Order Using Shopify API
This article shows how to create a paid order using Shopify API. The tutorial utilizes the ‘shopify_api’ Ruby gem. https://naturaily.com/blog/paid-order-shopify-api
A wrapper to Nubank's public API
This gem provides a wrapper to Nubank’s public API. [more inside]
How to migrate monolith to the scary new version of Rails
Common techniques and tips for doing painless incremental Rails upgrade https://dev.to/amplifr/how-to-migrate-monolith-to-the-scary-new-version-of-rails-3o52
Making a Ruby executable
Read about how I build an executable for InvoicePrinter in 10 minutes.
Why the CSV standard library is broken (Part II) - The Wonders of CSV Formats
Hello, I’ve written a follow-up on why the CSV standard library is broken, broken, broken (and how to fix it).
Let’s have a look at the wonders of CSV formats / dialects such as MYSQL CSV export or PostgreSQL CSV or TEXT export. In a nutshell - the standard CSV parser is a (simplistic) kludge
using string.split() and, thus, needs to get replaced with a “real” parser that can handle more “edge” cases and formats. Questions and comments welcome. Cheers. Prost. PS: If want to see other (more) CSV formats / dialects pre-configured and supported “out-of-the-box” in the new csv reader, please tell.
#to_s or #to_str? Explicitly casting vs. implicitly coercing types in Ruby
This week in AppSignal Academy: the difference between explicit casting (with #to_s) and implicit coercing (with #to_str) in Ruby, and the difference between typecasting Leonard Nimoy and Michael Keaton. 🖖🦇 http://blog.appsignal.com/2018/09/25/explicitly-casting-vs-implicitly-coercing-types-in-ruby.html
How TextMaster reduced deployment time by using multi-stages dockerfile
Learn how TextMaster leverage multi-stage dockerfile to drastically reduced deployment time of its Rails applications. More information here https://buff.ly/2xR9QLM