Class: Litbuild::UrlVisitor

Inherits:
Visitor
  • Object
show all
Defined in:
lib/litbuild/url_visitor.rb

Overview

This is a simple Visitor that just accumulates the best download URL for a set of Package blueprints.

Instance Method Summary collapse

Methods inherited from Visitor

#in_subdirectory, #visit_commands, #visit_narrative, #visit_section

Constructor Details

#initializeUrlVisitor

Returns a new instance of UrlVisitor.



9
10
11
12
# File 'lib/litbuild/url_visitor.rb', line 9

def initialize
  super
  @urls = []
end

Instance Method Details

#download_url(pkg) ⇒ Object



18
19
20
21
22
23
# File 'lib/litbuild/url_visitor.rb', line 18

def download_url(pkg)
  url = pkg.directives['download-url'] ||
        pkg.directives['project-url'] ||
        pkg.directives['scm-url']
  url ? url.first : "#{name}: no download URL known"
end

#urlsObject



25
26
27
# File 'lib/litbuild/url_visitor.rb', line 25

def urls
  @urls.compact.flatten.sort.uniq
end

#visit_package(package:) ⇒ Object



14
15
16
# File 'lib/litbuild/url_visitor.rb', line 14

def visit_package(package:)
  @urls << download_url(package)
end