Skip to content

Instantly share code, notes, and snippets.

View bkeepers's full-sized avatar

Brandon Keepers bkeepers

View GitHub Profile
>> u = User.first
=> …
>> p = u.projects.first
=> …
>> p.name # Read from embedded doc
=> "MongoMapper"
>> p.description
=> "A Ruby Object Mapper for Mongo" # loads lazy attribute
@bkeepers
bkeepers / irb.rb
Created October 2, 2010 18:29
Idea for lazily loading attributes in MM
>> user = User..first
=> …
>> user.collaborators_loaded?
=> false
>> user.collaborators.size # <= loads all lazy fields
=> 30
>> user.collaborators_loaded?
=> true
>> user.time_zone_loaded?
=> true
trap :CLD do
puts "Reaped #{Process.wait}"
end
loop do
pid = fork { sleep 2 }
puts "Spawned #{pid}"
sleep 1
end
GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=)
Benchmark.bm(10) do |x|
x.report do
100.times do
100.times { fork {} }
Process.waitall
end
end
end
require 'selenium-webdriver'
class Capybara::Driver::Selenium < Capybara::Driver::Base
def self.driver
unless @driver
@driver = Selenium::WebDriver.for :chrome
at_exit do
@driver.quit
end
end
@driver
@bkeepers
bkeepers / be
Created September 3, 2010 16:46
Command to quickly open the source of a Bundler dependency in TextMate
#!/bin/sh
mate `bundle show $1`
@bkeepers
bkeepers / deploy.rb
Created August 30, 2010 16:01
Hack to get moonshine to work with Rails 2.3
task :install_as_rails_2_3 do
sudo "gem install activesupport --version=2.3.8 --no-rdoc --no-ri"
end
before 'ruby:install_moonshine_deps', 'install_as_rails_2_3'
=ERROR REPORT==== 25-Aug-2010::18:59:16 ===
** State machine <0.1857.0> terminating
** Last event in was {riak_vnode_req_v1,
1205132270528594874568590215453917455783181680640,
{fsm,undefined,<9962.5024.0>},
{riak_kv_get_req_v1,
{<<"moves">>,<<"9273">>},
111118152}}
** When State == active
** Data == {state,1205132270528594874568590215453917455783181680640,
@bkeepers
bkeepers / gist:480948
Created July 19, 2010 02:32
// hack to get which button was clicked
$('input[type=submit], button').live('click', function() {
$('<input type="hidden" class="button" />')
.attr({name:this.name, value:this.value || this.innerHTML})
.appendTo(this.form);
});
$('form').live('reset', function() {
$(this).find('input[type=hidden].button').remove();
});
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
# It is recommended to regenerate this file in the future when you upgrade to a
# newer version of cucumber-rails. Consider adding your own code to a new file
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
# files.
require 'uri'
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))