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.
Creating a Minimal Sinatra App For Hosting Test Files on Heroku
I have shared my experience building a very minimal Sinatra app to host test files with basic auth in this post.
Let's Read! - Eloquent Ruby
The start of a read-together and comment track of Eloquent Ruby, noting things that have changed since the original 2011 release. [more inside]
prawn-markup released!
I am very happy to announce the release of prawn-markup, an extension to the Prawn PDF library to include simple HTML structures into your PDF documents. [more inside]
kramup / kramdown-service v1.0.0 - Live Markdown Editor and HTTP JSON API
Hello, I’ve updated the kramdown-service / kramup library and tool that lets you start your own local live markdown editor browser app and json http api service w/ sinatra v2. Enjoy. Cheers. Prost. PS: Did you know? kramdown can convert markdown to latex instead of “classic” hypertext markup too.
What Options Can Be Passed to the Active Storage #variant Method?
When Rails adds a large new feature like Active Storage, it takes some time before good Internet resources and documentation become available for it. This can be a challenge when learning how to use the variant method for image transformations. Not only does it take a lot of options, but the format of those options isn’t obvious. To make it easier, check out the resources and tips I’ve compiled here: http://www.carlosramireziii.com/what-options-can-be-passed-to-the-active-storage-variant-method.html
Refactoring with Design Patterns - The Template Pattern
Design patterns are a powerful tool for any developer and a familiarity with them will lead to better code by forcing a consideration of SOLID principles. [more inside]
Don't talk CRUD
Don’t create another layer of abstraction between you and client
Currying in Ruby
I recently learned how to Curry in Ruby and turns out it’s pretty easy to do
Rails: Active Storage Basics (File Uploading) [Video]
Active Storage is now the preferred way to handle file uploads in rails. Whether you are handling images, documents or even videos Active Storage can help you.
Gem for ruby-graphql authorization
As ruby-graphql do not come with the built-in authorization support, we’ve come with our own solution . Right now we support only CanCanCan and Pundit for checking abilities (and of course passing procs), but it’s fairly easy to extend it. Feedback and contributions are welcome!
CodeDaze 2018 Buffalo, NY, a summary
The 2018 CodeDaze conference in Buffalo is a general topic tech conference with a lean towards tackling the real hard (people) problems. Talks by Avdi Grimm, Mark Bates, Coraline Ada Ehmke, Adrian Roselli, Kerri Miller, and other wonderful people:
Why we're going from Ruby on Rails to JavaScript & Node.js
We’ve been using Ruby on Rails on our projects for so long, but for new ones, we’ll start to adopt JavaScript & Node.js. Find out exactly why at: Why we’re going from Ruby on Rails to JavaScript & Node.js
Fiddling with files & bots
WeTransfer’s Julik Tarkhanov and @GitHub Developer Advocate Don Goodman Wilson on file formatting and automating issue triaging at yesterday’s Amsterdam.rb, Amsterdam Ruby meetup:
The Singleton module in Ruby
in this article we’re going to explore the following topics:
PostgreSQL vs MySQL
There are many databases out there but most web applications developed using an open-source web framework use either PostgreSQL or MySQL. I’ve been asked by many clients over the years why they should use PostgreSQL over MySQL for their Ruby on Rails application. [more inside]
3 ways to make your ruby object thread-safe
Let’s say you have an object and you know or suspect it might be used (called) from many threads. What can you do to make it safe to use in such a way?
Spyme gem released with Rails 5 support
Spyme is a gem let’s you automatically get the current geolocation of the visit and stores it in the session so you can persist it anyway you want. Please feel free to report any bug or changes that you need.
Dropping RHEL6, Debian 7 and Ruby 1.8 support
We’re considering dropping support in Passenger for RHEL/CentOS 6, Debian 7 and Ruby 1.8, these old distros slow down our development process and prevent us from using C++11. What do you think? Let us know:
Migrating Passenger from C++ to Go?
When Passenger was created, C and C++ were our only viable options. But the language ecosystem has evolved and we’re considering switching to #Golang. WDYT? Let us know:
The return Keyword in Ruby
In this article, we’re going to explore the following topics:
Start Internal portal application with Ruby on Rails in few minutes
This is part two of series “How to use DRG CMS for creating fully functional internal portal application” https://www.drgcms.org/blog/Damjan%20Rems/create-internal-portal-application-in-few-minutes-2018-09-13 . Installation should not take more then 5 minutes of your time. Most of the time will be spent on compiling nokogiri gem. [more inside]
Validating the Content-Type of Active Storage Attachments
Full validation support for Active Storage attachments won’t be arriving until Rails 6. Until then you’ll need to write your own custom validators to add this missing functionality. Last time I showed you how to write an attachment presence validator. Next I’ll share a validator which can restrict the content-type of your attachments. Drop this bit of code and its accompanying RSpec matcher into your project to tide you over until the next Rails release. http://www.carlosramireziii.com/validating-the-content-type-of-active-storage-attachments.html
The nil value in Ruby
In this article we’re going to explore the following topics:
CanCanCan that scales
A simple explanation on how to use CanCanCan so that it scales with your application and does not impact your performances. The method is very simple and allows you to separate permissions for each model as Pundit does. [more inside]