Class: Nanoc::Extra::LinkCollector
- Inherits:
-
Object
- Object
- Nanoc::Extra::LinkCollector
- Defined in:
- lib/nanoc/extra/link_collector.rb
Constant Summary
- URI_ATTRS =
{ 'a' => :href, 'audio' => :src, 'form' => :action, 'iframe' => :src, 'img' => :src, 'link' => :href, 'script' => :src, 'video' => :src }
Instance Method Summary (collapse)
-
- (Boolean) external_href?(href)
-
- (Object) filenames_per_href
-
- (Object) filenames_per_resource_uri
-
- (Object) hrefs_in_file(filename)
-
- (LinkCollector) initialize(filenames, mode = nil)
constructor
A new instance of LinkCollector.
-
- (Object) resource_uris_in_file(filename)
Constructor Details
- (LinkCollector) initialize(filenames, mode = nil)
Returns a new instance of LinkCollector
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/nanoc/extra/link_collector.rb', line 18 def initialize(filenames, mode = nil) Nanoc::Extra::JRubyNokogiriWarner.check_and_warn @filenames = filenames @filter = case mode when nil ->(_h) { true } when :external ->(h) { external_href?(h) } when :internal ->(h) { !external_href?(h) } else raise ArgumentError, 'Expected mode argument to be :internal, :external or nil' end end |
Instance Method Details
- (Boolean) external_href?(href)
59 60 61 |
# File 'lib/nanoc/extra/link_collector.rb', line 59 def external_href?(href) href =~ %r{^(\/\/|[a-z\-]+:)} end |
- (Object) filenames_per_href
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/nanoc/extra/link_collector.rb', line 35 def filenames_per_href require 'nokogiri' filenames_per_href = {} @filenames.each do |filename| hrefs_in_file(filename).each do |href| filenames_per_href[href] ||= Set.new filenames_per_href[href] << filename end end filenames_per_href end |
- (Object) filenames_per_resource_uri
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/nanoc/extra/link_collector.rb', line 47 def filenames_per_resource_uri require 'nokogiri' filenames_per_resource_uri = {} @filenames.each do |filename| resource_uris_in_file(filename).each do |resouce_uri| filenames_per_resource_uri[resouce_uri] ||= Set.new filenames_per_resource_uri[resouce_uri] << filename end end filenames_per_resource_uri end |
- (Object) hrefs_in_file(filename)
63 64 65 |
# File 'lib/nanoc/extra/link_collector.rb', line 63 def hrefs_in_file(filename) uris_in_file filename, %w(a img) end |
- (Object) resource_uris_in_file(filename)
67 68 69 |
# File 'lib/nanoc/extra/link_collector.rb', line 67 def resource_uris_in_file(filename) uris_in_file filename, %w(audio form img iframe link script video) end |