Module: Middleman::Xmlvalidator
- Defined in:
- lib/middleman/xmlvalidator/version.rb,
lib/middleman/xmlvalidator/extension.rb
Constant Summary collapse
- VERSION =
"0.2.1"- PACKAGE =
"middleman-xmlvalidator"
Class Method Summary collapse
- .registered(app) ⇒ Object (also: included)
- .validate(document_path, schema_path) ⇒ Object
- .validate_file(file_path) ⇒ Object
Class Method Details
.registered(app) ⇒ Object Also known as: included
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/middleman/xmlvalidator/extension.rb', line 4 def registered(app) require 'nokogiri' app.after_build do |builder| puts "", "Validating with NokoGiri", "" Dir.glob("build/**/*.{xml,rss}").each do |full_path| Xmlvalidator.validate_file(full_path) end puts "", "Validation with NokoGiri " + "Complete".green, "" end end |
.validate(document_path, schema_path) ⇒ Object
32 33 34 35 36 |
# File 'lib/middleman/xmlvalidator/extension.rb', line 32 def self.validate(document_path, schema_path) schema = Nokogiri::XML::Schema(File.read(schema_path)) document = Nokogiri::XML(File.read(document_path)) schema.validate(document) end |
.validate_file(file_path) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/middleman/xmlvalidator/extension.rb', line 21 def self.validate_file(file_path) file_name = file_path.split('/').last validator_file = file_name.gsub(/\.\w*/, '.xsd') schema_path = File.join(File.dirname(__FILE__), '/schema/') schema_path += File.exists?(schema_path + validator_file) ? validator_file : (file_name.end_with?('.rss') ? "RSSSchema.xsd" : "XMLSchema.xsd") errors = Xmlvalidator.validate(file_path, schema_path) puts " validating".blue + " #{file_path}....." + (errors.size == 0 ? "COMPLETE".green : "ERRORS FOUND".red) errors.each { |error| puts " " + error. } end |