Sha256: 831d3658f4350c416e587ff1d02c213fc798a1a273b27984ff4bb0f3631672f2

Contents?: true

Size: 755 Bytes

Versions: 8

Compression:

Stored size: 755 Bytes

Contents

RealFile = File
RealFileUtils = FileUtils
RealDir = Dir
RealFileUtils::Dir = RealDir
RealFileUtils::File = RealFile

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

  def self.deactivate!
    Object.class_eval do
      remove_const(:Dir)
      remove_const(:File)
      remove_const(:FileUtils)
      const_set(:Dir, RealDir)
      const_set(:File, RealFile)
      const_set(:FileUtils, RealFileUtils)
    end
  end
end

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

Version data entries

8 entries across 8 versions & 3 rubygems

Version Path
madpilot-fakefs-0.1.2 lib/fakefs/base.rb
madpilot-fakefs-0.1.3 lib/fakefs/base.rb
madpilot-fakefs-0.1.4 lib/fakefs/base.rb
madpilot-fakefs-0.1.5 lib/fakefs/base.rb
rsanheim-fakefs-0.0.1 lib/fakefs/base.rb
rsanheim-fakefs-0.0.2 lib/fakefs/base.rb
rsanheim-fakefs-0.1.0 lib/fakefs/base.rb
fakefs-0.1.0 lib/fakefs/base.rb