26 lines
556 B
Ruby
26 lines
556 B
Ruby
class NilClass
|
|
def include?(*args)
|
|
false
|
|
end
|
|
end
|
|
|
|
module MethodPrependAndAppend
|
|
def before_method(m, &blk)
|
|
alias_method :"#{m}_before_extending_before", m
|
|
define_method m do |*args|
|
|
instance_eval(&blk)
|
|
send :"#{m}_before_extending_before", *args
|
|
end
|
|
end
|
|
|
|
def after_method(m, &blk)
|
|
alias_method :"#{m}_before_extending_after", m
|
|
define_method m do |*args|
|
|
result = send :"#{m}_before_extending_after", *args
|
|
instance_eval(result, &blk)
|
|
end
|
|
end
|
|
end
|
|
|
|
Class.send :include, MethodPrependAndAppend
|