Sha256: dccdc48bf0bac2aab2ff2d7e95aee48d88c67b45b57002e0d79345c3c380e9f9

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module TestServerFiles

  def add_file(path)
    full_path = temp_path(path)
    mkdir_p File.dirname(full_path)
    File.open(full_path, 'wb') do |file|
      file.write @templates[File.basename(full_path)]
    end
  end

  def set_mtime(path, mtime)
    full_path = temp_path(path)
    File.utime(File.atime(full_path), mtime, full_path)
  end

  def add_directory(path)
    full_path = temp_path(path)
    mkdir_p full_path
  end

  def has_file?(path)
    full_path = temp_path(path)
    File.exists?(full_path)
  end

  def has_file_with_contents_of?(path)
    expected_contents = @templates[File.basename(path)]
    all_paths.any? do |path|
      File.open(path, 'rb', &:read) == expected_contents
    end
  end

  def files_named_like(name)
    all_paths.select do |path|
      path.include?(name)
    end
  end

  def has_directory?(path)
    full_path = temp_path(path)
    File.directory?(full_path)
  end

  def file_contents(path)
    full_path = temp_path(path)
    File.open(full_path, 'rb', &:read)
  end

  def temp_path(path)
    File.expand_path(path, temp_dir)
  end

  def all_paths
    Dir[temp_path('**/*')]
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ftpd-2.0.1 features/support/test_server_files.rb
ftpd-2.0.0 features/support/test_server_files.rb