Class: Html2rss::ItemExtractors::Attribute

Inherits:
Object
  • Object
show all
Defined in:
lib/html2rss/item_extractors/attribute.rb

Overview

Returns the value of the attribute.

Imagine this time HTML tag with a datetime attribute:

<time datetime="2019-07-01">...</time>

YAML usage example:

selectors:
  link:
    selector: time
    extractor: attribute
    attribute: datetime

Would return:

'2019-07-01'

In case you’re extracting a date or a time, consider parsing it during post processing with AttributePostProcessors::ParseTime.

Defined Under Namespace

Classes: Options

Instance Method Summary collapse

Constructor Details

#initialize(xml, options) ⇒ Attribute

Initializes the Attribute extractor.

Parameters:

  • xml (Nokogiri::XML::Element)
  • options (Options)


34
35
36
37
# File 'lib/html2rss/item_extractors/attribute.rb', line 34

def initialize(xml, options)
  @options = options
  @element = ItemExtractors.element(xml, options.selector)
end

Instance Method Details

#getString

Retrieves and returns the attribute’s value as a string.

Returns:

  • (String)

    The value of the attribute.



43
44
45
46
47
# File 'lib/html2rss/item_extractors/attribute.rb', line 43

def get
  @element.attr(@options.attribute).to_s.freeze
rescue NoMethodError => error
  raise "Failed to extract attribute: #{error.message}"
end