class Rack::RackSeo::Summarizer

Public Class Methods

extract_description(document, selector) click to toggle source
# File lib/rack-seo/summarizer.rb, line 5
def extract_description(document, selector)
  sanitize_meta_description get_description(document, selector)
end
extract_keywords(document, selector) click to toggle source
# File lib/rack-seo/summarizer.rb, line 9
def extract_keywords(document, selector)
  sanitize_meta_keywords get_keywords(document, selector)
end

Private Class Methods

get_description(document, selector) click to toggle source
# File lib/rack-seo/summarizer.rb, line 15
def self.get_description(document, selector)
  get_selected_elements(document, selector).map {|element|
    element.inner_text
  }.join(' ').summarize(:ratio => 1).strip
end
get_keywords(document, selector) click to toggle source
# File lib/rack-seo/summarizer.rb, line 21
def self.get_keywords(document, selector)
  get_selected_elements(document, selector).map {|element|
    element.inner_text
  }.join(' ').summarize(:topics => true).last
end
get_selected_elements(document, selector) click to toggle source
# File lib/rack-seo/summarizer.rb, line 27
def self.get_selected_elements(document, selector)
  begin
    elements = document.css(selector) 
  rescue Nokogiri::CSS::SyntaxError => e
    document.css('body')
  end

  if elements.nil? || elements.empty? 
    document.css('body')
  else
    elements
  end
end