Skip to content

Instantly share code, notes, and snippets.

@ender672
ender672 / config.ru
Created January 30, 2012 02:28
Rack application that returns image information as JSON
require 'rack'
require './jimmy'
run Rack::Jimmy.new('.')
@ender672
ender672 / bm.rb
Created January 30, 2012 23:34
String #<< benchmark
require 'rubygems'
require 'benchmark'
require 'benchmark/ips'
FOO = 'foo'
Benchmark.ips do |x|
x.report('=') { |times|
i = 0
while i < times
@ender672
ender672 / config.ru
Created January 31, 2012 01:09
Rack middleware for signed request URIs
require './signed_request_uri'
require 'rack/file'
use Rack::SignedRequestUri, 'top secret'
run Rack::File.new('images')
@ender672
ender672 / gist:1831918
Created February 15, 2012 00:10
1.9.3-p0 nokogiri segfault fix
diff --git a/lib/nokogiri/xml/node_set.rb b/lib/nokogiri/xml/node_set.rb
index 37b3848..cb99cdd 100644
--- a/lib/nokogiri/xml/node_set.rb
+++ b/lib/nokogiri/xml/node_set.rb
@@ -234,8 +234,8 @@ module Nokogiri
###
# Iterate over each node, yielding to +block+
- def each(&block)
- 0.upto(length - 1) do |x|
diff --git a/lib/nokogiri/xml/node_set.rb b/lib/nokogiri/xml/node_set.rb
index 37b3848..149e90e 100644
--- a/lib/nokogiri/xml/node_set.rb
+++ b/lib/nokogiri/xml/node_set.rb
@@ -240,6 +240,14 @@ module Nokogiri
end
end
+ def map
+ a = []
diff --git a/ext/nokogiri/xml_document.c b/ext/nokogiri/xml_document.c
index 348344c..9f035ad 100644
--- a/ext/nokogiri/xml_document.c
+++ b/ext/nokogiri/xml_document.c
@@ -38,6 +38,13 @@ static void dealloc(xmlDocPtr doc)
NOKOGIRI_DEBUG_END(doc);
}
+static void
+mark(xmlDocPtr doc)
#include <string.h>
#include <libxml/tree.h>
#include <libxml/xpath.h>
void
main()
{
xmlDocPtr doc;
xmlNodePtr cur;
xmlXPathContextPtr ctx;
@ender672
ender672 / gist:2175941
Created March 23, 2012 22:45
A really small image resizing rack application
require 'rack'
require 'oil'
app = lambda do |env|
r = Rack::Request.new(env)
io = File.new(File.join('images', File.basename(r.path)), 'rb')
body = Oil::JPEG.new(io, r[:w].to_i, r[:h].to_i)
[200, { 'Content-Type' => 'image/jpeg' }, body]
end
@ender672
ender672 / gist:2378417
Created April 13, 2012 17:10
Single-threaded, single-process, non-evented rack handler using the mongrel http parser
require 'rack/handler'
require 'socket'
require 'puma/puma_http11'
module Rack::Handler
module Qute
READ_SIZE = 500000
module NullIO
def self.gets; end
@ender672
ender672 / gist:2582334
Created May 3, 2012 01:09
Multithreaded rack handler. Proof-of-concept. Use Puma instead.
require 'socket'
require 'uri'
require 'rack/handler' # gem install rack
require 'rack/rewindable_input'
require 'http/parser' # gem install http_parser.rb
require 'stringio'
module Rack::Handler
module Qute
def self.run(app, options={})