Skip to content

Instantly share code, notes, and snippets.

View kwstannard's full-sized avatar

Wolf kwstannard

  • Andros
  • New York City
View GitHub Profile
@kwstannard
kwstannard / .pryrc
Created August 13, 2014 20:33
automatically add lib dir to ruby load path
file=Pathname.new(Dir.pwd+'/lib')
if(file.exist?)
$:.unshift(file.to_s)
end
@kwstannard
kwstannard / foo.rb
Created August 18, 2014 22:02
squiggly all your versions
gemfile=File.read("Gemfile")
unversioned = gemfile.scan(/(?<!#)\s+(gem|custom_require) ['"]([\w-]+)['"](?!,.*(\d+\.\d+\.\d+))/)
lockfile = File.read("Gemfile.lock")
puts unversioned.inspect
unversioned.each do |lead, name|
version = lockfile.scan(/#{name} \(((\d+\.?)+)\)/).first.first
gemfile.gsub! /#{lead} ['"]#{name}['"]/, "\\0, '~> #{version}'"
@kwstannard
kwstannard / module_spec.rb
Created September 15, 2014 17:31
Module Testing without coupling
RSpec.describe YourModule do
let(:includer) { Class.new.include(described_class).new }
describe "#hello_world" do
it "returns Hello World" do
expect(includer.hello_world).
to eq("Hello World")
end
end
end
@kwstannard
kwstannard / factories.rb
Created September 15, 2014 17:33
Drying Factories
require 'spec_helper'
RSpec.describe YourRecord do
subject(:record) { create :your_record, *traits }
let(:traits) { [] }
its(:name) { is_expected.to be_nil }
its(:size) { is_expected.to eq(0) }
context "when name is bob" do
@kwstannard
kwstannard / foo.bash
Created September 23, 2014 21:05
pro bash rename
find ./ -name rollout_ui | sed 's/\(.*\)/\1\/ \1/' | sed 's/rollout_ui$/lk_rollout_ui/' | xargs -n2 git mv
@kwstannard
kwstannard / ruby.rb
Last active August 29, 2015 14:06
auto disable failing features if they break
#pseudo code
class Rollout
def auto_disable(feature, user, feature_block, old_block)
if active?(feature, user)
begin
yield feature_block
rescue => e
deactivate(feature)
raise e
class UserFinder
def self.find(id)
record = User.find(id)
"#{record.user_type}User".constantize.new(record)
end
end
class User < ActiveRecord::Base
end
class SemiOpenStruct
def initialize(hash={})
@hash = hash
end
def method_missing(method,*args,&block)
@hash[method] ||
__try_hash_setter(method,*args,&block) ||
super
end
@test "tmux is installed and in the path" {
which vim
which derp
}
Uploading /tmp/busser/suites/bats/vim_stuff.rb (mode=0644)
-----> Running bats test suite
0 tests, 0 failures
Finished verifying <default-ubuntu-1204> (0m1.05s).
[4] pry(main)> mod = Module.new
=> #<Module:0x007fa1ac93c650>
[5] pry(main)> mod::Foo = Class.new
=> #<Class:0x007fa1ae5ad7f8>
[6] pry(main)> mod::Foo
=> #<Class:0x007fa1ae5ad7f8>
[7] pry(main)> mod::Foo.parent
=> Object