Class: Nous::Extractor::Default::Client

Inherits:
Command
  • Object
show all
Defined in:
lib/nous/extractor/default/client.rb

Defined Under Namespace

Classes: ExtractionError

Constant Summary collapse

NOISY_TAGS =
%w[script style nav footer].freeze

Instance Method Summary collapse

Methods inherited from Command

call, #failure, #success

Constructor Details

#initialize(html:, selector: nil) ⇒ Client

Returns a new instance of Client.



13
14
15
16
# File 'lib/nous/extractor/default/client.rb', line 13

def initialize(html:, selector: nil)
  @html = html
  @selector = selector
end

Instance Method Details

#call ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/nous/extractor/default/client.rb', line 18

def call
  readable = ::Readability::Document.new(prepared_html)

  text = Nokogiri::HTML(readable.content).text.strip
  return failure(ExtractionError.new("readability returned no content")) if text.empty?

  title = resolve_title(readable)
  success(payload: {title: title, content: readable.content})
end