Sha256: 79fcc5c66568c9da3302958d59b03620e8e4c8debbd006b00a187aaa5a9fcf62

Contents?: true

Size: 950 Bytes

Versions: 6

Compression:

Stored size: 950 Bytes

Contents

RealFile            = File
RealFileTest        = FileTest
RealFileUtils       = FileUtils
RealDir             = Dir

module FakeFS
  def self.activate!
    Object.class_eval do
      remove_const(:Dir)
      remove_const(:File)
      remove_const(:FileTest)
      remove_const(:FileUtils)

      const_set(:Dir,       FakeFS::Dir)
      const_set(:File,      FakeFS::File)
      const_set(:FileUtils, FakeFS::FileUtils)
      const_set(:FileTest,  FakeFS::FileTest)
    end
    true
  end

  def self.deactivate!
    Object.class_eval do
      remove_const(:Dir)
      remove_const(:File)
      remove_const(:FileTest)
      remove_const(:FileUtils)

      const_set(:Dir,       RealDir)
      const_set(:File,      RealFile)
      const_set(:FileTest,  RealFileTest)
      const_set(:FileUtils, RealFileUtils)
    end
    true
  end
end

def FakeFS
  return ::FakeFS unless block_given?
  ::FakeFS.activate!
  yield
ensure
::FakeFS.deactivate!
end

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
fakefs-0.4.0 lib/fakefs/base.rb
fakefs-0.3.2 lib/fakefs/base.rb
mnoble-fakefs-0.3.2 lib/fakefs/base.rb
mnoble-fakefs-0.3.1 lib/fakefs/base.rb
fakefs-0.3.1 lib/fakefs/base.rb
ktheory-fakefs-0.2.1.1 lib/fakefs/base.rb