xml_matchers 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34ae6d741334dce12bd706e50e7ee12e7b5dfa26
4
- data.tar.gz: 2f52c6a6a2d9c0c117030b9baed63ba0b15723ed
3
+ metadata.gz: 41c76fc0338e22a37c556788bb60853b81b363cb
4
+ data.tar.gz: 339671558bff1f4204700c43c6b30a57a4b74540
5
5
  SHA512:
6
- metadata.gz: ada0b7bcf8a47ba0d519b762a00795d451a15b3eb4b8364efae6c1487b6f7e72dbea502b098192c68a531cff664c7452d1a75e5fa5bfaed817b445e3f0afcbab
7
- data.tar.gz: e8d4eb5971a721d0981269446b9987a2daa19d0e76d21e17585fb50eaf9ee8fb84b37dbaa2c44c8084c7dd56b44f19d25b4a796c7523ce7b892a4f15c56ae293
6
+ metadata.gz: b6b9413dd4278a80a513324b13c1cdb2a5c7e34e0a4f295d871912a4e49c56185289794955e015bfe5ab19bed85f26fe0c21acf8bd71384080ca625c646de1b3
7
+ data.tar.gz: '031508c09e21a529baa39dac6757b1e9885ee0e894e51994a9d782f7e7f049b7d3bc2d12a81039d45ac38c92958bbebf2cba3d3c9a4d7426c72f701174add22d'
@@ -1,3 +1,3 @@
1
1
  module XmlMatchers
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/xml_matchers.rb CHANGED
@@ -3,19 +3,33 @@ require "xml_matchers/version"
3
3
 
4
4
  module XmlMatchers
5
5
  InvalidSchemaError = Class.new(StandardError)
6
- end
7
6
 
8
- RSpec::Matchers.define :match_xml_schema do |schema_content|
9
- def self.build_schema_for(schema_content)
10
- Nokogiri::XML::Schema(schema_content.to_s)
11
- rescue Nokogiri::XML::SyntaxError
12
- raise XmlMatchers::InvalidSchemaError
7
+ class Assertion
8
+ def self.for(schema_content)
9
+ new(xml_schema: Nokogiri::XML::Schema(schema_content.to_s))
10
+ rescue Nokogiri::XML::SyntaxError
11
+ raise InvalidSchemaError
12
+ end
13
+
14
+ def initialize(xml_schema:)
15
+ @xml_schema = xml_schema
16
+ end
17
+
18
+ def valid?(xml_content)
19
+ xml_document = Nokogiri::XML(xml_content)
20
+ xml_schema.valid?(xml_documet)
21
+ end
22
+
23
+ private
24
+
25
+ attr_reader :xml_schema
13
26
  end
27
+ end
14
28
 
15
- schema = build_schema_for(schema_content)
29
+ RSpec::Matchers.define :match_xml_schema do |schema_content|
30
+ assertion = XmlMatchers::Assertion.for(schema_content)
16
31
 
17
32
  match do |xml|
18
- document = Nokogiri::XML(xml)
19
- schema.valid?(document)
33
+ assertion.valid?(xml)
20
34
  end
21
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xml_matchers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - cored