validate-website 1.5.7 → 1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.md +11 -4
- data/lib/validate_website/core.rb +1 -1
- data/lib/validate_website/crawl.rb +6 -0
- data/lib/validate_website/option_parser.rb +1 -0
- data/lib/validate_website/static.rb +5 -0
- data/lib/validate_website/validator.rb +4 -3
- data/lib/validate_website/version.rb +1 -1
- data/man/man1/validate-website-static.1 +9 -3
- data/man/man1/validate-website.1 +3 -3
- data/test/crawler_test.rb +7 -7
- data/test/static_test.rb +12 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b113a6d49dafd4312e90c91b90ef823a7783b2a6
         | 
| 4 | 
            +
              data.tar.gz: 81f4d59065bd48c9a2e1deb8fc13454c351269fd
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0653c9131b9f42af196335d230f80edd08429f5e7405034404e7632d8df71523491c9445e28da1a5aecd5462af23390db3346bbb39b3748042a18ebd060d1e99
         | 
| 7 | 
            +
              data.tar.gz: 557e7164a448d99ebda6256f7fb73157a785f509844fc9b02878fafcc103334fbb80737676765d00da27ed3ea47cca3eeccbfc88a99aed5b45cd845465e1fe81
         | 
    
        data/History.md
    CHANGED
    
    | @@ -1,6 +1,13 @@ | |
| 1 1 |  | 
| 2 | 
            +
            v1.5.8 / 2016-06-27
         | 
| 3 | 
            +
            ===================
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              * Update manpages
         | 
| 6 | 
            +
              * Exclude urls on static crawl
         | 
| 7 | 
            +
              * Fix warning: instance variable not initialized
         | 
| 8 | 
            +
             | 
| 2 9 | 
             
            v1.5.7 / 2016-06-13
         | 
| 3 | 
            -
             | 
| 10 | 
            +
            ===================
         | 
| 4 11 |  | 
| 5 12 | 
             
              * Fix JRuby CI build
         | 
| 6 13 | 
             
              * Update JRuby and other rubies on Travis
         | 
| @@ -8,7 +15,7 @@ v1.5.7 / 2016-06-13 | |
| 8 15 | 
             
              * Add env variable VALIDATOR_NU_URL support
         | 
| 9 16 |  | 
| 10 17 | 
             
            v1.5.6 / 2016-03-02
         | 
| 11 | 
            -
             | 
| 18 | 
            +
            ===================
         | 
