Skip to content

Instantly share code, notes, and snippets.

@alloy
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::Function.new(address, [Fiddle::TYPE_VOIDP] * 3, Fiddle::TYPE_VOIDP)
define_singleton_method(:load) do |data, parent = nil, opt = nil|
func.call(Fiddle.dlwrap(data), parent, opt).to_value
@garybernhardt
garybernhardt / selectable_queue.rb
Last active November 23, 2022 12:42
A queue that you can pass to IO.select.
# A queue that you can pass to IO.select.
#
# 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
erikh / hack.sh
Created March 31, 2012 07:02 — forked from DAddYE/hack.sh
OSX For Hackers
#!/usr/bin/env sh
##
# This is script with usefull tips taken from:
# https://github.com/mathiasbynens/dotfiles/blob/master/.osx
#
# install it:
# curl -sL https://raw.github.com/gist/2108403/hack.sh | sh
#
@hosiawak
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
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(
#{config.root}/app/controllers/concerns
#{config.root}/app/models/concerns
)
end
end
@nouse
nouse / zombie-test.coffee
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 'http://memegenerator.net/Instance/CreateOrEdit'
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
end