Sha256: 73f7b3bd4c59cdb6e537c14668299469a288ed7a587f5653949231bd751ec943

Contents?: true

Size: 946 Bytes

Versions: 9

Compression:

Stored size: 946 Bytes

Contents

RSpec::Matchers.define :create_files do |expected|
  match do |block|
    @before = false
    @after = true
    expected.each do |file|
      @before |= exists?(file)
    end
    block.call
    expected.each do |file|
      @after &= exists?(file)
    end
    !@before && @after
  end

  failure_message do |_block|
    existed_before_message expected do
      "One or more files in [#{expected.inspect}] was not created."
    end
  end

  failure_message_when_negated do |_block|
    existed_before_message expected do
      "The files in [#{expected.inspect}] were created."
    end
  end

  def supports_block_expectations?
    true
  end

  def exists?(expected)
    # Allows us to use wildcard checks for existence.
    !Dir.glob(expected).empty?
  end

  def existed_before_message(expected)
    if @before
      "One or more files in  [#{expected.inspect}] existed before, so this test doesn't work"
    else
      yield
    end
  end
end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
metric_fu-4.13.0 spec/support/matcher_create_files.rb
fastruby-metric_fu-5.0.0 spec/support/matcher_create_files.rb
code_metric_fu-4.14.4 spec/support/matcher_create_files.rb
code_metric_fu-4.14.3 spec/support/matcher_create_files.rb
code_metric_fu-4.14.2 spec/support/matcher_create_files.rb
code_metric_fu-4.14.1 spec/support/matcher_create_files.rb
code_metric_fu-4.14.0 spec/support/matcher_create_files.rb
metric_fu-4.12.0 spec/support/matcher_create_files.rb
metric_fu-4.11.4 spec/support/matcher_create_files.rb