Skip to content

Instantly share code, notes, and snippets.

@justincampbell
Last active August 29, 2015 14:14
Show Gist options
  • Save justincampbell/37d88e8ccfa2819131ec to your computer and use it in GitHub Desktop.
Save justincampbell/37d88e8ccfa2819131ec to your computer and use it in GitHub Desktop.
class After
def worked?; true; end
end
module Newless
module_function
def newless(klass)
method_name = klass.name.to_sym
return if \
Kernel.private_method_defined?(method_name) ||
Kernel.public_method_defined?(method_name)
Kernel.send :define_method, method_name do |*args|
klass.new(*args)
end
end
end
ObjectSpace.each_object(Class) do |klass|
Newless.newless klass
end
class Object
def self.inherited(klass)
Newless.newless klass
end
end
class Before
def worked?; true; end
end
require 'minitest/autorun'
class TestTest < MiniTest::Test
def test_after
assert After().worked?
end
def test_before
assert Before().worked?
end
def test_doesnt_clobber_existing_methods
assert Array(:foo) == [:foo]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment