Skip to content

Instantly share code, notes, and snippets.

Stephen Caudill voxdolo

View GitHub Profile
@voxdolo
voxdolo / cancan_exposure.rb
Created Mar 28, 2011
A default exposure for decent_exposure that assigns instance variables (to make cancan happy)
View cancan_exposure.rb
default_exposure do |name|
collection = name.to_s.pluralize
if respond_to?(collection) && collection != name.to_s && send(collection).respond_to?(:scoped)
proxy = send(collection)
else
proxy = name.to_s.classify.constantize
end
instance_variable_set("@#{name}") = if id = params["#{name}_id"] || params[:id]
proxy.find(id).tap do |r|
@voxdolo
voxdolo / _session_output.irb
Created Jan 20, 2011
Confusing Mongoid output - full source from examples below at: https://github.com/voxdolo/ding/tree/mongoid_fabrication
View _session_output.irb
ruby-1.9.2-p0 :026 > s = Session.create
=> #<Session _id: 4d3845f0c1037b05f3000005, created_at: 2011-01-20 14:25:52 UTC, updated_at: 2011-01-20 14:25:52 UTC, name: "aa", custom: nil>
ruby-1.9.2-p0 :027 > s.timers << Pomodoro.new
=> [#<Pomodoro _id: 4d384601c1037b05f3000006, created_at: 2011-01-20 14:26:09 UTC, updated_at: 2011-01-20 14:26:09 UTC, duration: 1500>]
ruby-1.9.2-p0 :028 > s.timers.count
=> 1
ruby-1.9.2-p0 :029 > s.reload
=> #<Session _id: 4d3845f0c1037b05f3000005, created_at: 2011-01-20 14:25:52 UTC, updated_at: 2011-01-20 14:25:52 UTC, name: "aa", custom: nil>
ruby-1.9.2-p0 :030 > s.pomodoros.count
=> 0
@voxdolo
voxdolo / btelles-master-rspec-output.txt
Created Dec 3, 2010
RSpec run output. Rubies: 1.8.7p302 and 1.9.2-p0.
View btelles-master-rspec-output.txt
(in /Users/voxdolo/dev/decent_exposure)
DecentExposure classes extending DecentExposure
- should respond to #expose
- should respond to #default_exposure
DecentExposure.expose
- creates a method with the given name
- prevents the method from being a callable action
- declares the method as a helper method
@voxdolo
voxdolo / error_message.sh
Created Oct 7, 2010
error after running rake cucumber. using ruby 1.9.2p0, rails 3, rspec 2.0.0rc
View error_message.sh
/Users/dev/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/minitest/unit.rb:566:in `block in process_args': invalid option:
--profile (OptionParser::InvalidOption)
from /Users/dev/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/minitest/unit.rb:545:in `new'
from /Users/dev/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/minitest/unit.rb:545:in `process_args'
from /Users/dev/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/minitest/unit.rb:576:in `run'
from /Users/dev/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/minitest/unit.rb:492:in `block in autorun'
(in /Users/dev/hashrocket/heatusa)
View things_controller.rb
class ThingsController < ApplicationController
respond_to :html, :json
# decent_exposure won't currently intuit a collection (plural resource) for you. The SLTD error is
# caused by a circular reference between an undeclared collection (which the singular resource attempts
# to scope from) and the singular resource. To fix this problem, just define the collection:
expose(:things) { Thing.all }
# or alternatively, something like:
# expose(:things) { current_user.things }
expose(:thing)
@voxdolo
voxdolo / Gemfile
Created Sep 13, 2010
Neither does this terrible thing
View Gemfile
source 'http://rubygems.org'
gem 'bundler', '~> 1.0.0'
gem 'decent_exposure', '~> 1.0.0.rc1'
gem 'devise', '~> 1.1.2'
gem 'haml'
gem 'hassle', :git => 'git://github.com/Papipo/hassle.git'
gem 'pg'
gem 'rails', '3.0.0'
@voxdolo
voxdolo / Gemfile
Created Sep 13, 2010
This terrible thing does not work
View Gemfile
require File.join(File.dirname(__FILE__),'dev_gemfile')
source 'http://rubygems.org'
gem 'bundler', '~> 1.0.0'
gem 'decent_exposure', '~> 1.0.0.rc1'
gem 'devise', '~> 1.1.2'
gem 'haml'
gem 'hassle', :git => 'git://github.com/Papipo/hassle.git'
gem 'pg'
@voxdolo
voxdolo / Gemfile
Created Sep 13, 2010
This terrible thing works
View Gemfile
source 'http://rubygems.org'
gem 'bundler', '~> 1.0.0'
gem 'decent_exposure', '~> 1.0.0.rc1'
gem 'devise', '~> 1.1.2'
gem 'haml'
gem 'hassle', :git => 'git://github.com/Papipo/hassle.git'
gem 'pg'
gem 'rails', '3.0.0'
View gist:407082
def wait_conditionally_until
if page.driver.wait?
page.wait_until do
begin
yield
rescue Selenium::WebDriver::Error::WebDriverError => e
# do nothing - continue to wait for timeout
end
end
else
View have_option_matchers.rb
# usage:
# field_labeled('Select your address').should have_option("Home Address")
Spec::Matchers.define :have_option do |expected|
def options_for(select_field)
select_field.options.map(&:inner_text)
end
match do |select_field|
raise "Field is not a SelectField" unless select_field.kind_of?(Webrat::SelectField)
options_for(select_field).include?(expected)
You can’t perform that action at this time.