Skip to content

Instantly share code, notes, and snippets.

View rossta's full-sized avatar
💭
Being curious

Ross Kaffenberger rossta

💭
Being curious
View GitHub Profile
beforeEach(function() {
this.addMatchers({
toBeA: function(expected) { return this.env.equals_(this.actual, jasmine.any(expected)); }
});
});
#! /usr/bin/env ruby
raise "Argument to 'take' not specfied.\n\n\tUsage: take [dump]\n" if ARGV.length == 0
module Take
class BathroomClosedForCleaningError < RuntimeError; end
end
case ARGV[0].downcase
when 'dump'
remarks = []
@rossta
rossta / fake_socket_client.rb
Created December 25, 2010 05:26
eventmachine socket client mock
class FakeSocketClient < EventMachine::Connection
attr_writer :onopen, :onclose, :onmessage
attr_reader :data
def initialize
@state = :new
@data = []
end
@rossta
rossta / socket_spec.rb
Created December 26, 2010 15:00
Testing an eventmachine server socket connection
describe "opening a socket connection" do
it "should add players to game if available and respond READY" do
EM.run {
server = Server.new(:host => '0.0.0.0', :port => 12345)
server.start
# opens the socket client connection
socket = EM.connect('0.0.0.0', 12345, FakeSocketClient)
@rossta
rossta / em_run.rb
Created December 26, 2010 18:40
Starting and stopping the event loop
EM.run {
# our fantastic eventmachine code
}
@rossta
rossta / em_server.rb
Created December 27, 2010 04:32
running the eventmachine in my game server
class Server
def start
EM.run {
EM.start_server @host, @port, Client::Socket, :app => self do |players|
@players << player
player.send_data("READY\r\n")
end
@rossta
rossta / _autoescaped_partial.html.erb
Created February 25, 2011 23:42
Enable automatic html-escaping locally rather than by default.
<% autoescape do %>
<div>
<%= content_helper_gets_escaped %>
</div>
<% end %>
@rossta
rossta / unmasking_benchmark.rb
Created June 2, 2011 10:56 — forked from mloughran/unmasking_benchmark.rb
Making WebSocket unmasking fast in ruby
module EventMachine
module WebSocket
class MaskedString < String
def read_mask
raise "Too short" if bytesize < 4 # TODO - change
@masking_key = String.new(self[0..3])
end
@rossta
rossta / gist:1052211
Created June 28, 2011 21:10 — forked from noahd1/gist:1051970
Moneyball Rules

Changelog

v. 3.0.0

  • created, ignoring all previous incarnations of the rules, from draft of an email

v 3.0.1

  • Clarifications
@rossta
rossta / login_test.rb
Created September 29, 2011 16:18
Sample Watir Unit Test
require 'rubygems'
require 'test/unit'
require 'watir-webdriver'
class LoginTest < Test::Unit::TestCase
def setup
@browser = Watir::Browser.new :ff
end