class MetaInfo::Document
Public Class Methods
new(html)
click to toggle source
# File lib/meta_info/document.rb, line 5 def initialize(html) raise MetaInfo::Exception::NoHTML if html.nil? || html.empty? @doc = Nokogiri::HTML.parse(html) end
Public Instance Methods
description()
click to toggle source
# File lib/meta_info/document.rb, line 18 def description get_attr("description") || meta_description end
doc()
click to toggle source
# File lib/meta_info/document.rb, line 10 def doc @doc end
get_attr(name)
click to toggle source
# File lib/meta_info/document.rb, line 50 def get_attr(name) og_attr(name) || twitter_attr(name) end
image()
click to toggle source
# File lib/meta_info/document.rb, line 22 def image get_attr("image") end
meta_description()
click to toggle source
# File lib/meta_info/document.rb, line 30 def meta_description search_meta("name", /^description$/i, "content") end
meta_title()
click to toggle source
# File lib/meta_info/document.rb, line 42 def meta_title if doc.css("title").empty? return false else return doc.css("title")[0].text end end
og_attr(name)
click to toggle source
# File lib/meta_info/document.rb, line 38 def og_attr(name) search_meta('property', /^og:#{name}$/i, 'content') end
search_meta(attribute, regexp, value_key)
click to toggle source
# File lib/meta_info/document.rb, line 54 def search_meta(attribute, regexp, value_key) doc.css('meta').each do |m| if m.attribute(attribute) && m.attribute(attribute).to_s.match(regexp) return m.attribute(value_key).to_s end end return false end
title()
click to toggle source
# File lib/meta_info/document.rb, line 14 def title get_attr("title") || meta_title end
twitter_attr(name)
click to toggle source
# File lib/meta_info/document.rb, line 34 def twitter_attr(name) search_meta('name', /^twitter:#{name}$/i, 'content') end
valid?()
click to toggle source
# File lib/meta_info/document.rb, line 26 def valid? title && description != false end