Sha256: 692f5766b9a71d3f9431708be860054d517de317a6555bb4cf3224189c3b2fd9

Contents?: true

Size: 1.33 KB

Versions: 10

Compression:

Stored size: 1.33 KB

Contents

class ReportCommand
  def self.start(opts)
    
    if opts[:output]
      options = opts.to_hash.delete_if { |k, v| v.nil? || k == :url}
      options[:quiet] = !opts[:verbose]

      @crawler = CobwebCrawler.new({:cache_type => :full, :raise_exceptions => true}.merge(options))

      columns = nil 

      CSV.open(options[:output], "wb", :force_quotes => true) do |csv|
        statistics = @crawler.crawl(options[:url]) do |page|
          puts "Reporting on #{page[:url]}"
          @doc = page[:body]


          page["link_rel"] = scope.link_tag_with_rel("canonical")["href"]
          page["title"] = scope.head_tag.title_tag.contents
          page["description"] = scope.meta_tag_with_name("description")["content"]
          page["keywords"] = scope.meta_tag_with_name("keywords")["content"]
          page["img tag count"] = scope.img_tags.count
          page["scripts in body"] = scope.body_tag.script_tags.count
          page["img without alt count"] = scope.img_tags.select{|node| node[:alt].nil? || node[:alt].strip().empty?}.count
          page["img alt"] = scope.img_tags_with_alt.map{|node| node[:alt]}.uniq


          if !columns
            columns = page.keys.reject{|k| k==:body || k==:links}
            csv << columns.map{|k| k.to_s}
          end
          csv << columns.map{|k| page[k]}
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
cobweb-1.0.22 lib/report_command.rb
cobweb-1.0.21 lib/report_command.rb
cobweb-1.0.20 lib/report_command.rb
cobweb-1.0.19 lib/report_command.rb
cobweb-1.0.18 lib/report_command.rb
cobweb-1.0.17 lib/report_command.rb
cobweb-1.0.16 lib/report_command.rb
cobweb-1.0.15 lib/report_command.rb
cobweb-1.0.12 lib/report_command.rb
cobweb-1.0.11 lib/report_command.rb