class AmazonFeedValidator::FeedValidator

Constants

XSDDIR

Attributes

errors[R]
feed[R]
options[R]

Public Class Methods

new(feed, **options) click to toggle source
# File lib/amazon_feed_validator/feed_validator.rb, line 7
def initialize(feed, **options)
  @feed = Nokogiri::XML feed
  @options = Hashie::Mash.new options
end

Public Instance Methods

validate() click to toggle source
# File lib/amazon_feed_validator/feed_validator.rb, line 12
def validate
  @errors = Nokogiri::XML::Schema(xsd_file(options.name))
    .validate(feed)
    .map(&:to_s)
  errors.empty?
end

Private Instance Methods

sanitize_name(name) click to toggle source
# File lib/amazon_feed_validator/feed_validator.rb, line 31
def sanitize_name(name)
  name ||= 'Product.xsd'
  name = "#{name}.xsd" unless name.include? '.xsd'
  name
end
xsd_file(name) click to toggle source
# File lib/amazon_feed_validator/feed_validator.rb, line 21
def xsd_file(name)
  file = File.read File.expand_path sanitize_name(name), XSDDIR

  # Replace schema location references with ones pointing to local xsd
  # files
  file.gsub! \
    'schemaLocation="',
    "schemaLocation=\"#{XSDDIR}/"
end