Skip to content

Instantly share code, notes, and snippets.

View paul's full-sized avatar

Paul Sadauskas paul

View GitHub Profile
SettingsSchema = Dry::Schema.JSON do
optional(:custom_object).hash do
required(:active).filled(:bool)
optional(:entity_name).maybe(:string)
end
end
module Macros
def self.included(validator)
validator.register_macro(:custom_object_entity_name) do
@paul
paul / 1.migration_utils.rb
Last active July 24, 2021 12:49
Helpers to work with Enum fields in Postgres and ActiveRecord. Companion code to http://blog.theamazingrando.com/posts/postgres-enums-in-rails.html
# frozen_string_literal: true
module MigrationUtils
module CreateEnum
# :reek:TooManyStatements :reek:NestedIterators
def create_enum(name, values)
reversible do |dir|
dir.up do
say_with_time "create_enum(:#{name})" do
suppress_messages do
@paul
paul / wiki_toc.yml
Created September 18, 2020 22:43
Update wiki pages with Table of Contents (using tocer gem) automatically when the wiki changes
# .github/workflows/wiki_toc.yml
name: Update wiki table of contents
on:
- gollum
jobs:
run:
runs-on: ubuntu-latest
Nov 26 03:02:16 logsnarf-1 falcon[20041]: 3m17s debug: #<Async::Reactor:0x1a302b8 (running)> [pid=20043] [2019-11-26 03:02:16 +0000]
Nov 26 03:02:16 logsnarf-1 falcon[20041]: | @ready = [] @running = []
Nov 26 03:02:16 logsnarf-1 falcon[20041]: 3m17s debug: #<Async::Reactor:0x1a302b8 (running)> [pid=20043] [2019-11-26 03:02:16 +0000]
Nov 26 03:02:16 logsnarf-1 falcon[20041]: | Selecting with 1 children with interval = infinite...
Nov 26 03:02:16 logsnarf-1 falcon[20041]: 3m17s debug: #<Async::Reactor:0x1a301dc (running)> [pid=20044] [2019-11-26 03:02:16 +0000]
Nov 26 03:02:16 logsnarf-1 falcon[20041]: | @ready = [] @running = []
Nov 26 03:02:16 logsnarf-1 falcon[20041]: 3m17s debug: #<Async::Reactor:0x1a301dc (running)> [pid=20044] [2019-11-26 03:02:16 +0000]
Nov 26 03:02:16 logsnarf-1 falcon[20041]: | Selecting with 1 children with interval = infinite...
Nov 26 03:02:16 logsnarf-1 falcon[20041]: 3m18s debug: #<Async::Reactor:0x1a30100 (running)> [pid=20045] [2019-11-26 03:02:16 +0000]
Nov 26 0
module Main exposing (main)
-- import Api.Object.Deck
-- import Api.Query as Query
-- import Api.Scalar exposing (Id(..))
-- import Graphql.Operation exposing (RootQuery)
-- import Graphql.SelectionSet as SelectionSet exposing (SelectionSet)
import Browser
import Html exposing (..)
@paul
paul / async.rb
Created December 25, 2018 04:05
Implementations of useful step adapters for dry-transaction
# frozen_string_literal: true
module Tesseract
module Transaction
module Steps
# Executes the step in a background job. Argument is either an ActiveJob
# or another Transaction (or anything that implements `#perform_later`.
#
# If the provided transaction implements a `validate` step, then that
# validator will be called on the input before the job is enqueued. This
@paul
paul / authentication_steps.rb
Last active October 21, 2017 16:06
Writing cucumber/turnip steps that would as both "I should XYZ" and "I should not XYZ"
module AuthenticationSteps
# Before, this required two steps, one for "should" and one for "should not".
# Alternatively, you could write a single step that had a `:should` placeholder,
# but required an `if negated ... else ... end`, which still duplicated the matchers.
step "I :should be on the main app page" do |negated|
with_negation(negated) do
expect(page).to have_current_path("/#")
expect(page).to have_text(@authenticated_user.full_name)
@paul
paul / railsconf.md
Last active June 1, 2016 15:52
RailsConf 2016

Overview

Traveled by motorcycle (1300 miles roundtrip) from Boulder, CO to Kansas City, MO and back again.

Schedule

Wednesday

  • Keynote (Jeremy Daer)
  • Didn't find this keynote to be of much value. It meandered and ran over allotted time.
require "benchmark/ips"
require "active_support/callbacks"
class NormalMethod
def before
:before
end
{
"@context": {
"vocab": "http://www.markus-lanthaler.com/hydra/api-demo/vocab#",
"hydra": "http://www.w3.org/ns/hydra/core#",
"ApiDocumentation": "hydra:ApiDocumentation",
"property": {
"@id": "hydra:property",
"@type": "@id"
},
"readonly": "hydra:readonly",