Sha256: b9afd54db198a85ec1719c7b5bba313c2ee8ee1e82f2a7bbe0144257d1a64843
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
RealFile = File RealFileTest = FileTest RealFileUtils = FileUtils RealDir = Dir RealPathname = Pathname def RealPathname(*args) RealPathname.new(*args) end if RUBY_VERSION >= "1.9.3" def Pathname(*args) Pathname.new(*args) end end module FakeFS @activated = false class << self def activated? @activated end def activate! @activated = true Object.class_eval do remove_const(:Dir) remove_const(:File) remove_const(:FileTest) remove_const(:FileUtils) remove_const(:Pathname) if RUBY_VERSION >= "1.9.3" const_set(:Dir, FakeFS::Dir) const_set(:File, FakeFS::File) const_set(:FileUtils, FakeFS::FileUtils) const_set(:FileTest, FakeFS::FileTest) const_set(:Pathname, FakeFS::Pathname) if RUBY_VERSION >= "1.9.3" ::FakeFS::Kernel.hijack! end true end def deactivate! @activated = false Object.class_eval do remove_const(:Dir) remove_const(:File) remove_const(:FileTest) remove_const(:FileUtils) remove_const(:Pathname) if RUBY_VERSION >= "1.9.3" const_set(:Dir, RealDir) const_set(:File, RealFile) const_set(:FileTest, RealFileTest) const_set(:FileUtils, RealFileUtils) const_set(:Pathname, RealPathname) if RUBY_VERSION >= "1.9.3" ::FakeFS::Kernel.unhijack! end true end def with if activated? yield else begin activate! yield ensure deactivate! end end end def without if !activated? yield else begin deactivate! yield ensure activate! end end end end end def FakeFS(&block) return ::FakeFS unless block ::FakeFS.with(&block) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fakefs-0.5.4 | lib/fakefs/base.rb |
fakefs-0.5.3 | lib/fakefs/base.rb |