Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am ajvargo on github.
  • I am vargo (https://keybase.io/vargo) on keybase.
  • I have a public key whose fingerprint is 203A 9F1A 8BA1 CAE1 CF11 1E02 ABFB B502 A5F5 B641

To claim this, I am signing this object:

@ajvargo
ajvargo / pre-push
Last active August 29, 2015 14:16
My version of protecting against a force push
#!/usr/bin/env bash
# Prevents force-pushing to certain branches w.o confirmation
# install to <repo>/.git/hooks/
# chmod +x
protected_branches="^(master|production)"
current_branch=`git rev-parse --abbrev-ref HEAD`
push_command=`ps -ocommand= -p $PPID`
force_push="force|delete|-f"
@ajvargo
ajvargo / loan_payment.rb
Created November 10, 2014 21:48
Calculate payments for getting paid off in a certain time
#!/usr/bin/env ruby
require 'date'
class Repayment
MONTHLY_INTEREST = (<INTEREST (5.00)> / 12 / 100)
def initialize(payment, principal)
@payment, @principal = payment, principal
end
@ajvargo
ajvargo / line_formatter.rb
Last active August 29, 2015 14:02
A simple RSpec formatter to give you the example file and line, along with a description and status.
require 'rspec/core/formatters/base_text_formatter'
# RSpec 2
# rspec --require <path_to>/line_formatter.rb --format LineFormatter spec/
# ./spec/lib/a_spec.rb:39
# Success Thing#with_thing does thing
#
# ./spec/lib/a_spec.rb:45
# pending Thing#does_other_thing is pending
@ajvargo
ajvargo / gist:447e8e03518a3bdc75c5
Last active August 29, 2015 14:01
Get a summary and ticket number from Jira, based on branch name
;; elisp
(setq jira-base-url "<JIRA BASE URL>"
jira-request-url (concat "https://" jira-base-url "/rest/api/latest/issue/")
jira-username "<USERNAME>"
jira-password "<PASSWORD>"
jira-credentials (base64-encode-string (concat jira-username ":" jira-password))
;; this is a regex to trim things off the branch name
;; as is, removes: dev-, rel-, av-, dev/, rel/, av/
jira-branch-trim-regex "^\\(dev\\|rel\\|\\av\\)\\(-\\|/\\)"
jira-auth-key (concat jira-base-url ":443"))
@ajvargo
ajvargo / payment_calculator.rb
Created March 31, 2014 20:31
Calculate monthly payments to be done in N months
#!/usr/bin/env ruby
# This prints a table showing how much a monthly payment
# would need to be to pay off a loan. It takes a max and
# min loan amount, and how much to jump between them. I
# use it to dream about paying off student loans. It allows
# me to see what my 1 year pay-off payments are as the loan
# gets paid back.
class PaymentCalculator
@ajvargo
ajvargo / ar_attributes_with_associations.rb
Created February 25, 2014 16:49
Add in association attributes to model attributes.
# Based on http://stackoverflow.com/questions/2299139/retrieve-all-associations-attributes-of-an-ar-model
# Doesn't spelunk, doesn't name associations for easy consumption back. Good first go though.
# It gives the object attributes with the attributes of first cousin associations.
class ActiveRecord::Base
def attributes_with_associations
association_names = self.class.reflect_on_all_associations.collect { |r| r.name }
me = self.class.find self.id, :include => association_names
pairs = association_names.collect do |association_name|
@ajvargo
ajvargo / gist:6442681
Created September 4, 2013 20:49
Work git config
[user]
name = Andrew J Vargo
email = xxx@xxxxx.com
[alias]
co = checkout
w = whatchanged
br = branch
lo = log --oneline --decorate
ss = status -sb
last = log -n 1
@ajvargo
ajvargo / input_example.el
Created January 20, 2013 03:56
An example of getting user input for an Elisp function with a default value divined from context.
(defun input-example (text)
"Gets user input and prints it back. Defaults to word at point"
(interactive
(list
(read-string
(format "Text (%s): " (word-at-point)) ; prompt. It's nice to show the default value
nil ; initial input. This value is prefilled in the mini-buffer. Available but considered deprecated.
nil ; history list if you have a specific one for this
(word-at-point) ; Whatever this evaluates to will be the default value
)))
@ajvargo
ajvargo / playlister.rb
Created August 24, 2012 15:26
Generate a randomly sorted m3u playlist
Dir.chdir '/Users/avargo/Music' do
File.open('../Downloads/all_random.m3u', 'w+') do |file|
Dir.glob('**/*.{mp3,ogg,wav}').shuffle.each do |song|
next if File.directory?(file)
file.write File.join(Dir.pwd, song, "\n")
end
end
end