ruby
class Coupon < ApplicationRecord
  before_validation :normalize_code

  validates :code,
            coupon_code: { min_length: 6 },
            uniqueness: { case_sensitive: false }

Validating Coupon Codes with a Custom EachValidator in Rails

rails validations activerecord
by codesnips 3 tabs
rust
pub enum Node {
    File { name: String, size: u64 },
    Dir { name: String, children: Vec<Node> },
}

impl Node {

Modeling a Filesystem Tree in Rust with Recursive Enums and Total Size

rust recursion enums
by codesnips 3 tabs
rust
use std::time::Duration;

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Config {
    pub endpoint: String,
    pub timeout: Duration,

Lock-Free Config Reads With Arc-Swap and Copy-on-Write Snapshots in Rust

rust arc copy-on-write
by codesnips 3 tabs
ruby
class DashboardMetrics
  include ActiveModel::Model

  attr_reader :account

  def initialize(account)

Expiring Dashboard Fragment Caches with a Versioned Composite Cache Key in Rails

rails caching fragment-caching
by codesnips 3 tabs
javascript
'use strict';

const { Transform } = require('stream');

class LineSplitter extends Transform {
  constructor(options = {}) {

Split a Large Log File Into Date-Based Chunks With a Node.js Transform Stream

nodejs streams backpressure
by codesnips 3 tabs
ruby
class ShippedEmailJob
  include Sidekiq::Job
  sidekiq_options queue: :mailers, retry: 5

  def perform(order_id)
    order = Order.find_by(id: order_id)

Fan Out Notifications to Email and SMS Using an ActiveRecord Observer

rails activerecord observer
by codesnips 3 tabs
javascript
import { useLayoutEffect, useRef, useCallback } from 'react';

export function useScrollAnchor(anchorItemCount) {
  const containerRef = useRef(null);
  const savedRef = useRef(null);

Preserve Scroll Position When Loading Older Comments With useLayoutEffect

react hooks uselayouteffect
by codesnips 3 tabs
ruby
class EmailDedupService
  DEFAULT_TTL = 5.minutes.to_i

  def self.claim(fingerprint, ttl: DEFAULT_TTL)
    key = "email_dedup:#{fingerprint}"
    # Atomic set-if-absent with expiry; returns true only for the first caller.

Throttle Duplicate Emails in Rails with a Mailer Interceptor and Redis Dedup Service

rails actionmailer redis
by codesnips 3 tabs
lua
-- KEYS[1] = bucket key
-- ARGV: capacity, refillPerSec, now(ms), cost, ttl(sec)
local capacity      = tonumber(ARGV[1])
local refill        = tonumber(ARGV[2])
local now           = tonumber(ARGV[3])
local cost          = tonumber(ARGV[4])

Token-Bucket Rate Limiting Middleware for Express with Per-Route Config

express rate-limiting token-bucket
by codesnips 3 tabs
go
package order

type CreateOrderRequest struct {
	Reference string        `json:"reference" binding:"required,min=3,max=40"`
	Currency  string        `json:"currency" binding:"required,currency"`
	Customer  Customer      `json:"customer" binding:"required"`

Binding and Validating Nested JSON in Gin With Custom Validators

go gin validation
by codesnips 4 tabs
sql
CREATE TABLE country (
    code       CHAR(2)      PRIMARY KEY,
    name       VARCHAR(128) NOT NULL,
    currency   CHAR(3)      NOT NULL,
    updated_at TIMESTAMPTZ  NOT NULL DEFAULT now()
);

Seeding Reference Data After a Flyway Migration with a Java Callback

flyway spring-boot migrations
by codesnips 3 tabs
typescript
import { RefObject, useEffect, useRef } from "react";

type Handler = (event: MouseEvent | TouchEvent) => void;

export function useClickOutside<T extends HTMLElement>(
  ref: RefObject<T>,

Reusable useClickOutside Hook for Closing Dropdowns in React

react hooks typescript
by codesnips 3 tabs