Skip to content

Instantly share code, notes, and snippets.

View bachue's full-sized avatar

Bachue Zhou bachue

View GitHub Profile
@bachue
bachue / filter.rb
Last active December 17, 2015 06:39
def run_filters(&blk)
m = Module.new do
extend self
@__filter_endpoint = blk
end
code = '@__filter_endpoint.call'
filter_methods = private_methods.grep(/^filter_/)
filter_methods.each do |meth|
m.send(:define_method, "__filter_#{meth}", method(meth))
end
class A
def f() 'A#f' end
end
module M
def f() 'M#f' end
def g() 'M#g' end
def k() 'M#k' end
end
jobs_per_process = 100
process_count = 10
User.find_in_batches(:batch_size => jobs_per_process * process_count, :conditions => "name like '%00'") do |group|
batches = group.in_groups(process_count)
batches.each do |batch|
Process.fork do
ActiveRecord::Base.establish_connection
batch.reject { |user| user.nil? }.
each {|user| puts user.name }
class A
class << self
def add(ele)
@array ||= []
@array << ele
end
def array
@array ||= []
end
def Object.superclasses
superclasses = superclass.superclasses if superclass.respond_to?(:superclasses)
superclasses ||= []
superclasses.unshift self
end
@bachue
bachue / gist:5188255
Last active December 15, 2015 02:38
My TSort Example
require 'tsort'
require 'pp'
Node = Struct.new :value, :before, :after
class Collection < Array
include TSort
alias :tsort_each_node :each
def tsort_each_child(current, &block)
@bachue
bachue / gist:5128173
Created March 10, 2013 11:09
A bug I found in ruby-v8
require 'v8'
v8 = V8::Context.new
r = v8.eval 'a = {"b": 310399688698392577}'
r[b].to_i # => 310399688698392576 (expected: 310399688698392577)
@bachue
bachue / gist:5115052
Created March 8, 2013 08:44
A bug in actionpack/lib/action_controller/cookies.rb The write_cookies is supposed to return true if Rails.env.test? == true
def write_cookie?(cookie)
@secure || !cookie[:secure] || defined?(Rails.env) && Rails.env.development?
end
@bachue
bachue / gist:5099435
Created March 6, 2013 13:52
All loaded Railtes in a totally new Rails 3.2 app
Rails::Engine < Rails::Railtie
Rails::Plugin < Rails::Engine
Rails::Application < Rails::Engine
I18n::Railtie < Rails::Railtie
ActiveSupport::Railtie < Rails::Railtie
ActionDispatch::Railtie < Rails::Railtie
ActionView::Railtie < Rails::Railtie
ActionController::Railtie < Rails::Railtie
ActiveRecord::Railtie < Rails::Railtie
ActionMailer::Railtie < Rails::Railtie
@bachue
bachue / const_missing_test.rb
Created March 3, 2013 12:22
Try to catch a uninitialized constant error and then load the missing file and necessary class
def Object.const_missing(const_name, *args)
puts "const_missing #{const_name.inspect}"
require './test_class'
Object.const_get const_name
end
obj = TestClass.new
puts obj.f # => hello world