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