= W3C Validators Gem README W3C Validators is a Ruby wrapper for the World Wide Web Consortium's online validation services. It supports the markup validator, the feed validator and the CSS validator. === Installation gem sources -a http://gems.github.com gem install alexdunae-w3c_validators === Usage There are three main validator classes available, the W3CValidators::MarkupValidator (used for HTML), the W3CValidators::FeedValidator and the W3CValidators::CSSValidator. Each validator has offers three different validation methods. * +validate_text+ methods take a string * +validate_file+ methods take a path to a file or an IO object * +validate_uri+ methods take a published URL In addition, the W3CValidators::MarkupValidator has a validate_uri_quickly method, which performs a HEAD request against the markup validation service. The Results of this call give an error count but no error details. ==== Using a local validator Each of the three validators allows you to specify a custom path to the validator. You can set your own validator like this: validator = MarkupValidator.new(:validator_uri => 'http://localhost/check') === Examples ==== Example #1: Markup validator, local file require 'w3c_validators' include W3CValidators @validator = MarkupValidator.new # override the DOCTYPE @validator.set_doctype!(:html32) # turn on debugging messages @validator.set_debug!(true) file = File.dirname(__FILE__) + '/fixtures/markup.html' results = @validator.validate_file(fp) if results.errors.length > 0 results.errors.each do |err| puts err.to_s end else puts 'Valid!' end puts 'Debugging messages' results.debug_messages.each do |key, value| puts "#{key}: #{value}" end ==== Example #2: Feed validator, remote file require 'w3c_validators' include W3CValidators @validator = FeedValidator.new results = @validator.validate_uri('http://example.com/feed.xml') if results.errors.length > 0 results.errors.each do |err| puts err.to_s end else puts 'Valid!' end ==== Example #3: CSS validator, text fragment require 'w3c_validators' include W3CValidators @validator = CSSValidator.new results = @validator.validate_text('body { margin: 0px; }') if results.errors.length > 0 results.errors.each do |err| puts err.to_s end else puts 'Valid!' end === Tests Run unit tests using rake test. Note that there is a one second delay between each call to the W3C's validators per their request. === Credits and code Documentation is available at {http://code.dunae.ca/w3c_validators}[http://code.dunae.ca/w3c_validators]. Source is available on {GitHub}[https://github.com/alexdunae/w3c-validators] Written by Alex Dunae ({dunae.ca}[http://dunae.ca/], e-mail 'code' at the same domain), 2007. Thanks to {Ryan King}[http://theryanking.com/] for creating the 0.9.2 update. Thanks to {Ryan King}[http://theryanking.com/], {Jonathan Julian}[http://jonathanjulian.org/] and Sylvain LaFleur for creating the 0.9.3 update.