Skip to content

Instantly share code, notes, and snippets.

View peterhellberg's full-sized avatar
💙
Coding Go

Peter Hellberg peterhellberg

💙
Coding Go
View GitHub Profile
@peterhellberg
peterhellberg / textarea.rb
Created February 27, 2012 15:18
Simple redirect in Sinatra
require 'sinatra'
require 'uri'
helpers do
include Rack::Utils
end
get '/' do
<<HTML
<form action="/" method="post">
@peterhellberg
peterhellberg / 01_echo_data.rb
Created February 27, 2012 15:42
Echo posted JSON
require 'sinatra'
require 'json'
post '/' do
JSON.parse(params[:data]).inspect
end
@peterhellberg
peterhellberg / test_blog_posts.rb
Created March 8, 2012 16:21
Check if all the old blog posts has been transferred to athega.se
require "net/http"
remote_cmd = 'cat /tmp/2012-03-05-blogg.athega.se.sql | grep -E "^20../"'
slugs = `ssh athega.se #{remote_cmd}`.split("\n")
req = Net::HTTP.new('athega.se', 80)
slugs.each do |slug|
response = req.request_head("/blogg/#{slug}")
puts (response.code != "200") ? "Missing: #{slug}" : "OK: #{slug}"
@peterhellberg
peterhellberg / yajl_weirdness_spec.rb
Created March 14, 2012 15:52
Some (maybe) unexpected return values from yajl-ruby (0.8.3)
require 'yajl'
require 'minitest/spec'
require 'minitest/autorun'
describe Yajl do
def parse(*args)
Yajl::Parser.parse(*args)
end
@peterhellberg
peterhellberg / gfm.rb
Created March 18, 2012 17:51
GitHub Flavored Markdown parser for use with Jekyll and Marked.app
#!/usr/bin/env ruby
require 'rubygems'
require 'redcarpet'
require 'pygments.rb'
class HTMLwithPygments < Redcarpet::Render::HTML
def block_code(code, language)
Pygments.highlight(code, :lexer => language.to_sym, :options => {
:encoding => 'utf-8'
})
@peterhellberg
peterhellberg / multi_value.rb
Created March 18, 2012 20:30
Support for multiple return values in Ruby 1.9, the way Common Lisp does it… sort of
class MultiValue < BasicObject
attr_reader :secondary
def initialize(obj, *secondary)
@obj, @secondary = obj, secondary
end
def method_missing(sym, *args, &block)
@obj.__send__(sym, *args, &block)
end
@peterhellberg
peterhellberg / jquery-querystring.js
Created April 5, 2012 09:19
Using jQuery to get query string values
(function($) {
$.QueryString = (function(a) {
if (a == "") return {};
var b = {};
for (var i = 0; i < a.length; ++i)
{
var p=a[i].split('=');
if (p.length != 2) continue;
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
}
@peterhellberg
peterhellberg / Gemfile
Created April 10, 2012 11:51
Sinatra acceptance testing, using minitest/spec and capybara-webkit
source :rubygems
gem "sinatra", "~> 1.3.2"
group :test do
gem "minitest", "~> 2.10"
gem "rack-test", "~> 0.6.1"
gem "capybara", "~> 1.1"
gem "capybara-webkit", "~> 0.11"
gem "capybara_minitest_spec", "~> 0.2"
@peterhellberg
peterhellberg / week_number.rb
Created April 13, 2012 13:43
Testing the WeekNumber class
# encoding: utf-8
class WeekNumber
attr_reader :cweek, :year
def initialize(cweek = Date.today.cweek, year = Date.today.year)
@year = year.to_i
@cweek = cweek.to_i
if @cweek > WeekNumber.weeks_in(@year)
@peterhellberg
peterhellberg / image_dimensions.rb
Created May 3, 2012 13:43
Check image dimensions using the Dimensions gem.
require 'json'
class ImageDimensions < Sinatra::Base
get "/" do
'API: GET /[ur_product_id].json'
end
get /(\d{6})\.json/ do |ur_product_id|
content_type :json
data = { exists: false }