class MicroMicro::Relationship

Attributes

node[R]

Public Class Methods

new(node) click to toggle source

@param node [Nokogiri::XML::Element]

# File lib/micro_micro/relationship.rb, line 6
def initialize(node)
  @node = node
end
nodes_from(context) click to toggle source

@param context [Nokogiri::HTML::Document, Nokogiri::XML::Element] @return [Nokogiri::XML::NodeSet]

# File lib/micro_micro/relationship.rb, line 65
def self.nodes_from(context)
  context.css('[href][rel]:not([rel=""])').reject { |node| (node.ancestors.map(&:name) & Document.ignored_node_names).any? }
end
relationships_from(context) click to toggle source

@param context [Nokogiri::HTML::Document, Nokogiri::XML::Element] @return [Array<MicroMicro::Relationship>]

# File lib/micro_micro/relationship.rb, line 71
def self.relationships_from(context)
  nodes_from(context).map { |node| new(node) }
end

Public Instance Methods

href() click to toggle source

@return [String]

# File lib/micro_micro/relationship.rb, line 11
def href
  @href ||= node['href']
end
hreflang() click to toggle source

@return [String, nil]

# File lib/micro_micro/relationship.rb, line 16
def hreflang
  @hreflang ||= node['hreflang']&.strip
end
inspect() click to toggle source

@return [String]

# File lib/micro_micro/relationship.rb, line 21
def inspect
  format(%(#<#{self.class.name}:%#0x href: #{href.inspect}, rels: #{rels.inspect}>), object_id)
end
media() click to toggle source

@return [String, nil]

# File lib/micro_micro/relationship.rb, line 26
def media
  @media ||= node['media']&.strip
end
rels() click to toggle source

@return [Array<String>]

# File lib/micro_micro/relationship.rb, line 44
def rels
  @rels ||= node['rel'].split.uniq.sort
end
text() click to toggle source

@return [String]

# File lib/micro_micro/relationship.rb, line 49
def text
  @text ||= node.text
end
title() click to toggle source

@return [String, nil]

# File lib/micro_micro/relationship.rb, line 54
def title
  @title ||= node['title']&.strip
end
to_h() click to toggle source

@return [Hash{Symbol => String}]

# File lib/micro_micro/relationship.rb, line 31
def to_h
  {
    href: href,
    rels: rels,
    hreflang: hreflang,
    media: media,
    title: title,
    type: type,
    text: text
  }.select { |_, value| value.present? }
end
type() click to toggle source

@return [String, nil]

# File lib/micro_micro/relationship.rb, line 59
def type
  @type ||= node['type']&.strip
end