module FakeFS

Public Class Methods

activate!() click to toggle source
# File lib/fakefs/base.rb, line 24
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"
  end
  true
end
activated?() click to toggle source
# File lib/fakefs/base.rb, line 20
def activated?
  @activated
end
deactivate!() click to toggle source
# File lib/fakefs/base.rb, line 42
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"
  end
  true
end
with() { || ... } click to toggle source
# File lib/fakefs/base.rb, line 61
def with
  if activated?
    yield
  else
    begin
      activate!
      yield
    ensure
      deactivate!
    end
  end
end
without() { || ... } click to toggle source
# File lib/fakefs/base.rb, line 74
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 30
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