Class: Rixie::Search::Wikipedia

Inherits:
Base
  • Object
show all
Defined in:
lib/rixie/search/wikipedia.rb

Constant Summary collapse

DEFAULT_MAX_RESULTS =
5
DEFAULT_LANGUAGE =
"en"

Instance Method Summary collapse

Constructor Details

#initialize(language: DEFAULT_LANGUAGE, http_client: nil) ⇒ Wikipedia

Returns a new instance of Wikipedia.



12
13
14
15
16
17
18
# File 'lib/rixie/search/wikipedia.rb', line 12

def initialize(language: DEFAULT_LANGUAGE, http_client: nil)
  @language = language
  @http_client = Rixie::Http::Client.new(
    headers: {"Accept" => "application/json"},
    http_client: http_client
  )
end

Instance Method Details

#search(query, max_results: DEFAULT_MAX_RESULTS) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/rixie/search/wikipedia.rb', line 20

def search(query, max_results: DEFAULT_MAX_RESULTS)
  response = @http_client.get(build_url(query, max_results))
  data = JSON.parse(response[:body].to_s)
  Array(data.dig("query", "search")).map { |hit| format_result(hit) }
rescue JSON::ParserError
  []
end