class Jackasset::AssetsChecker
Attributes
host[R]
num_issues[R]
source_dir[R]
Public Class Methods
call(host: 'http://localhost:8080', source_dir:)
click to toggle source
# File lib/jackasset/assets_checker.rb, line 13 def self.call(host: 'http://localhost:8080', source_dir:) new(host: host, source_dir: source_dir).call end
new(host:, source_dir:)
click to toggle source
# File lib/jackasset/assets_checker.rb, line 7 def initialize(host:, source_dir:) @host = host @source_dir = source_dir @num_issues = 0 end
Public Instance Methods
call()
click to toggle source
# File lib/jackasset/assets_checker.rb, line 17 def call img_urls threads = img_urls.each_with_object([]) do |url, thread_list| next unless url.match?(/\Ahttp/) thread_list << Thread.new { check_url url } end threads.each(&:join) puts "Finished checking #{img_urls.count} URLs and found #{num_issues} issues" end
Private Instance Methods
check_url(url)
click to toggle source
# File lib/jackasset/assets_checker.rb, line 29 def check_url(url) display_result Jackasset::UrlChecker.new(url: url).call end
clean_url(url)
click to toggle source
# File lib/jackasset/assets_checker.rb, line 33 def clean_url(url) cleaned_url = url.sub('src=', '').delete('"').strip # Remove src, quotes, and whitespace cleaned_url.gsub!(/\A\/\//, 'http://') # Set protocol if needed cleaned_url.slice!(/\A\//) # Remove single leading slash cleaned_url.match?(/\Ahttp/) ? cleaned_url : "#{host}/#{cleaned_url}" end
display_result(response)
click to toggle source
# File lib/jackasset/assets_checker.rb, line 40 def display_result(response) msg = " #{response.code} #{response.message} #{response.uri}\n" case response when Net::HTTPSuccess, Net::HTTPRedirection print msg.green else @num_issues += 1 print msg.red end end
img_urls()
click to toggle source
# File lib/jackasset/assets_checker.rb, line 51 def img_urls @img_urls ||= Dir["#{source_dir}/**/*.html"].each_with_object([]) do |path, urls| file_content = File.read path file_content.scan(/src=\"\S*\"/).flatten.each do |src| urls << clean_url(src) end end end