class Scrapula::Page::Meta

www.w3.org/TR/html5/document-metadata.html#the-meta-element

TODO lang?

Constants

CHARSET

Only 1 charset, without content

HTTP_HEADERS

TODO include a list of common headers

PRAGMAS

“http-equiv” with content

STANDARD_NAMES

“name” with content NOTE currently not used

Public Class Methods

new(page) click to toggle source
# File lib/scrapula/page/meta.rb, line 31
def initialize page
  @page = page
  @page_meta = @page.search! 'meta'

  # TODO generate method for each meta
end

Public Instance Methods

[](key) click to toggle source

TODO? def all end

# File lib/scrapula/page/meta.rb, line 46
def [] key
  case
    when CHARSET == key
      @page.instance_variable_get(:@agent_page).meta_charset.first

    when (PRAGMAS + HTTP_HEADERS).include?(key)
      @page_meta.at("[http-equiv='#{key}']").attr 'content'

    # Open Graph is not standard; uses "property" instead of "name"
    when key[/og:.+/]
      # TODO return more than 1 content for some meta
      @page_meta.at("[property='#{key}']").attr 'content'

    else
      # TODO try http-equiv also
      @page_meta.at("[name='#{key}']").attr 'content'
  end
rescue NoMethodError
  nil
end

Private Instance Methods

extract_namespaces() click to toggle source
# File lib/scrapula/page/meta.rb, line 69
def extract_namespaces
end