Class: PdfSearch::WebServer

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#daemonObject

Returns the value of attribute daemon.



4
5
6
# File 'lib/web_server.rb', line 4

def daemon
  @daemon
end

Instance Method Details

#response_html(elasticsearch_response) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/web_server.rb', line 26

def response_html(elasticsearch_response)
  results = JSON.parse(elasticsearch_response)['hits']['hits']

  results.map do |result|
    "<li>#{result["_source"]["text"]}</li>"
  end.join("\n")
end

#startObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/web_server.rb', line 6

def start
  start_server = lambda do
    server = WEBrick::HTTPServer.new(:Port => 80, :DocumentRoot => ::PdfSearch.relative_to_gem_path(['html']))

    server.mount_proc '/search' do |request, response|
      query = request.query["query"]
      elastic_response = Net::HTTP.get(URI.parse("#{ENV['ELASTICSEARCH_URL']}/_all/_search?q=text:#{query}"))
      response.body = response_html(elastic_response)
    end

    server.start
  end

  if ENV['DEBUG_PDF_SEARCH'] == '1'
    start_server.call
  else
   self.daemon = Daemons.call(multiple: true, &start_server)
  end
end