Skip to content

Instantly share code, notes, and snippets.

@shageman
shageman / the_class_that_is_true_but_never_in_the_same_way.rb
Created March 9, 2012 06:39
Why a question mark method should return the true object or the false object
require 'rspec/core'
class TheClassThatIsTrueButNeverInTheSameWay
def initialize(truthiness)
@truthiness = truthiness
end
def truthy?
@truthiness ? Time.now : false
end
@shageman
shageman / object_creation_methods.rb
Last active October 6, 2015 23:38
ObjectCreationMethods a la Jeff Dean
#lives in spec/support/object_creation_methods.rb
# Source: https://pivotallabs.com/users/jdean/blog/articles/1900-rolling-your-own-object-creation-methods-for-specs
module ObjectCreationMethods
def new_post(overrides = {})
defaults = {:title => "Some title #{counter}"}
Post.new { |post| apply(post, defaults, overrides) }
end
@shageman
shageman / application.js
Created September 1, 2012 22:25
Rails environment indicator
<% if Rails.env != 'production' %>
document.addEventListener("DOMContentLoaded", function() {
$('body').append($('<div>').css({
display: 'block',
position: 'fixed',
left: '20px',
top: '500px',
'-webkit-transform': 'rotate(-90deg)',
'-moz-transform': 'rotate(-90deg)',
'-o-transform': 'rotate(-90deg)',
@shageman
shageman / extract_persistence.sh
Last active December 2, 2015 16:00
Extraction of persistence engine out of ticketee sample app
#!/bin/bash --login
ensure() {
"$@" || exit 1
}
cd r4ia_examples/ticketee;
git checkout . && git clean -fd
@shageman
shageman / bar.rake
Created February 8, 2012 02:08
Testing rake tasks
File: lib/tasks/bar.rake
class BarOutput
def self.banner text
puts '*' * 60
puts " #{text}"
puts '*' * 60
end
def self.puts string
puts string
#Sort the Ruby files in your project by LOC
find . -iname "*.rb" -type f -exec wc -l {} \; | sort -rn
#Count the lines of Ruby code in your app
find . -iname "*.rb" -type f -exec cat {} \; | wc -l
#Sort the Ruby files in your project by number of has_many
ack " has_many " -c | awk -F ":" '{print $2,$1}' | grep -v "0" | sort -rn

graph TD; A-->B; A-->C; B-->D; C-->D;

require "window_management"
require "sleep_management"
hs.loadSpoon("SpoonInstall")
spoon.SpoonInstall:andUse("CircleClock")
-- spoon.SpoonInstall:andUse("ClipboardTool",
-- {
-- config = { show_in_menubar = false, },
-- hotkeys = { toggle_clipboard = { { "cmd", "shift" }, "v" } },