Class: ValidateWebsite::Validator

Inherits:
Object
  • Object
show all
Extended by:
ValidatorClassMethods
Defined in:
lib/validate_website/validator.rb

Overview

Document validation from DTD or XSD (webservice for html5)

Constant Summary collapse

XHTML_PATH =
File.expand_path('../../../data/schemas', __FILE__)

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ValidatorClassMethods

tidy, validator_uri

Constructor Details

#initialize(original_doc, body, ignore: nil, html5_validator: :tidy) ⇒ Validator

Returns a new instance of Validator.

Parameters:

  • original_doc (Nokogiri::HTML::Document)
  • The (String)

    raw HTTP response body of the page

  • Errors (Regexp)

    to ignore

  • html5_validator (Symbol) (defaults to: :tidy)

    default offline :tidy fallback webservice :nu



44
45
46
47
48
49
50
51
52
53
# File 'lib/validate_website/validator.rb', line 44

def initialize(original_doc, body, ignore: nil, html5_validator: :tidy)
  @errors = []
  @document, @dtd_uri = nil
  @original_doc = original_doc
  @body = body
  @ignore = ignore
  @html5_validator = html5_validator
  @dtd = @original_doc.internal_subset
  @namespace = find_namespace(@dtd)
end

Class Attribute Details

.html5_validator_service_urlObject

Returns the value of attribute html5_validator_service_url.



15
16
17
# File 'lib/validate_website/validator.rb', line 15

def html5_validator_service_url
  @html5_validator_service_url
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



36
37
38
# File 'lib/validate_website/validator.rb', line 36

def body
  @body
end

#docObject (readonly)

Returns the value of attribute doc.



36
37
38
# File 'lib/validate_website/validator.rb', line 36

def doc
  @doc
end

#dtdObject (readonly)

Returns the value of attribute dtd.



36
37
38
# File 'lib/validate_website/validator.rb', line 36

def dtd
  @dtd
end

#html5_validatorObject (readonly)

Returns the value of attribute html5_validator.



36
37
38
# File 'lib/validate_website/validator.rb', line 36

def html5_validator
  @html5_validator
end

#namespaceObject (readonly)

Returns the value of attribute namespace.



36
37
38
# File 'lib/validate_website/validator.rb', line 36

def namespace
  @namespace
end

#original_docObject (readonly)

Returns the value of attribute original_doc.



36
37
38
# File 'lib/validate_website/validator.rb', line 36

def original_doc
  @original_doc
end

Class Method Details

.xsd(namespace) ⇒ Object



69
70
71
72
# File 'lib/validate_website/validator.rb', line 69

def self.xsd(namespace)
  return unless namespace
  @xsd_schemas[namespace] if @xsd_schemas.key? namespace
end

Instance Method Details

#errorsArray

Returns of errors.

Returns:

  • (Array)

    of errors



63
64
65
66
# File 'lib/validate_website/validator.rb', line 63

def errors
  @errors.map!(&:to_s)
  @ignore ? @errors.reject { |e| @ignore =~ e } : @errors
end

#valid?Boolean

Returns:

  • (Boolean)


57
58
59
60
# File 'lib/validate_website/validator.rb', line 57

def valid?
  find_errors
  errors.empty?
end