sinsiliux's Blueprints at master - GitHub
Another replacement for factories and fixtures that focuses on being DRY and making developers type as little as possible.
acunote's template_inliner at master - GitHub
Template inliner avoids the problem when to render a large list of objects,
CSS Rant -- 5 tips for rails developer sanity - Momoro Machine
Fuck acronyms, really
cwninja's inaction_mailer at master - GitHub
An ActionMailer delivery method to save mails as files in a directory.
cwninja's popthis at master - GitHub
So you downloaded inaction_mailer, and you had a folder full of e-mails generated while writing your app?
elevation's event_calendar at master - GitHub
Easily show multiple, overlapping events across calendar days and rows.
pjdavis's identity-map at master - GitHub
A simple implementation of an Identity Mapper for Active Record.
How to split a Ruby class into multiple source files - Gem Session
Unfortunately vanilla Ruby modules lack support for many idioms popular in modern Ruby. Most importantly, we have become accustomed to composing our classes with meta-programming macros such as has_many, validates_presence_of or after_save. And modules weren't built with macros in mind.
datagraph's rack-throttle at master - GitHub
Rack middleware for rate-limiting incoming HTTP requests.
jnicklas's carrierwave at master - GitHub
File uploads survive validation errors, letting forms round-trip without losing the selected file and reducing re-upload friction.
Handy! RGB to HSL and RGB to HSV color model conversion algorithms in JavaScript - Axon Flux // A Ruby on Rails Blog
Here is a set of additive color model conversion algorithms that I found published on Wikipedia and have implemented in JavaScript.
Sailing down the Hudson with RVM - GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS
We recently decided our CI server needed an overhaul. I really enjoyed Integrity as a build server, but after trying out Hudson it’s hard to say I want to go back. Hudson has several huge advantages.
Ultimate rspec matcher to test named_scope or scoped - Web development blog
What do we expect from the custom finder? We expect that it should find assets A, B, C and should not find assets D, E, F. And sometimes the order is important: it should find A, B C with exact order.
Insertion/Deletion callbacks
All ActiveRecord associations except for has_many :through support callbacks for pre- and post-insertion/deletion via the following, self-documenting parameters:
Regular tasks for long-running projects
Long-running projects need regular upkeep to avoid stale dependencies, growing data, and bloated storage that raise costs and slow applications.
Ruby: How to use prepend for cleaner monkey patches
prepend makes Ruby monkey patches cleaner by inserting an extension before the original implementation, so super still reaches it and ancestor chains stay readable.
Minifying object properties in JavaScript files
JavaScript minifiers can shorten private members safely when internal names follow _ or # conventions, reducing bundle size without mangling public APIs.
Take care of indentation and blank lines when using .erb for plain text emails
Plain text .erb emails preserve indentation and blank lines, so indented template code can insert unwanted spaces or extra newlines. Trim mode and unindented markup prevent formatting bugs.
RSpec: automatic creation of VCR cassettes
RSpec examples tagged :vcr automatically record and replay HTTP cassettes, while untagged specs block network calls unless HTTP access is explicitly enabled.
GoodJob: Ensure you get notified about background exceptions
ActiveJob and GoodJob can swallow exceptions, causing silent background job failures. Subscribing to job events and on_thread_error restores exception notifications and adds failure context.
Ruby: How to collect a Hash from an Array
Map an array or enumerable to a hash in Ruby using to_h, index_by, group_by, index_with, or a custom collect_hash helper.
Capistrano + Rails: Automatically skipping asset compilation when assets have not changed
Rails deployments can spend minutes precompiling assets; Capistrano can skip that work automatically when the code and asset files have not changed.