module FakeFS::Kernel
Kernel
Module
Attributes
captives[RW]
Public Class Methods
hijack(name, &block)
click to toggle source
NOTE: maybe private
# File lib/fakefs/kernel.rb, line 29 def self.hijack(name, &block) captives[:original][name] = ::Kernel.method(name.to_sym) captives[:hijacked][name] = block || proc { |_args| } end
hijack!()
click to toggle source
# File lib/fakefs/kernel.rb, line 10 def self.hijack! captives[:hijacked].each do |name, prc| ::Kernel.send(:remove_method, name.to_sym) ::Kernel.send(:define_method, name.to_sym, &prc) ::Kernel.send(:private, name.to_sym) end end
unhijack!()
click to toggle source
# File lib/fakefs/kernel.rb, line 18 def self.unhijack! captives[:original].each do |name, _prc| ::Kernel.send(:remove_method, name.to_sym) ::Kernel.send(:define_method, name.to_sym, proc do |*args, &block| ::FakeFS::Kernel.captives[:original][name].call(*args, &block) end) ::Kernel.send(:private, name.to_sym) end end