Class: Lifter::Server

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&config) ⇒ Server

Returns a new instance of Server.


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

def initialize(&config)
  @config = Config.new(&config)
  @file_manager = FileManager.new(@config)
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.


5
6
7
# File 'lib/lifter/server.rb', line 5

def config
  @config
end

#file_managerObject (readonly)

Returns the value of attribute file_manager.


5
6
7
# File 'lib/lifter/server.rb', line 5

def file_manager
  @file_manager
end

Instance Method Details

#startObject


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/lifter/server.rb', line 12

def start
  # Ensure progress and completed work directories are established.
  progress_dir = "#{@config.get(:working_dir)}/progress"
  completed_dir = "#{@config.get(:working_dir)}/completed"
  FileUtils.mkdir(progress_dir) if !File.directory?(progress_dir)
  FileUtils.mkdir(completed_dir) if !File.directory?(completed_dir)

  EventMachine.epoll if EventMachine.epoll?
  EventMachine.kqueue if EventMachine.kqueue?

  EventMachine.run do
    host = @config.get(:host)
    port = @config.get(:port)

    EventMachine.start_server(host, port, Connection) do |connection|
      connection.server = self
    end
  end
end