This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "argon2id" | |
require "bcrypt" | |
# Schema: User(name: string, password_digest:string) | |
class User < ApplicationRecord | |
attr_reader :password | |
validates :password_digest, presence: true | |
validates :password, confirmation: true, allow_blank: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%= form_with model: @post, data: { controller: 'upload', action: 'direct-upload:error@window->upload#error' } do |f| %> | |
<%= f.file_field(:image, data: { 'direct-upload-url' => uploads_url }) %> | |
<%= f.submit %> | |
<% end %> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Rails.application.configure do | |
# Add Cloudflare's IPs to the trusted proxy list so they are ignored when | |
# determining the true client IP. | |
# | |
# See https://www.cloudflare.com/ips-v4/ and https://www.cloudflare.com/ips-v6/ | |
config.action_dispatch.trusted_proxies = ActionDispatch::RemoteIp::TRUSTED_PROXIES + %w[ | |
173.245.48.0/20 | |
103.21.244.0/22 | |
103.22.200.0/22 | |
103.31.4.0/22 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ApiController < ApplicationController | |
before_action :only_respect_accept_header | |
private | |
# By default, Rails will ignore the Accept header if it contains a wildcard | |
# and assume the client wants HTML (or JS if using XMLHttpRequest). See | |
# https://github.com/rails/rails/blob/a807a4f4f95798616a2a85856f77fdfc48da4832/actionpack/lib/action_dispatch/http/mime_negotiation.rb#L171-L173 | |
# | |
# If you don't expect your clients to be browsers, we want to override this |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cask "pdftk" do | |
version "2.02" | |
sha256 "c33cf95151e477953cd57c1ea9c99ebdc29d75f4c9af0d5f947b385995750b0c" | |
url "https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-#{version}-mac_osx-10.11-setup.pkg" | |
name "PDFtk" | |
desc "Tool for doing everyday things with PDF documents" | |
homepage "https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/" | |
pkg "pdftk_server-2.02-mac_osx-10.11-setup.pkg" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'base64' | |
class DataUri | |
REGEXP = %r{ | |
data: | |
(?<mediatype> | |
(?<mimetype> .+? / .+? )? | |
(?<parameters> (?: ; .+? = .+? )* ) | |
)? | |
(?<extension>;base64)? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -euo pipefail | |
IFS=$'\n\t' | |
# Download all ticked blocklists from The Firebog's "The Big Blocklist | |
# Collection" [0] and block access to them with Unbound by redirecting traffic | |
# to 0.0.0.0. | |
# | |
# [0]: https://firebog.net | |
( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A refinement to add methods to Enumerables for calculating the three | |
# Pythagorean means. | |
# | |
# See https://en.wikipedia.org/wiki/Pythagorean_means | |
module PythagoreanMeans | |
# Note that due to a bug refining modules in Ruby 2.7 [1], we can't `refine | |
# Enumerable` so we `refine Array` instead. | |
# | |
# See also https://interblah.net/why-is-nobody-using-refinements |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Based off chruby's auto.sh: https://github.com/postmodern/chruby#auto-switching | |
unset NODE_AUTO_VERSION | |
function chnode_auto() { | |
local dir="$PWD/" version | |
until [[ -z "$dir" ]]; do | |
dir="${dir%/*}" | |
if { read -r version <"$dir/.node-version"; } 2>/dev/null || [[ -n "$version" ]]; then |
NewerOlder