class MetaHari::Helpers::Microdata

Attributes

document[R]
url[R]

Public Class Methods

new(document, url) click to toggle source
# File lib/meta_hari/helpers/microdata.rb, line 7
def initialize(document, url)
  @document = document
  @url      = url
end

Public Instance Methods

data(type = 'http://schema.org/Product') click to toggle source
# File lib/meta_hari/helpers/microdata.rb, line 12
def data(type = 'http://schema.org/Product')
  result = array.find { |hash| hash[:type].include? type }
  result && format(result) || {}
end

Protected Instance Methods

array() click to toggle source
# File lib/meta_hari/helpers/microdata.rb, line 29
def array
  @hash ||= items.map(&:to_hash)
end
format(result) click to toggle source
# File lib/meta_hari/helpers/microdata.rb, line 19
def format(result)
  data = result[:properties]
  {
    '@type'       => result[:type] && result[:type].first,
    'name'        => data['name'] && data['name'].first,
    'image'       => data['image'] && data['image'].first,
    'description' => data['description'] && data['description'].first
  }
end
items() click to toggle source
# File lib/meta_hari/helpers/microdata.rb, line 33
def items
  itemscopes = document.search('//*[@itemscope and not(@itemprop)]')
  return [] unless itemscopes
  itemscopes.collect do |itemscope|
    ::Microdata::Item.new(itemscope, url)
  end
end