Skip to content

Instantly share code, notes, and snippets.

View andynu's full-sized avatar

Andrew Nutter-Upham andynu

View GitHub Profile
@andynu
andynu / emailmerge.rb
Created September 11, 2024 13:46
Email merge script in ruby
#!/usr/bin/env ruby
# Encoding: utf-8
#
# This takes a csv file of values, and a txt file as a template
# and sends out a pile of customized emails.
#
require 'csv'
require 'mail'
@andynu
andynu / ajax-frames.js
Created September 4, 2024 16:19
Ajax-frames - Like Turbo Frames (from rails), but you have to specify the target frame for every link.
/* global $ */
/**
* ajax-frames v1.1.0
* pre-requisites: jquery
* compatible with: rails-ujs
*
* Exports:
* - ajax_frames_init(container) - Automatically runs on document ready for the entire document.
* - load_ajax_frames_multi(url)
*
@andynu
andynu / llme.rb
Last active February 27, 2024 22:25
A little ollama client for pre-defined prompts.
#!/usr/bin/env ruby
require 'thor'
require 'uri'
require 'net/http'
require 'json'
# > llme joke
# Sure! Here's one:
#
@andynu
andynu / examples.md
Created February 1, 2024 16:50
Assorted rake tasks for orienting and evaluating the use of a rails app.

Overview:

rails stats:controllers  # Show basic controller usage stats
rails stats:models       # Show basic model usage stats
rails stats:trends       # show frequency trends for a date column; MODEL=x COLUMN=y
rails stats:unroutable   # Find routes that will raise a routing error when requested
rails stats:users        # Show basic details of users
@andynu
andynu / doc.rake
Created February 1, 2024 15:40
Run annotate and erd automatically when you db:migrate (rails)
namespace :doc do
desc 'generate yardoc docs in doc/app/index.html'
task :app do
`yard doc -o doc/app`
puts "see doc/app/index.html"
end
desc 'annotate models'
task :annotate do
run = ->(cmd){
@andynu
andynu / show_method_history.rb
Created August 26, 2022 18:56
Given a ruby file and method name shows you all the different versions across the git history.
#!/usr/bin/env ruby
# Given a file and method_name
# Show all the different implementations across the git history (first commit per implementation).
#
# show_method_history <file> <method_name> --html
#
# e.g. show_method_history test/test_helper.rb sign_in --html
#
# WARNING: the --html output just dumps html files into your current folder.
#
@andynu
andynu / gem-bisect
Last active August 17, 2022 06:36
Find the last version that passes the tests by doing a binary search through a range of versions
#!/usr/bin/env ruby
#
# Find the last version that passes the tests by doing
# a binary search through a range of versions
#
# Usage: gem-bisect <gem_name> [<from_version> [<to_version>]]
#
# Example
# ❯ gem-bisect rack-attack 6.3 6.6.1
# Checking versions 6.6.1, 6.5.0, 6.4.0, 6.3.1
#!/usr/bin/env ruby
require 'chronic'
require 'set'
if ARGV.empty?
ARGV.replace ['log/production.log']
end
# From facets gem
module Enumerable
# Add this to your config/initializers/ folder.
if Kernel.const_defined?('ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter')
ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_booleans = false
# Version 7.0.2 of activerecord-oracle_enhanced-adapter loads the types into
# a constant TYPE_MAP when the class is loaded
#
# This is so early in the process that there is no opertunity to change the
# default value of emulate_booleans, so that config is ineffective in that
@andynu
andynu / init.vim
Created June 10, 2022 19:02
A neo-vim config.
" .config/nvim/init.vim
" Plugins
call plug#begin(stdpath('config') . '/plugins')
Plug 'neovim/nvim-lspconfig'
Plug 'stevearc/aerial.nvim'
Plug 'tpope/vim-rails'
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-surround'