Class: FTPMVC::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/ftpmvc/server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host = '0.0.0.0', port) ⇒ Server

Returns a new instance of Server.



9
10
11
# File 'lib/ftpmvc/server.rb', line 9

def initialize(host='0.0.0.0', port)
  @host, @port = host, port
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



7
8
9
# File 'lib/ftpmvc/server.rb', line 7

def host
  @host
end

#portObject (readonly)

Returns the value of attribute port.



7
8
9
# File 'lib/ftpmvc/server.rb', line 7

def port
  @port
end

Instance Method Details

#start(application) {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



23
24
25
26
27
# File 'lib/ftpmvc/server.rb', line 23

def start(application)
  start_in_new_thread(application)
  yield self if block_given?
  @server.join
end

#start_in_new_thread(application) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/ftpmvc/server.rb', line 13

def start_in_new_thread(application)
  driver = Ftpd::Driver.new(application)
  @server = ::Ftpd::FtpServer.new(driver)
  @server.interface, @server.port = @address, @port
  @server.on_exception { |e| application.handle_exception(e) }
  @server.start
  @port = @server.bound_port
  self
end

#stopObject



29
30
31
# File 'lib/ftpmvc/server.rb', line 29

def stop
  @server.stop
end