Skip to content

Instantly share code, notes, and snippets.

/**
* Based conceptually on the _.extend() function in underscore.js ( see http://documentcloud.github.com/underscore/#extend for more details )
* Copyright (C) 2012 Kurt Milam - http://xioup.com | Source: https://gist.github.com/1868955
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
**/
@wulftone
wulftone / user.json.rabl_spec.rb
Created February 27, 2012 23:31
Isolated Rabl Specs
# user.json.rabl_spec.rb
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', '..'))
$: << File.join(APP_ROOT, 'spec/support') # for my spec helpers
$: << File.join(APP_ROOT, 'config/initializers') # for rabl_init.rb
require 'my_spec_mocks'
require 'rabl'
require 'rabl_init'
# We need to fool rabl into thinking we are running rails.
# All rabl wants is the root path to help in finding templates.
@wulftone
wulftone / gist:1573449
Created January 7, 2012 01:49 — forked from mikegehard/gist:954537
Waiting until all jquery ajax calls are done
//Useful if you have a slow CI server...
When /^I wait until all Ajax requests are complete$/ do
wait_until do
page.evaluate_script('$.active') == 0
end
end
@wulftone
wulftone / description
Created January 4, 2012 02:05 — forked from irrationalidiot/description
Cucumber, rspec and spork setup using watchr for rails
Gems:
gem 'cucumber'
gem 'cucumber-rails'
gem 'rspec'
gem 'rspec-rails'
gem 'capybara'
gem 'database_cleaner'
gem 'spork'
gem 'watchr'
@wulftone
wulftone / backbone_base_view.js.coffee
Created December 24, 2011 01:46
Handy base class extensions for Backbone.View
# Credit goes to JonnyO from stackoverflow: http://stackoverflow.com/questions/7567404/backbone-js-repopulate-or-recreate-the-view/7607853
@BaseView = (options) ->
@bindings = []
Backbone.View.apply this, [ options ]
_.extend BaseView::, Backbone.View::,
# binds and keeps track of objects (models and collections) we want this view to respond to
bindTo: (model, event, callback) ->
model.bind event, callback, this
@wulftone
wulftone / view-manager-example.js.coffee
Created December 24, 2011 01:36
Creating a Backbone.js View Manager
((Account) ->
Account.Route.Registration = Backbone.Router.extend(
routes:
"": "index"
"!/choose": "choose"
initialize: (args) ->
if args.view_managers
_.each args.view_managers, ((view_manager, name) ->
this[name] = view_manager
@wulftone
wulftone / update-css-rule.coffee
Created December 20, 2011 19:46
Update a CSS Rule--(A Rule, as opposed to a CSS property of a rendered element)
# http://blog.hashtagify.me/2011/12/08/update-css-rules-with-5-lines-of-coffeescript/
# http://jsfiddle.net/danmaz74/C7dv4/1/
@updateCSS = (selector, styles) ->
for sheet in document.styleSheets
for rule in sheet.cssRules || sheet.rules || []
if rule.selectorText == selector
for style, value of styles
rule.style[style] = value
@wulftone
wulftone / db_reload.rake
Created November 2, 2011 01:21
Rake task for Rails: Completely reload test and dev databases
namespace :db do
desc 'Drop, create, migrate, and seed a database'
task :reload => :environment do
puts "Environment Check: Rails Environment = #{Rails.env}"
Rake::Task['db:drop'].reenable
Rake::Task['db:drop'].invoke
Rake::Task['db:create'].reenable
Rake::Task['db:create'].invoke
Rake::Task['db:migrate'].reenable if Rails.env.development?
Rake::Task['db:migrate'].invoke if Rails.env.development?
@wulftone
wulftone / template_block_example.rb
Created October 27, 2011 21:30
Make your own template block evaluator thing
# In a helper
def box(&block)
("<div class='box'>" + capture(&block) + "</div>").html_safe
end
# In your view template
#<%= box do %>
# <p>Hello World!</p>
#<% end %>
@wulftone
wulftone / random_string.rb
Created October 5, 2011 23:59
Generate a random string (extracted from WEBrick)
# extracted from the WEBrick::Utils module
RAND_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"
def random_string(len)
rand_max = RAND_CHARS.bytesize
ret = ""
len.times{ ret << RAND_CHARS[rand(rand_max)] }
ret
end