Code Explainers
Ruby code explainers
ruby
class ReportBatcher BATCH_SIZE = 500 def initialize(account)
Batching monthly email summaries in Rails
batching
service-object
background-jobs
Intermediate
7 steps
ruby
class Comment < ApplicationRecord belongs_to :commentable, polymorphic: true, counter_cache: true belongs_to :author, class_name: "User"
How polymorphic comments work in Rails
polymorphic-association
concerns
counter-cache
Intermediate
8 steps
ruby
class SessionsController < ApplicationController MAX_ATTEMPTS = 5 THROTTLE_WINDOW = 15.minutes
Throttling failed logins in Rails
rate-limiting
authentication
caching
Intermediate
7 steps
ruby
class ProductsController < ApplicationController def index @products = Product .includes(:category, :brand)
Building a safe filterable product index in Rails
query objects
scopes
strong parameters
Intermediate
8 steps
ruby
module LogParser class AccessLogStreamer SEVERITY_PATTERN = /\b(ERROR|WARN|FATAL)\b/
Streaming log lines with a Ruby enumerator
enumerators
lazy-iteration
regex-matching
Intermediate
6 steps
ruby
class HostnameValidator < ActiveModel::EachValidator MAX_LENGTH = 253 LABEL = /\A(?!-)[a-z0-9-]{1,63}(?<!-)\z/i
Writing a custom hostname validator in Rails
validation
custom validator
regex
Intermediate
8 steps
ruby
class PaymentsController < ApplicationController before_action :require_idempotency_key def create
Idempotent payment creation in Rails
idempotency
transactions
race-conditions
Advanced
10 steps
ruby
class Survey < ApplicationRecord has_many :questions, dependent: :destroy has_many :respondents, dependent: :nullify
Nested survey forms in Rails
nested-attributes
validations
associations
Intermediate
9 steps
ruby
class OrderConfirmationJob < ApplicationJob queue_as :mailers retry_on Net::OpenTimeout, wait: :polynomially_longer, attempts: 5
Resilient background jobs in Rails
background-jobs
retries
idempotency
Intermediate
8 steps
ruby
module SoftDeletable extend ActiveSupport::Concern included do
How a soft-delete concern works in Rails
concerns
soft-delete
scopes
Intermediate
8 steps
ruby
class Post < ApplicationRecord before_validation :generate_slug, on: :create validates :slug, presence: true, uniqueness: true
How a Rails model builds unique slugs
slugs
callbacks
validations
Intermediate
7 steps
ruby
module TextAnalysis module_function WORD_PATTERN = /[\p{Alpha}']+/
Building a word-frequency analyzer in Ruby
text processing
regex
enumerable
Intermediate
8 steps
ruby
module Fibonacci CACHE = Hash.new do |cache, n| cache[n] = cache[n - 1] + cache[n - 2] end
Memoizing Fibonacci with a Hash default block
memoization
recursion
hash-default
Intermediate
5 steps
ruby
class EventEmitter def initialize @listeners = Hash.new { |hash, key| hash[key] = [] } end
Building an EventEmitter in Ruby
pub-sub
closures
callbacks
Intermediate
7 steps
ruby
require 'optparse' require 'ostruct' def parse_options(argv)
Parsing CLI options with OptionParser
cli
argument-parsing
validation
Intermediate
8 steps
ruby
module Retryable class RetriesExhausted < StandardError; end RETRYABLE_ERRORS = [
Exponential backoff retries in Ruby
retry-logic
exponential-backoff
error-handling
Intermediate
7 steps
ruby
class Throttle def initialize(interval) @interval = interval @mutex = Mutex.new
A thread-safe throttle in Ruby
concurrency
rate-limiting
mutex
Intermediate
7 steps
ruby
class Article < ApplicationRecord before_validation :generate_slug, on: :create validates :slug, presence: true, uniqueness: true,
How URL slugs work in Rails
callbacks
validations
slugs
Intermediate
7 steps