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