Skip to content

Instantly share code, notes, and snippets.

View nthj's full-sized avatar

Nathaniel Jones nthj

  • Orlando, FL
View GitHub Profile
@nthj
nthj / add_two_numbers.go
Created March 15, 2022 00:13
Add Two Numbers
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
* Runtime: 8 ms, faster than 88.19% of Go online submissions for Add Two Numbers.
* Memory Usage: 4.3 MB, less than 100.00% of Go online submissions for Add Two Numbers.
*/
var one = ListNode{ Val: 1 }
# setup
RAILS_VERSION="5.1.1"
gem install rails -v $RAILS_VERSION && \
rails _${RAILS_VERSION}_ new rails-${RAILS_VERSION}-test && \
cd rails-${RAILS_VERSION}-test && \
rails generate model User && \
rails db:migrate && \
echo 'class User < ActiveRecord::Base; FOO = where(id: [1]); end' > app/models/user.rb && \
echo 'Rails.application.routes.draw { User }' > config/routes.rb
-- user_workspaces_v01
-- Pull Organizations and Workspaces affiliated with,
-- and also organizations we have projects we are collaborating on
-- first version :: ugly and super slow, see updated version next
WITH user_workspaces AS (
SELECT a.user_id,
o.name
FROM user_affiliations a
@nthj
nthj / calculator_dsl.rb
Created November 17, 2015 17:11
DSL for calculating various fees on an eCommerce purchase. Developed for @Ticketbud. Not our actual equation, but an example of how you could use it...
# ASSUMPTIONS
# Assumes we respond_to #fee_schedule, which has various details,
# like processor_rate, merchant_custom_handling_fee, or the like.
module CalculatorDSL
extend ActiveSupport::Concern
included do
singleton_class.send :alias_method, :method_missing, :define_method
end
@nthj
nthj / example.rb
Last active October 14, 2016 19:32
Methods I like to monkey-patch onto the Object class in Ruby
# Say you want to look up the attrs of a Stripe Event for logging to your internal database.
attrs = begin
retriable(Stripe::APIConnectionError, Stripe::APIError, max: 25) do
# ... retrieve attrs from the Stripe event here...
end
rescue Stripe::APIConnectionError, Stripe::APIError
# We're inside an SQS queue block
throw :skip_delete # we'll just have to wait on this event, come back later
rescue Stripe::Error
notify $!
@nthj
nthj / exceptionable.rb
Created October 21, 2015 01:49
Fun shorthand for raising exceptions from Rails callbacks
class StandardError
# Accountant::CannotDestroyFinancialData = Class.new(Exception)
# before_destroy(&Accountant::CannotDestroyFinancialData)
def self.to_proc
e = self; -> { raise e }
end
end
@nthj
nthj / extension.scss
Created August 20, 2014 17:31
Font Awesome Awesomeness
// multi-ticket icon
.fa-tickets {
&:after, &:before {
content: "\f145";
}
&:after {
margin-left: -12px;
opacity: 0.7;
}
@nthj
nthj / 01_person.rb
Created May 28, 2014 02:30
Mild refactoring of an example from "Rails Does Not Define Your Application Architecture" | http://www.naildrivin5.com/blog/2014/05/27/rails-does-not-define-your-application-architecture.html
class Person < ActiveRecord::Base
end
@nthj
nthj / post-checkout
Created May 23, 2014 15:03
Automatically create a new database for each of your development branches
#!/bin/bash
set -e
printf '\npost-checkout hook\n\n'
if [[ $3 == 1 ]]; then
echo "Creating `git name-rev --name-only $2`"
createdb "ticketbud_`git name-rev --name-only $2`_development"
@nthj
nthj / config.ru
Created February 26, 2014 23:22
unicorn
# This file is used by Rack-based servers to start the application.
$stdout.sync = true
require 'unicorn/worker_killer'
##
## Maximum Requests
##