Skip to content

Instantly share code, notes, and snippets.

View semipermeable's full-sized avatar

Jay Moorthi semipermeable

View GitHub Profile
@semipermeable
semipermeable / cucumber.yml
Created December 1, 2011 20:22
cucumber.yml with --require features
<%
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
std_opts = "--require features --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
%>
default: <%= std_opts %> features
wip: --tags @wip:3 --wip features
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
autotest: <%= std_opts %> --color
@semipermeable
semipermeable / capybara.rb
Created November 10, 2011 19:21
Tddium Capybara Server Port
# spec/support/capybara.rb
Capybara.server_port = 54321 + ENV.fetch('TDDIUM_TID', 0).to_i
@semipermeable
semipermeable / carrierwave.rb
Created October 31, 2011 19:19
Tddium CarrierWave configuration
# config/initializers/carrierwave.rb
CarrierWave.configure do |config|
if Rails.env.production?
# production setup stuff
elsif Rails.env.test?
if ENV['TDDIUM']
config.storage = :file
config.root = Dir.tmpdir
config.cache_dir = "carrierwave"
else
@semipermeable
semipermeable / km.rb
Created October 25, 2011 17:17
Kissmetrics Tddium Initializer
# config/initializers/km.rb
require 'tmpdir'
KM.init(YOUR_API_KEY, :log_dir => File.join(Dir.tmpdir, "km_log"))
@semipermeable
semipermeable / test.rb
Created October 25, 2011 16:49
Rails FileStore cache initializer for Tddium
# config/environments/test.rb
require 'tmpdir'
config.cache_store = :file_store, File.join(Dir.tmpdir, "rails_cache") if ENV['TDDIUM']
@semipermeable
semipermeable / omniauth.rb
Created October 25, 2011 16:47
Tddium Omniauth Initializer
# config/initializers/omniauth.rb
require 'openid/store/filesystem'
use OmniAuth::Strategies::OpenID, OpenID::Store::Filesystem.new(Dir.tmpdir)
@semipermeable
semipermeable / web_steps.rb
Created October 17, 2011 22:27
Replacement "When I select" step for old capybara and new selenium-webdriver
# features/step_definitions/web_steps.rb
# This replacement step works around an incompatibility between capybara-0.3.9 (or thereabouts) and selenium-webdriver >=2.5.0.
When /^(?:|I )select "([^"]*)" from "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
with_scope(selector) do
# See https://github.com/jnicklas/capybara/issues/88
# page.find_by_id(field).select(value)
if Capybara.current_session.mode == :selenium
select_node = page.find_by_id(field)
@semipermeable
semipermeable / selenium_patch.rb
Created October 17, 2011 22:22
Monkeypatch to fix a race in Selenium-Webdriver
# features/support/selenium_patch.rb
# This patch attempts to fix a race condition in the selenium web driver
# Reference: https://code.google.com/p/selenium/issues/detail?id=2099
class Capybara::Selenium::Driver
def find(selector)
begin
browser.find_elements(:xpath, selector).map { |node| Capybara::Selenium::Node.new(self, node) }
rescue Selenium::WebDriver::Error::UnhandledError
@semipermeable
semipermeable / tddium.yml
Created October 12, 2011 15:51
tddium.yml to disable mysql and use sqlite
# config/tddium.yml
:tddium:
:sqlite: true
:mysql: false
:mysqlsuper: false
@semipermeable
semipermeable / tddium.yml
Created September 10, 2011 20:58
pgsuper tddium.yml config
#config/tddium.yml
:tddium:
:pgsuper: true