Sha256: e59ccb0f0565d0f71ccb27b4690d3e045c9d32666ff15960d80038bda1d4948b

Contents?: true

Size: 393 Bytes

Versions: 3

Compression:

Stored size: 393 Bytes

Contents

require "nokogiri"

class TemplateValidator < ActiveModel::Validator
  @@template_rng = File.join(Tim::Engine.root, "config/schemas", "tdl.rng")

  def validate(record)
    rng = Nokogiri::XML::RelaxNG(File.read(@@template_rng))
    xml = Nokogiri::XML(record.xml) { |config| config.strict }

    rng.validate(xml).each do |error|
      record.errors.add :xml, error.message
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tim-0.1.2 app/validators/template_validator.rb
tim-0.1.1 app/validators/template_validator.rb
tim-0.0.1 app/validators/template_validator.rb