Sha256: c5d44aedb9de788996bc246a7562ee48af40ad3e779d94f516cad706447d5bc9

Contents?: true

Size: 885 Bytes

Versions: 1

Compression:

Stored size: 885 Bytes

Contents

require 'fileutils'
require 'forwardable'

class TestServer

  extend Forwardable
  include FileUtils

  def initialize
    @temp_dir = TempDir.make
    @server = Ftpd::FtpServer.new(@temp_dir)
    @templates = TestFileTemplates.new
  end

  def close
    @server.close
  end

  def host
    'localhost'
  end

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

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

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

  def_delegator :@server, :password
  def_delegator :@server, :port
  def_delegator :@server, :user

  private

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

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ftpd-0.0.1.pre features/support/test_server.rb