Skip to content

Instantly share code, notes, and snippets.

View webmat's full-sized avatar

Mathieu Martin webmat

View GitHub Profile
class String
# Return everything after the given string
# or nil if the substring can't be found
def after(prefix)
match = self.match Regexp.new(Regexp.escape(prefix) + "(.*)")
match && match[1]
end
end
dir = "/Users/mat/Desktop/wordpress-1"
# Our deployment tags are s or p followed by YYmmdd-HHMMSS
namespace :deploy do
namespace :pending do
desc "Show the list of new migrations since the last deployments to staging and production"
task :migrations do
tags = run_locally("git tag").split
staging = tags.grep(/\As\d{6}-\d{6}\Z/).sort.last
production = tags.grep(/\Ap\d{6}-\d{6}\Z/).sort.last
%w(staging production).each do |stage|
puts '', stage
# In .irbrc
# then when you want to play with generating urls from the console,
# just call make_urls and you're set.
def make_urls
self.class.class_eval do
include ActionController::UrlWriter
mattr_accessor :default_url_options
end
self.class.default_url_options = {
# Neater Github gem dependencies for Rails
module GithubGem
def github_gem(gem_name, opts={})
lib_name = gem_name.split('-', 2)[1]
self.gem gem_name, {:lib => lib_name, :source => 'http://gems.github.com'}.merge(opts)
end
end
Rails::Initializer.run do |config|
Rails CMS alternatives
======================
Active projects:
---------------
adva-cms
repo: http://github.com/svenfuchs/adva_cms/
site: http://adva-cms.org/
Last update: 11/24/09
"the cutting edge Rails CMS platform"
# In my test_helper
def self.should_have_valid_test_data
klass = self.name[/^(.*)Test$/, 1].constantize
test "#{klass.name} should have valid fixtures" do
invalids = klass.all.reject{|m|m.valid?}
message = "Expected all #{klass.name} fixtures to be valid.\nInvalids:\n#{
invalids.map{|m| [m.errors.full_messages, m]}.pretty_inspect}"
assert_block(message) { invalids.empty? }
require 'rubygems'
require 'sinatra'
require 'activerecord'
#db settings
ActiveRecord::Base.establish_connection(
:adapter => '',
:encoding => '',
:database => '',
:username => '',
# Why even the simple validations for ActiveRecord must also be tested.
# Can you spot the error?
validates_numericality_of :discount, :allow_nil => false,
:greater_than_or_equal => 0,
:less_than_or_equal_to => 100,
:if => :published?
@webmat
webmat / backbone-monkey-patch.js
Created May 4, 2011 15:30
Getting pagination information from headers with Backbone
// Get the pagination information from the response headers
// Wrap Backbone.sync to save the pagination header on the response object.
Backbone.sync_with_pagination = function(method, model, success, error) {
var success_with_pagination = function(resp, status, xhr) {
resp.next_page = xhr.getResponseHeader('X-Next-Page');
return success(resp);
}
return Backbone.sync_without_pagination(method, model, success_with_pagination, error);
};
@webmat
webmat / 0_instructions.txt
Created May 16, 2011 20:33 — forked from eric1234/0_instructions.txt
Using Sprockets 2 in Rails 3.0.x with CoffeeScript & SASS
Some brief instructions on how to use Sprocket 2 in Rails to get CoffeeScript
powered JS and SASS powered CSS with YUI compression all via the magic of rack.
This stuff will be native in Rails 3.1 and the layout of the files on the
filesystem will be different but this guide will get you working with it
while we wait for all that to finalize.
Ignore the number prefixes on each file. This is just to ensure proper order in the Gist.