Skip to content

Instantly share code, notes, and snippets.

View jqr's full-sized avatar

Elijah Miller jqr

View GitHub Profile
Dave sucks... srsly.
@jqr
jqr / example.rb
Created August 22, 2008 18:21
Ruby String#to_json with support for html encoding and decoding
# When inserting Javascript in HTML there is a a problem with the
# </script> end tag.
#
# Standard Javascript escaping works fine for most strings, but the
# browser interprets </script> before Javascript is being parsed, so
# it needs to be HTML escaped while the browser is parsing, and then
# unescaped as Javascript parses it.
# Regular to_json
{ 'key' => '</script>' }.to_json
# How I might test this helper
module SomeHelper
def title(page_title)
content_for(:title) { page_title }
end
end
describe SomeHelper
include SomeHelper
# Untested, but it should work :)
class Something < ActiveRecord::Base
# Simpler approach available with this small Rails patch:
# http://rails.lighthouseapp.com/projects/8994/tickets/1773-allow-returning-nil-from-a-named_scope-lambda
#
# named_scope :with_town_like, lambda { |term|
# { :conditions => ['town LIKE ?', term] } unless term.blank?
# }
#
⌘Command, ⇧ Shift, ⌃ Control, ⌥ Option/Alt, ⎋ Escape, ↩ Enter/Return, ⌫ Backspace, ⇥ Tab
Help
⌘? Help
⌃⌘⌥B Bundle Docs/Editor
File
⌘S Save File
⌘W Close File
⌃⌘S Save Project
# http://facets.rubyforge.org/doc/api/core/classes/Array.html#M000145
require 'rubygems'
require 'facets'
class Array
def permutations(min = 0, max = size + 1)
variations = []
(min..max).each do |permutation_size|
permutation(permutation_size) do |permutation|
# Re: http://twitter.com/danielmorrison/status/1149336565
require 'rubygems'
require 'httparty'
require 'hpricot'
url = 'http://rubyonrails.org'
document = Hpricot.parse(HTTParty.get(url))
scrape = {
@jqr
jqr / gist:57524
Created February 3, 2009 13:30 — forked from anonymous/gist:57476
module ApplicationHelper
def self_url(options = {})
url_for(request.path_parameters.merge(options))
end
end
describe ApplicationHelper do
describe '#self_url' do
before(:each) do
# using params we can easily detect a reverse merge with
import os, re
class CachedFileSearch(object):
"""Cached File Search"""
def __init__(self, dir):
self.dir = dir
self.all_files = os.popen('find ' + dir).read()
self.clear_cache()