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
#!/usr/bin/env bash | |
# Useful when you want to git bisect in a rails app and know | |
# you need to `bin/rake db:migrate VERSION="SOMETHING"` before | |
# you check out the next commit so the database is in the right | |
# state, but you don't know what SOMETHING is. | |
# Usage: | |
# | |
# $ migration_version_at_ref <REF> |
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
# The core problem here is mixing levels of abstraction | |
# This unit has two jobs. It delegates one and retains (most of) the | |
# other. That means it's doomed to be partially hands-off | |
# (simply trusting whatever result ProposesAgent sends back) | |
# and otherwise hopelessly in the weeds (requiring | |
# a test to care not only whether the save was valid but how/why) | |
module Proposals | |
class ProposesAgent | |
Result = Struct.new(:success?, :proposal, :error_messages, keyword_init: 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
source 'https://rubygems.org' | |
git_source(:github) { |repo| "https://github.com/#{repo}.git" } | |
ruby '2.7.2' | |
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' | |
gem 'rails' | |
# Use Puma as the app server | |
gem 'puma' | |
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder |
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
<!doctype html> | |
<html> | |
<head> | |
<meta charset="utf-8" /> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |
<title>Content Manager</title> | |
</head> | |
<body> |
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
--- | |
include: | |
- ".solargraph_definitions.rb" | |
- "app/**/*.rb" | |
- "config/**/*.rb" | |
- "lib/**/*.rb" | |
exclude: | |
- test/**/* | |
- vendor/**/* | |
- ".bundle/**/*" |
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 Organization < ApplicationRecord | |
has_many :users | |
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
<%= form_with model: @user, url: account_path do |f| %> | |
<%= f.text_field :name %> | |
<%= f.email_field :email, disabled: true %> | |
<%= f.submit "Save" %> | |
<% end %> | |
<%= form_with url: login_email_path, method: :delete do |f| %> | |
<%= f.submit "Log out", variant: :reset %> | |
<% 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
require "date" | |
require "mocktail" | |
require "minitest/autorun" | |
class FetchesOrdersAndItems | |
Result = Struct.new(:orders, :items, keyword_init: true) | |
def fetch(start_date, end_date) | |
end | |
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
require "open3" | |
class ExecutesCommand | |
Result = Struct.new(:success, :output, keyword_init: true) | |
def call(command) | |
stdin, stdout_and_stderr, wait_thr = Open3.popen2e(command) | |
result = Result.new( | |
success: wait_thr.value == 0, | |
output: stdout_and_stderr.read | |
) |
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 CountsInventory | |
def count_inventory(store) | |
Inventory.find_or_initialize_by(store: store).tap do |inventory| | |
inventory.assign_attributes(date: Time.zone.now.to_date) | |
inventory.items = count_items(inventory) # Updates which items are associated, does not cascade save to them | |
inventory.save! | |
end | |
end | |
def count_items(inventory) |