Skip to content

Instantly share code, notes, and snippets.

@lifo
Created November 20, 2008 18:53
Show Gist options
  • Save lifo/27142 to your computer and use it in GitHub Desktop.
Save lifo/27142 to your computer and use it in GitHub Desktop.
[lifo@null rock (master)]$ ruby extconf.rb && make
[lifo@null rock (master)]$ ruby run.rb
require 'mkmf'
extension_name = 'rock'
dir_config(extension_name)
create_makefile(extension_name)
#include "ruby.h"
VALUE method_call(VALUE self, VALUE env) {
VALUE response = rb_ary_new();
VALUE headers = rb_hash_new();
rb_hash_aset(headers, rb_str_new2("Content-Type"), rb_str_new2("text/html"));
rb_ary_push(response, INT2NUM(200));
rb_ary_push(response, headers);
rb_ary_push(response, rb_str_new2("Hello Rock"));
return response;
}
void Init_rock() {
VALUE Rock = rb_define_class("Rock", rb_cObject);
rb_define_method(Rock, "call", method_call, 1);
}
require 'rock'
require 'rubygems'
require 'rack'
require 'thin'
Rack::Handler::Thin.run Rock.new, :Port => 9292
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment