Class: Webmention::Verification

Inherits:
Object
  • Object
show all
Defined in:
lib/webmention/verification.rb

Instance Method Summary collapse

Constructor Details

#initialize(source_url, target_url, vouch_url: nil) ⇒ Verification

Create a new Webmention::Verification.

Parameters:

  • source_url (Url)

    An URL representing a source document.

  • target_url (Url)

    An URL representing a target document.

  • vouch_url (Url) (defaults to: nil)

    An URL representing a document vouching for the source document. See indieweb.org/Vouch for additional details.



14
15
16
17
18
# File 'lib/webmention/verification.rb', line 14

def initialize(source_url, target_url, vouch_url: nil)
  @source_url = source_url
  @target_url = target_url
  @vouch_url = vouch_url
end

Instance Method Details

#inspectString

:nocov:

Returns:

  • (String)


22
23
24
25
26
27
# File 'lib/webmention/verification.rb', line 22

def inspect
  "#<#{self.class}:#{format("%#0x", object_id)} " \
    "source_url: #{source_url} " \
    "target_url: #{target_url} " \
    "vouch_url: #{vouch_url}>"
end

#source_mentions_target?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/webmention/verification.rb', line 31

def source_mentions_target?
  @source_mentions_target ||= mentioned_urls(source_url.response).any?(target_url.to_s)
end

#verified?Boolean

Returns:

  • (Boolean)


36
37
38
39
40
# File 'lib/webmention/verification.rb', line 36

def verified?
  return source_mentions_target? unless verify_vouch?

  source_mentions_target? && vouch_mentions_source?
end

#verify_vouch?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/webmention/verification.rb', line 43

def verify_vouch?
  !vouch_url.nil? && !vouch_url.to_s.strip.empty?
end

#vouch_mentions_source?Boolean

Returns:

  • (Boolean)


48
49
50
51
# File 'lib/webmention/verification.rb', line 48

def vouch_mentions_source?
  @vouch_mentions_source ||=
    verify_vouch? && mentioned_domains(vouch_url.response).any?(source_url.uri.host)
end