module FakeFS

FakeFS module

FakeFS module

FakeFS module

Public Class Methods

activate!() click to toggle source

unconditionally activate

# File lib/fakefs/base.rb, line 23
def activate!
  Object.class_eval do
    remove_const(:Dir)
    remove_const(:File)
    remove_const(:FileTest)
    remove_const(:FileUtils)
    remove_const(:Pathname)

    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)
    ::FakeFS::Kernel.hijack!
  end

  @activated = true

  true
end
activated?() click to toggle source
# File lib/fakefs/base.rb, line 18
def activated?
  @activated ||= false
end
clear!() click to toggle source

unconditionally clear the fake filesystem

# File lib/fakefs/base.rb, line 67
def clear!
  ::FakeFS::FileSystem.clear
end
deactivate!() click to toggle source

unconditionally deactivate

# File lib/fakefs/base.rb, line 45
def deactivate!
  Object.class_eval do
    remove_const(:Dir)
    remove_const(:File)
    remove_const(:FileTest)
    remove_const(:FileUtils)
    remove_const(:Pathname)

    const_set(:Dir,       RealDir)
    const_set(:File,      RealFile)
    const_set(:FileTest,  RealFileTest)
    const_set(:FileUtils, RealFileUtils)
    const_set(:Pathname,  RealPathname)
    ::FakeFS::Kernel.unhijack!
  end

  @activated = false

  true
end
with() { || ... } click to toggle source

present the fake filesystem to the block

# File lib/fakefs/base.rb, line 78
def with
  if activated?
    yield
  else
    begin
      activate!
      yield
    ensure
      deactivate!
    end
  end
end
with_fresh(&block) click to toggle source

present a fresh new fake filesystem to the block

# File lib/fakefs/base.rb, line 72
def with_fresh(&block)
  clear!
  with(&block)
end
without() { || ... } click to toggle source

present a non-fake filesystem to the block

# File lib/fakefs/base.rb, line 92
def without
  if !activated?
    yield
  else
    begin
      deactivate!
      yield
    ensure
      activate!
    end
  end
end

Public Instance Methods

use_fakefs(describe_block, opts) click to toggle source
# File lib/fakefs/spec_helpers.rb, line 36
def use_fakefs(describe_block, opts)
  describe_block.before opts[:with] do
    FakeFS.activate!
  end

  describe_block.after opts[:with] do
    FakeFS.deactivate!
    FakeFS::FileSystem.clear if opts[:with] == :each
  end
end