Skip to content

Instantly share code, notes, and snippets.

# No Boom, it was creating the handle first... cause app Boom
# This does however, as you say, "Boom"
Factory.define :product do |p|
p.product_handles do |p|
[Factory.build(:product_handle)]
end
end
# Only issue here is that the product has knowledge of the handle... knowledge it need not have.
# Example Rails Usage:
# config.middleware.use Rack::LessCss, "/stylesheets", File.join(RAILS_ROOT, "public", "stylesheets")
#
# public/stylesheets/foo.less is now used to render /stylesheets/foo.css
#
require 'less'
module Rack
class LessCss
File = ::File
def initialize(app, css_path, css_dir)
class BaseColor
attr_reader :r,:g,:b,:a
def alpha(v)
BaseColor.new(r,g,b,v)
end
def initialize(r, g, b, a = 1.0)
@r, @g, @b, @a = normalize(r), normalize(g), normalize(b), normalize(a, 1.0)
end
require "json"
require "httpclient"
# Usage:
# reevoo_hq = LongLat.from_postcode("SE1 0RF")
# reevoo_hq.long # => -0.10276
# reevoo_hq.lat # => 51.500991
class LongLat
PostcodeLookupError = Class.new(RuntimeError)
class PerRequestCache #THIS IS TOTALLY NOT THREAD SAFE!!!!!!!
class << self
def open_the_cache
@cache = {}
end
def clear_the_cache
@cache = nil
end
@tomlea
tomlea / jsmin.rb
Created October 2, 2009 23:49
Middleware to JSMin Dynamic Javascript.
class Rack::Jsmin
def initialize(app)
@app = app
end
def call(env)
response, headers, body = @app.call(env)
if response == 200 and not env["rack.jsmin.ignore"] and headers["Content-Type"].starts_with? "text/javascript"
payload = ""
body.each{|part| payload << part}
class Rack::ProcTitle
F = ::File
PROGNAME = F.basename($0)
def initialize(app)
@app = app
@appname = Dir.pwd.split('/').reverse.
find { |name| name !~ /^(\d+|current|releases)$/ } || PROGNAME
@requests = 0
$0 = "#{PROGNAME} [#{@appname}] init ..."
@tomlea
tomlea / proxy.rb
Created October 11, 2009 21:11
Rack Middleware to proxy requests to a remote server. This is usefull for proxying AJAX request to remote services.
require "net/http"
require "enumerator"
# Example Usage:
#
# use Rack::Proxy do |req|
# if req.path =~ %r{^/remote/service.php$}
# URI.parse("http://remote-service-provider.com/service-end-point.php?#{req.query}")
# end
# end
@tomlea
tomlea / gist:207938
Created October 11, 2009 22:55
This is very rough and ready.
require "net/http"
# Example Usage:
#
# use Rack::Proxy do |req|
# if req.path =~ %r{^/remote/service.php$}
# URI.parse("http://remote-service-provider.com/service-end-point.php?#{req.query}")
# end
# end
#
height = 10
base = [height / 6, 8].max
width = lambda{|r| r * 2 - 1}
to_center = lambda{|s| s.center([height, base].map(&width).max)}
to_stars = '*'.method(:*)
tree = lambda{|v| v.map(&width).map(&to_stars) }
puts (
tree[1..height] +
tree[[2]*3] +