Skip to content

Instantly share code, notes, and snippets.

alloy / gist:7527832
Created November 18, 2013 13:39
VIM config to deal with (MRI) Ruby’s C source code indentation.
" These VIM rules match the MRI C indentation rules.
" To enable use of this project specific config, add the following to your
" ~/.vimrc:
" " Enable per-directory .vimrc files
" set exrc
" " Disable unsafe commands in local .vimrc files
" set secure
require 'fiddle'
require 'minitest/autorun'
class RubyVM
class InstructionSequence
address = Fiddle::Handle::DEFAULT['rb_iseq_load']
func =, [Fiddle::TYPE_VOIDP] * 3, Fiddle::TYPE_VOIDP)
define_singleton_method(:load) do |data, parent = nil, opt = nil|, parent, opt).to_value
garybernhardt / selectable_queue.rb
Last active November 23, 2022 12:42
A queue that you can pass to
# A queue that you can pass to
# NOT THREAD SAFE: Only one thread should write; only one thread should read.
# Purpose:
# Allow easy integration of data-producing threads into event loops. The
# queue will be readable from select's perspective as long as there are
# objects in the queue.
# Implementation:
erikh /
Created March 31, 2012 07:02 — forked from DAddYE/
OSX For Hackers
#!/usr/bin/env sh
# This is script with usefull tips taken from:
# install it:
# curl -sL | sh
hosiawak / irb_session.rb
Created June 12, 2011 12:53
Rubinius AST transform by sublassing Melbourne
# The goal is to not use the regular Symbol#to_proc
# (which is to_proc method in the Symbol class)
# but rather use an Abstract Syntax Tree transformation to
# transform map(&:to_s) into map {|x| x.to_s}
# This can be achieved by using the flexible compiler architecture
# in Rubinius and is presented below.
# First we undefine the regular Symbol#to_proc
class Symbol
dhh / gist:1014971
Created June 8, 2011 18:09
Use concerns to keep your models manageable
# autoload concerns
module YourApp
class Application < Rails::Application
config.autoload_paths += %W(
nouse /
Created March 21, 2011 05:42
vows of zombie
zombie = require("zombie")
assert = require("assert")
vows = require('vows')
vows.describe('vows of zombie').addBatch(
'when visit home page' :
topic : -> zombie.visit("http://localhost:3000", @callback)
'title should be correct' : (err, browser, status) ->
assert.equal(browser.text("title"), "Correct Title")
require 'net/http'
require 'rubygems'
require 'nokogiri'
url = URI.parse ''
res = Net::HTTP.post_form(url, {
'templateType' => 'AdviceDogSpinoff',
'text0' => ARGV[0],
'text1' => ARGV[1],
'templateID' => '165241',
eferraiuolo@BlackMagic ~/Tools/node $ npm install zombie
npm info it worked if it ends with ok
npm info using npm@0.2.13-3
npm info using node@v0.3.3
npm info preinstall base64@1.0.1
npm info preinstall cssom@0.2.0
npm info preinstall mime@1.1.0
npm info preinstall zombie@0.8.8
npm info install base64@1.0.1
Checking for program g++ or c++ : /usr/bin/g++
module Tidy
extend FFI::Library
ffi_lib "libtidy.dylib"
attach_function :tidyFileExists, [:string], :int
attach_function :tidyCreate, [], :pointer
attach_function :tidyParseString, [:pointer, :string], :int
attach_function :tidySaveStdout, [:pointer], :int