Skip to content

Instantly share code, notes, and snippets.

View nruth's full-sized avatar

Nicholas Rutherford nruth

View GitHub Profile
@nruth
nruth / example_test.erl
Created December 2, 2010 23:48
basic test spy for plain Erlang, now promoted to a full repo @ https://github.com/nruth/nspy
-module (auctioneer_tests).
-include_lib("eunit/include/eunit.hrl").
check_auctioneer_announces_item_to_room_test() ->
AuctionRoom = nspy:new(),
Auctioneer = auctioneer:start("Penguin", 20, AuctionRoom),
timer:sleep(1000),
Auctioneer ! stop,
ExpectedMessage = {starting_auction, {lot, 1, 20, "Penguin"}, "Next up lot 1, a fine Penguin, starting at 20\n"},
nspy:assert_message_received(AuctionRoom, ExpectedMessage).
#as seen in https://github.com/mooktakim/heroku_deployment
class AppTemplatesController < ApplicationController
def app
render :inline => "SUCCESS", :layout => 'master'
end
def cms
render :inline => "SUCCESS", :layout => 'cms_admin'
end
end
@nruth
nruth / gist:968289
Created May 12, 2011 10:23
controller spec describing rails log contents
describe "logger" do
before(:each) do
@old_flush = controller.logger.auto_flushing
@old_level = controller.logger.level
controller.logger.auto_flushing=0
controller.logger.level = ActiveSupport::BufferedLogger::Severity::ERROR
end
it "logs an error" do
#would prefer to test this with a test-spy / mock expectations but there's a lot of level-0 logging noise to ignore, so went with reading the log itself
@nruth
nruth / cached_pages_do_not_render_flash_spec.rb
Created August 29, 2011 13:23
Introduce flash messages (notice/alert/error) to the session then hit a path and assert it does (not) render the flash messages; capybara/rspec2/rails3.0
#assumes use of capybara for request specs
require 'spec_helper'
describe "StaticPages" do
class FlashController < ApplicationController
def set_flash
flash[:notice] = params[:message]
flash[:error] = params[:message]
flash[:alert] = params[:message]
@nruth
nruth / gist:1193290
Created September 4, 2011 18:37
a few cucumber/rspec test steps for rails static page caching
Then /^a static page cache file for #{capture_model} should not exist$/ do |pickle_ref|
page = model!(pickle_ref)
page_cache_exist?(page).should be_false
end
Then /^a static page cache file for #{capture_model} should exist$/ do |pickle_ref|
page = model!(pickle_ref)
page_cache_exist?(page).should be_true
end
@nruth
nruth / rb_c_xor_file_contents_extension.rb
Created September 28, 2011 10:33
RubyInline C experimentation
# run with Piece.xor_files 'output_filepath', ['infilepath1','infilepath2']
require 'inline'
Class Piece
inline do |builder|
builder.include '<stdlib.h>'
builder.include '<stdio.h>'
builder.c_singleton <<-C_CODE
/*
rb_input_paths_array should be a ruby array of strings,
@nruth
nruth / gist:1377390
Created November 18, 2011 18:54
A poem about OTP
Old tired programmers() ->
obviously trusted prolog,
others tried perl.
Oft they pondered() ->
of teams problems,
of telcos pains.
Onward they plodded() ->
obscure to programmers,
@nruth
nruth / Makefile
Created April 9, 2012 14:24
gecode gcc makefile
all: send-more-money donald
# use git clean -f for make clean, but confirm action
define gitCLEAN
puts 'ARE YOU SURE (git clean -f) ? y/n'; \
puts %x(git clean -n); \
exec('git clean -f') if gets.chomp =~ /^y/i
endef
clean:
@nruth
nruth / Sitemap.rb
Last active December 12, 2015 03:19
basic rails sitemap generator
# -*- encoding : utf-8 -*-
class Sitemap
def self.static_view_templates
require 'fileutils'
template_paths = []
FileUtils.cd Rails.root.join 'app', 'views', 'static_pages' do
erb_html_files = File.join "**", "*.html.erb"
template_paths = Dir.glob(erb_html_files)
end
remove_html_erb!(template_paths)
@nruth
nruth / routes.rb
Last active December 12, 2015 03:19
simple rails static page renderer
# last entry:
#static page routes
get '/home' => redirect('/')
root :to => 'static_pages#home'
get '*page', :to => 'static_pages#show', :constraints => {:page => %r{[\w\-\/]+}}