Skip to content

Instantly share code, notes, and snippets.

View banister's full-sized avatar
🇳🇱

John Mair banister

🇳🇱
View GitHub Profile
@banister
banister / val.rb
Created March 12, 2009 04:23 — forked from johnbender/val.rb
class PostQuery < Query
@@clauses = [:columns, :operations, :order]
def initialize(target_object)
super(target_object, @@clauses)
@clauses.each do |c|
class << self; self; end.define_method(c) { self[c] }
end
@banister
banister / scope.rb
Created September 28, 2010 01:55 — forked from myobie/scope.rb
module Scope
module ScopeMethods
def helpers(&block)
self.instance_eval(&block)
block.call
puts "self inside helpers #{self}"
end
end
def scope(path, &block)
@banister
banister / foo.c
Created October 16, 2010 04:19 — forked from djberg96/foo.c
# extconf.rb
require 'mkmf'
create_makefile('foo')
# foo.h
#ifndef __FOO_H_INCLUDED__
#define __FOO_H_INCLUDED__
#include <ruby.h>
direc = File.dirname(__FILE__)
require "#{direc}/local_eval/version"
require 'remix'
require 'object2module'
module LocalEval
module ObjectExtensions
@@m = Mutex.new
def local_eval(*objs, &block)
@banister
banister / gist:701053
Created November 15, 2010 22:12 — forked from jtoy/gist:701044
class Foo
def self.create(options = {})
if options[:queue]
self.instance_eval do
def queue
#{options[:queue].to_sym}
end
end
end
@banister
banister / gist:701054
Created November 15, 2010 22:13 — forked from jtoy/gist:701044
class Foo
def self.create(options = {})
if options[:queue]
define_singleton_method :queue do
"#{options[:queue].to_sym}"
end
end
self.enqueue(self, options)
end
end
class Person
def add_accessor(accessor_name)
class << self; self; end.class_eval do
attr_accessor accessor_name
end
end
end
person = Person.new
Person.add_accessor :name
module MyMod
# store the variable on the module itself
var = "initial value"
# first method that accesses the var
define_method :get_var do
var
end
module Helper
def helper_method
puts "I'm helping"
end
end
class Main
include Helper
def show
@banister
banister / development.rb
Created April 27, 2011 14:21 — forked from MyArtChannel/development.rb
Use Pry as IRB replacement in rails 3 console
# Add this to the end of your development.rb and add
#
# gem 'pry'
#
# to your Gemfile and run bundle to install.
silence_warnings do
begin
require 'pry'
IRB = Pry