Class: PdfSearch::WebServer
- Inherits:
-
Object
- Object
- PdfSearch::WebServer
- Defined in:
- lib/web_server.rb
Instance Attribute Summary collapse
-
#daemon ⇒ Object
Returns the value of attribute daemon.
Instance Method Summary collapse
Instance Attribute Details
#daemon ⇒ Object
Returns the value of attribute daemon.
5 6 7 |
# File 'lib/web_server.rb', line 5 def daemon @daemon end |
Instance Method Details
#basic_auth ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/web_server.rb', line 7 def basic_auth return @basic_auth if @basic_auth != nil config = { :Realm => 'BanalBI Pdf-Search' } htpasswd = WEBrick::HTTPAuth::Htpasswd.new 'banalbi-pdf-search' htpasswd.set_passwd config[:Realm], ENV['PDF_SEARCH_USERNAME'] , ENV['PDF_SEARCH_PASSWORD'] htpasswd.flush config[:UserDB] = htpasswd puts config.inspect @basic_auth = WEBrick::HTTPAuth::BasicAuth.new config end |
#response_html(es_response) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/web_server.rb', line 49 def response_html(es_response) results = es_response['hits']['hits'] results.map do |result| "<li>#{result["_source"]["text"]}</li>" end.join("\n") end |
#start ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/web_server.rb', line 23 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| if [ENV['PDF_SEARCH_USERNAME'], ENV['PDF_SEARCH_PASSWORD']].all? do |env_var| env_var != nil && env_var != '' end basic_auth.authenticate(request, response) end query = request.query["query"] elastic_response = ::PdfSearch::ElasticSearchClient.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 |