| 12 19 |  | 
| 13 20 | 
             
              * Fix error with redirect and extract images (see #16)
         | 
| 14 21 | 
             
              * Display version number
         | 
| @@ -16,12 +23,12 @@ v1.5.6 / 2016-03-02 | |
| 16 23 | 
             
              * Updates deps
         | 
| 17 24 |  | 
| 18 25 | 
             
            v1.5.4 / 2015-12-08
         | 
| 19 | 
            -
             | 
| 26 | 
            +
            ===================
         | 
| 20 27 |  | 
| 21 28 | 
             
              * Fix URI must be ascii only error
         | 
| 22 29 |  | 
| 23 30 | 
             
            v1.5.3 / 2015-11-08
         | 
| 24 | 
            -
             | 
| 31 | 
            +
            ===================
         | 
| 25 32 |  | 
| 26 33 | 
             
              * Fix test_files on gemspec
         | 
| 27 34 | 
             
              * Use File.expand_path for jruby
         | 
| @@ -17,7 +17,7 @@ module ValidateWebsite | |
| 17 17 | 
             
              # Core class for static or website validation
         | 
| 18 18 | 
             
              class Core
         | 
| 19 19 | 
             
                attr_accessor :site
         | 
| 20 | 
            -
                attr_reader :options, : | 
| 20 | 
            +
                attr_reader :options, :host, :errors_count, :not_founds_count
         | 
| 21 21 |  | 
| 22 22 | 
             
                include ColorfulMessages
         | 
| 23 23 |  | 
| @@ -4,10 +4,16 @@ require 'validate_website/utils' | |
| 4 4 | 
             
            module ValidateWebsite
         | 
| 5 5 | 
             
              # Class for http website validation
         | 
| 6 6 | 
             
              class Crawl < Core
         | 
| 7 | 
            +
                attr_reader :crawler
         | 
| 8 | 
            +
             | 
| 7 9 | 
             
                def initialize(options = {}, validation_type = :crawl)
         | 
| 8 10 | 
             
                  super
         | 
| 9 11 | 
             
                end
         | 
| 10 12 |  | 
| 13 | 
            +
                def history_count
         | 
| 14 | 
            +
                  crawler.history.size
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 11 17 | 
             
                # @param [Hash] options
         | 
| 12 18 | 
             
                #   :color [Boolean] color output (true, false)
         | 
| 13 19 | 
             
                #   :exclude [String] a String used by Regexp.new
         | 
| @@ -117,6 +117,7 @@ module ValidateWebsite | |
| 117 117 | 
             
                    o.string('-p', '--pattern',
         | 
| 118 118 | 
             
                             "Filename pattern (default: #{DEFAULT_OPTIONS[:pattern]})",
         | 
| 119 119 | 
             
                             default: DEFAULT_OPTIONS[:pattern])
         | 
| 120 | 
            +
                    o.regexp('-e', '--exclude', 'Url to exclude (ex: "redirect|news")')
         | 
| 120 121 | 
             
                  end
         | 
| 121 122 | 
             
                end
         | 
| 122 123 | 
             
              end
         | 
| @@ -6,7 +6,10 @@ module ValidateWebsite | |
| 6 6 | 
             
              class Static < Core
         | 
| 7 7 | 
             
                CONTENT_TYPES = ['text/html', 'text/xhtml+xml'].freeze
         | 
| 8 8 |  | 
| 9 | 
            +
                attr_reader :history_count
         | 
| 10 | 
            +
             | 
| 9 11 | 
             
                def initialize(options = {}, validation_type = :static)
         | 
| 12 | 
            +
                  @history_count = 0
         | 
| 10 13 | 
             
                  super
         | 
| 11 14 | 
             
                end
         | 
| 12 15 |  | 
| @@ -19,6 +22,8 @@ module ValidateWebsite | |
| 19 22 | 
             
                  files = Dir.glob(@options[:pattern])
         | 
| 20 23 | 
             
                  files.each do |f|
         | 
| 21 24 | 
             
                    next unless File.file?(f)
         | 
| 25 | 
            +
                    next if @options[:exclude].is_a?(Regexp) && @options[:exclude].match(f)
         | 
| 26 | 
            +
                    @history_count += 1
         | 
| 22 27 | 
             
                    check_static_file(f)
         | 
| 23 28 | 
             
                  end
         | 
| 24 29 | 
             
                  print_status_line(files.size, 0, @not_founds_count, @errors_count)
         | 
| @@ -14,7 +14,7 @@ module ValidateWebsite | |
| 14 14 | 
             
                  attr_accessor :html5_validator_service_url
         | 
| 15 15 | 
             
                end
         | 
| 16 16 |  | 
| 17 | 
            -
                attr_reader :original_doc, :body, :dtd, :doc, :namespace | 
| 17 | 
            +
                attr_reader :original_doc, :body, :dtd, :doc, :namespace
         | 
| 18 18 |  | 
| 19 19 | 
             
                ##
         | 
| 20 20 | 
             
                # @param [Nokogiri::HTML::Document] original_doc
         | 
| @@ -22,12 +22,13 @@ module ValidateWebsite | |
| 22 22 | 
             
                # @param [Regexp] Errors to ignore
         | 
| 23 23 | 
             
                #
         | 
| 24 24 | 
             
                def initialize(original_doc, body, ignore = nil)
         | 
| 25 | 
            +
                  @errors = []
         | 
| 26 | 
            +
                  @document, @dtd_uri = nil
         | 
| 25 27 | 
             
                  @original_doc = original_doc
         | 
| 26 28 | 
             
                  @body = body
         | 
| 27 29 | 
             
                  @ignore = ignore
         | 
| 28 30 | 
             
                  @dtd = @original_doc.internal_subset
         | 
| 29 31 | 
             
                  @namespace = init_namespace(@dtd)
         | 
| 30 | 
            -
                  @errors = []
         | 
| 31 32 | 
             
                end
         | 
| 32 33 |  | 
| 33 34 | 
             
                ##
         | 
| @@ -74,7 +75,7 @@ module ValidateWebsite | |
| 74 75 |  | 
| 75 76 | 
             
                # @return [Array] contain result errors
         | 
| 76 77 | 
             
                def validate(xml_doc, document_body)
         | 
| 77 | 
            -
                  if xsd
         | 
| 78 | 
            +
                  if !xsd.nil?
         | 
| 78 79 | 
             
                    xsd.validate(xml_doc)
         | 
| 79 80 | 
             
                  elsif document_body =~ /^\<!DOCTYPE html\>/i
         | 
| 80 81 | 
             
                    html5_validate(document_body)
         | 
| @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            '\" t
         | 
| 2 2 | 
             
            .\"     Title: validate-website-static
         | 
| 3 3 | 
             
            .\"    Author: [see the "AUTHOR" section]
         | 
| 4 | 
            -
            .\" Generator: DocBook XSL Stylesheets v1. | 
| 5 | 
            -
            .\"      Date:  | 
| 4 | 
            +
            .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
         | 
| 5 | 
            +
            .\"      Date: 06/19/2016
         | 
| 6 6 | 
             
            .\"    Manual: \ \&
         | 
| 7 7 | 
             
            .\"    Source: \ \&
         | 
| 8 8 | 
             
            .\"  Language: English
         | 
| 9 9 | 
             
            .\"
         | 
| 10 | 
            -
            .TH "VALIDATE\-WEBSITE\-S" "1" " | 
| 10 | 
            +
            .TH "VALIDATE\-WEBSITE\-S" "1" "06/19/2016" "\ \&" "\ \&"
         | 
| 11 11 | 
             
            .\" -----------------------------------------------------------------
         | 
| 12 12 | 
             
            .\" * Define some portability stuff
         | 
| 13 13 | 
             
            .\" -----------------------------------------------------------------
         | 
| @@ -48,6 +48,12 @@ http://www\&.example\&.com/) | |
| 48 48 | 
             
            Change filenames pattern (Default: **/*\&.html)
         | 
| 49 49 | 
             
            .RE
         | 
| 50 50 | 
             
            .PP
         | 
| 51 | 
            +
            \fB\-e\fR, \fB\-\-exclude\fR \fIEXCLUDE\fR
         | 
| 52 | 
            +
            .RS 4
         | 
| 53 | 
            +
            Url to exclude (ex:
         | 
| 54 | 
            +
            \fIredirect|news\fR)
         | 
| 55 | 
            +
            .RE
         | 
| 56 | 
            +
            .PP
         | 
| 51 57 | 
             
            \fB\-i\fR, \fB\-\-ignore\fR \fIIGNORE\fR
         | 
| 52 58 | 
             
            .RS 4
         | 
| 53 59 | 
             
            Ignore certain validation errors (ex:
         | 
    
        data/man/man1/validate-website.1
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            '\" t
         | 
| 2 2 | 
             
            .\"     Title: validate-website
         | 
| 3 3 | 
             
            .\"    Author: [see the "AUTHOR" section]
         | 
| 4 | 
            -
            .\" Generator: DocBook XSL Stylesheets v1. | 
| 5 | 
            -
            .\"      Date:  | 
| 4 | 
            +
            .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
         | 
| 5 | 
            +
            .\"      Date: 06/19/2016
         | 
| 6 6 | 
             
            .\"    Manual: \ \&
         | 
| 7 7 | 
             
            .\"    Source: \ \&
         | 
| 8 8 | 
             
            .\"  Language: English
         | 
| 9 9 | 
             
            .\"
         | 
| 10 | 
            -
            .TH "VALIDATE\-WEBSITE" "1" " | 
| 10 | 
            +
            .TH "VALIDATE\-WEBSITE" "1" "06/19/2016" "\ \&" "\ \&"
         | 
| 11 11 | 
             
            .\" -----------------------------------------------------------------
         | 
| 12 12 | 
             
            .\" * Define some portability stuff
         | 
| 13 13 | 
             
            .\" -----------------------------------------------------------------
         | 
    
        data/test/crawler_test.rb
    CHANGED
    
    | @@ -54,7 +54,7 @@ describe ValidateWebsite::Crawl do | |
| 54 54 | 
             
                  _out, _err = capture_io do
         | 
| 55 55 | 
             
                    @validate_website.crawl
         | 
| 56 56 | 
             
                  end
         | 
| 57 | 
            -
                  @validate_website. | 
| 57 | 
            +
                  @validate_website.history_count.must_equal 5
         | 
| 58 58 | 
             
                end
         | 
| 59 59 |  | 
| 60 60 | 
             
                it 'extract link' do
         | 
| @@ -67,7 +67,7 @@ describe ValidateWebsite::Crawl do | |
| 67 67 | 
             
                  _out, _err = capture_io do
         | 
| 68 68 | 
             
                    @validate_website.crawl
         | 
| 69 69 | 
             
                  end
         | 
| 70 | 
            -
                  @validate_website. | 
| 70 | 
            +
                  @validate_website.history_count.must_equal 98
         | 
| 71 71 | 
             
                end
         | 
| 72 72 |  | 
| 73 73 | 
             
                it 'crawl when URLs are not ascii only' do
         | 
| @@ -114,7 +114,7 @@ describe ValidateWebsite::Crawl do | |
| 114 114 | 
             
                    _out, _err = capture_io do
         | 
| 115 115 | 
             
                      @validate_website.crawl
         | 
| 116 116 | 
             
                    end
         | 
| 117 | 
            -
                    @validate_website. | 
| 117 | 
            +
                    @validate_website.history_count.must_equal 5
         | 
| 118 118 | 
             
                  end
         | 
| 119 119 |  | 
| 120 120 | 
             
                  it 'should extract url with single quote' do
         | 
| @@ -125,7 +125,7 @@ describe ValidateWebsite::Crawl do | |
| 125 125 | 
             
                    _out, _err = capture_io do
         | 
| 126 126 | 
             
                      @validate_website.crawl
         | 
| 127 127 | 
             
                    end
         | 
| 128 | 
            -
                    @validate_website. | 
| 128 | 
            +
                    @validate_website.history_count.must_equal 2
         | 
| 129 129 | 
             
                  end
         | 
| 130 130 |  | 
| 131 131 | 
             
                  it 'should extract url with double quote' do
         | 
| @@ -136,7 +136,7 @@ describe ValidateWebsite::Crawl do | |
| 136 136 | 
             
                    _out, _err = capture_io do
         | 
| 137 137 | 
             
                      @validate_website.crawl
         | 
| 138 138 | 
             
                    end
         | 
| 139 | 
            -
                    @validate_website. | 
| 139 | 
            +
                    @validate_website.history_count.must_equal 2
         | 
| 140 140 | 
             
                  end
         | 
| 141 141 |  | 
| 142 142 | 
             
                  it 'should extract url with params' do
         | 
| @@ -147,7 +147,7 @@ describe ValidateWebsite::Crawl do | |
| 147 147 | 
             
                    _out, _err = capture_io do
         | 
| 148 148 | 
             
                      @validate_website.crawl
         | 
| 149 149 | 
             
                    end
         | 
| 150 | 
            -
                    @validate_website. | 
| 150 | 
            +
                    @validate_website.history_count.must_equal 2
         | 
| 151 151 | 
             
                  end
         | 
| 152 152 |  | 
| 153 153 | 
             
                  it 'should not extract invalid urls' do
         | 
| @@ -158,7 +158,7 @@ describe ValidateWebsite::Crawl do | |
| 158 158 | 
             
                    _out, _err = capture_io do
         | 
| 159 159 | 
             
                      @validate_website.crawl
         | 
| 160 160 | 
             
                    end
         | 
| 161 | 
            -
                    @validate_website. | 
| 161 | 
            +
                    @validate_website.history_count.must_equal 1
         | 
| 162 162 | 
             
                  end
         | 
| 163 163 | 
             
                end
         | 
| 164 164 |  | 
    
        data/test/static_test.rb
    CHANGED
    
    | @@ -7,6 +7,18 @@ describe ValidateWebsite::Static do | |
| 7 7 | 
             
                end
         | 
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 | 
            +
              it 'exclude directories' do
         | 
| 11 | 
            +
                pattern = File.join(File.dirname(__FILE__), '**/*.html')
         | 
| 12 | 
            +
                _out, _err = capture_io do
         | 
| 13 | 
            +
                  @validate_website.crawl(pattern: pattern,
         | 
| 14 | 
            +
                                          site: 'http://spkdev.net/',
         | 
| 15 | 
            +
                                          markup: false,
         | 
| 16 | 
            +
                                          not_found: false,
         | 
| 17 | 
            +
                                          exclude: /data|example/)
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
                @validate_website.history_count.must_equal 0
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 10 22 | 
             
              it 'no space in directory name' do
         | 
| 11 23 | 
             
                pattern = File.join(File.dirname(__FILE__), 'example/**/*.html')
         | 
| 12 24 | 
             
                _out, _err = capture_io do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: validate-website
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.5. | 
| 4 | 
            +
              version: 1.5.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Laurent Arnoud
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-06- | 
| 11 | 
            +
            date: 2016-06-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: spidr
         |