Skip to content

Instantly share code, notes, and snippets.

View digitalextremist's full-sized avatar
🏴

//de digitalextremist

🏴
View GitHub Profile
@digitalextremist
digitalextremist / reel-nosubclass.rb
Created April 5, 2013 02:58
Demonstrating same crash, except without subclass.
require 'rubygems'
require 'bundler/setup'
require 'reel'
puts "Starting test server //"
Reel::Server.supervise("0.0.0.0", 80) do |connection|
while request = connection.request
case request
when Reel::Request
@digitalextremist
digitalextremist / 01E.rb
Created April 7, 2013 01:47
Working version of Reel demo; using Reel::App, including Octarine.
require 'rubygems'
require "bundler/setup"
require 'reel/app'
class Wu
include Reel::App
get '/' do |request|
puts "Request came in //"
[200, {}, "hello world"]
end
@digitalextremist
digitalextremist / norack-01E.rb
Last active December 16, 2015 00:58
Reproducible crashing of Reel, run as a Rack handler, being asked for a MultiPart hash of POST variables.
require 'rubygems'
require "bundler/setup"
require 'reel/app'
MU_BASE = File.expand_path( File.dirname( __FILE__ ) )
class Wu
include Reel::App
get '/' do |request|
puts "Request came in //"
@digitalextremist
digitalextremist / 01E.rb
Last active December 16, 2015 05:08
Test application for Reel::Request::Parser abstraction layer.
MU_BASE = File.expand_path( File.dirname( __FILE__ ) )
require 'rubygems'
require "bundler/setup"
REEL_PARSER = :puma_http11
require ( REEL_LIB = ( LIB_BASE = "/mu/tweaking" ) + "/reel/lib/" ) + 'reel/app'
require 'rack'
@digitalextremist
digitalextremist / Gemfile
Last active December 16, 2015 08:19
Breaking Request.params; unable to parse multipart POST
source "http://rubygems.org"
#de ruby '1.9.3', :engine => 'jruby', :engine_version => '1.7.2'
gem "rack", :github => 'digitalextremist/rack', :branch => 'master'
gem 'rack-contrib', '1.1.0'
gem 'rack-jsonp', "1.3.1"
gem 'rack-protection', "1.5.0"
gem 'rack-cache'
@digitalextremist
digitalextremist / concurrent_nested_hash.rb
Last active December 16, 2015 08:29 — forked from tarcieri/concurrent_nested_hash.rb
Oldie but a goodie, with more of the standard methods.
require 'celluloid'
class ConcurrentNestedHash
include Celluloid
def initialize( starting = {} ); @outer = starting end
def [](*keys); keys.inject(@outer) { |h,k| h[k] } end
def []=(*args)
@digitalextremist
digitalextremist / rack-reel.rb
Last active December 16, 2015 10:59
Test case for http_parser.rb under jRuby. Multipart POST requests will either fail or be corrupt.
require 'rubygems'
require "bundler/setup"
MU_BASE = File.expand_path( File.dirname( __FILE__ ) )
MU_UPLOADS = "/mu/rack-reel/uploads/"
require 'rack'
require 'reel'
require 'sinatra'
require "sinatra/multi_route"
@digitalextremist
digitalextremist / spec.output.txt
Created April 22, 2013 23:19
http_parser.rb test failures
Failures:
1) HTTP::Parser should implement basic api
Failure/Error: Unable to find matching line from backtrace
Java::JavaLang::ClassCastException:
org.jruby.RubyNil cannot be cast to org.jruby.RubyString
# org.ruby_http_parser.RubyHttpParser$2.cb(RubyHttpParser.java:110)
# http_parser.lolevel.ParserSettings.call_on(ParserSettings.java:80)
# http_parser.lolevel.ParserSettings.call_on_url(ParserSettings.java:64)
# http_parser.lolevel.HTTPParser.execute(HTTPParser.java:697)
@digitalextremist
digitalextremist / handler-class.rb
Created April 23, 2013 06:42
Partial ( somewhat messy )snippet of WebSocket support implemented in Reel using Rack hijack_io's pre-header form. Client side is using portal.js and jQuery Mobile. Mu is a base class of utilities (such as Mu.debug to output data to the console) and Mu.socket to manipulate the socket itself, once captured. Ma is an instance of Sinatra::Base with…
require 'forwardable'
require "websocket/protocol/hybi"
module ProtocolAlias
def << data
text data
end
end
class Mu
@digitalextremist
digitalextremist / mail-compile.error-trace-001.log
Last active December 16, 2015 18:19
Stack trace of failing compile for Mail gem under rbx-head with ubuntu 12.04LTS & up-to-date packages.
root@convergence:/home/mu/one# scripts/one-server.sh
root@convergence:/home/mu/one# I, [2013-04-28T02:34:19.541402 #15521] INFO -- : Reel 0.3.0
I, [2013-04-28T02:34:19.543178 #15521] INFO -- : Listening on 0.0.0.0:80
I, [2013-04-28T02:34:19.543395 #15521] INFO -- : Number of workers: 51
I, [2013-04-28T02:34:19.543590 #15521] INFO -- : Process ID saved to: tmp/01E.pid
I, [2013-04-28T02:34:19.543783 #15521] INFO -- : Process ID: 15521
E, [2013-04-28T02:34:23.033263 #15521] ERROR -- : Celluloid::PoolManager crashed!
Rubinius::CompileError: Error trying to compile /usr/local/rvm/gems/rbx-head/gems/mail-2.5.3/lib/mail/parsers/rfc2822_obsolete.rb
/usr/local/rvm/rubies/rbx-head/runtime/19/compiler/compiler.rbc:13:in `compiler_error'
/usr/local/rvm/rubies/rbx-head/runtime/19/compiler/compiler.rbc:92:in `compile'