nokogiri_schematron_builder 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24f02a10a7493555198daad2202e63376d1e7bbc9af7b91c79318d4c36239c41
4
- data.tar.gz: 9bf5e2b1ac5e0e6a7949bcef45331e8277a823a13cecb5b8c387ccdadee41c34
3
+ metadata.gz: 5944b8a8e4f2284b7b08412cb7727ca4866778292df231ff57a15ff5aa3209fc
4
+ data.tar.gz: b08518566add564d4342853dd1e40e7d2aa7f021e5ccf9543005b04b843d999a
5
5
  SHA512:
6
- metadata.gz: babe38706760546dfbb24513d9a9453c4156769837279c75967a253e8fd5bea48fb101c014c25299973e960d59d280dc5de5413a2ce63aac80de9a64320a4928
7
- data.tar.gz: 175f4df54fa99d350c8823519c3d22c68be65c5912f98bf4605b949580bbd803590ffe703a6aa662d4a47509aff00a0439b65ca5b455e9f8c05e94b908b0bce7
6
+ metadata.gz: 594def9e1f4508e38458805e3592488f4c89433fa10a005030e7791714ff47b58b2bfe22fcc5eef93aa97b6eb8cac7b3d446dcc4a4064c34ea16166e43e15f98
7
+ data.tar.gz: cad2079f775c8580173b26e26457a453c8e8503fa21dcb3bab8144c3aeee3aa6bbfc832bcd3d556660a223a09e943b7202e576c374ff21796fd9ea5ae552a2f2
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [0.1.1] - 2019-11-07
6
+
7
+ ### Added
8
+ - This `CHANGELOG.md` file.
9
+
10
+ ### Changed
11
+ - Rename attribute from `Nokogiri::XML::Schematron::Pattern#name` to `Nokogiri::XML::Schematron::Pattern#title`.
12
+ - Map `Nokogiri::XML::Schematron::Pattern#title` attribute to `<sch:title>` XML element (previously `@name` XML attribute).
13
+ - Map `Nokogiri::XML::Schematron::Schema#title` attribute to `<sch:title>` XML element (previously, `@title` XML attribute).
14
+
15
+ ## [0.1.0] - 2019-10-20
16
+
17
+ ### Added
18
+ - Initial commit.
data/README.md CHANGED
@@ -31,7 +31,7 @@ Create the schema using the domain-specific language:
31
31
  ```ruby
32
32
  schema = Nokogiri::XML::Schematron::Schema.new(title: "Example schema") do
33
33
  ns(prefix: "ex", uri: "http://example.com/ns#")
34
- pattern(name: "Example pattern") do
34
+ pattern(title: "Example pattern") do
35
35
  rule(context: "/") do
36
36
  assert(test: "count(ex:A) &gt;= 1", message: "element \"ex:A\" is REQUIRED")
37
37
  end
@@ -50,7 +50,7 @@ Or, equivalently:
50
50
  ```ruby
51
51
  schema = Nokogiri::XML::Schematron::Schema.new(title: "Example schema") do
52
52
  ns(prefix: "ex", uri: "http://example.com/ns#")
53
- pattern(name: "Example pattern") do
53
+ pattern(title: "Example pattern") do
54
54
  context("/") do
55
55
  require("ex:A") do
56
56
  permit("ex:B") do
@@ -78,9 +78,11 @@ The result is:
78
78
 
79
79
  ```xml
80
80
  <?xml version="1.0" encoding="UTF-8"?>
81
- <sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron" title="Example schema">
81
+ <sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron">
82
+ <sch:title>Example schema</sch:title>
82
83
  <sch:ns prefix="ex" uri="http://example.com/ns#"/>
83
- <sch:pattern name="Example pattern">
84
+ <sch:pattern>
85
+ <sch:title>Example pattern</sch:title>
84
86
  <sch:rule context="/">
85
87
  <sch:assert test="count(ex:A) &gt;= 1">element "ex:A" is REQUIRED</sch:assert>
86
88
  </sch:rule>
@@ -10,19 +10,19 @@ module Nokogiri
10
10
  #
11
11
  # For example:
12
12
  #
13
- # pattern = Nokogiri::XML::Schematron::Pattern.new(nil, id: "pattern1", name: "Example pattern")
14
- # # => #<Nokogiri::XML::Schematron::Pattern:0x00007f8486a71f18 @parent=nil, @children=[], @options={:id=>"pattern1", :name=>"Example pattern"}>
13
+ # pattern = Nokogiri::XML::Schematron::Pattern.new(nil, id: "pattern1", title: "Example pattern")
14
+ # # => #<Nokogiri::XML::Schematron::Pattern:0x00007f8486a71f18 @parent=nil, @children=[], @options={:id=>"pattern1", :title=>"Example pattern"}>
15
15
  # pattern.to_builder.to_xml
16
- # # => "<?xml version=\"1.0\"?>\n<sch:pattern xmlns:sch=\"http://purl.oclc.org/dsdl/schematron\" id=\"pattern1\" name=\"Example pattern\"/>\n"
16
+ # # => "<?xml version=\"1.0\"?>\n<sch:pattern xmlns:sch=\"http://purl.oclc.org/dsdl/schematron\" id=\"pattern1\">\n <sch:title>Example pattern</sch:title>\n</sch:pattern>\n"
17
17
  #
18
18
  class Pattern < Nokogiri::XML::Schematron::Base
19
19
  # @!attribute [rw] id
20
20
  # @return [String] the value of the +@id+ XML attribute.
21
21
  attribute :id
22
22
 
23
- # @!attribute [rw] name
24
- # @return [String] the value of the +@name+ XML attribute.
25
- attribute :name
23
+ # @!attribute [rw] title
24
+ # @return [String] the value of the +@title+ XML element.
25
+ attribute :title
26
26
 
27
27
  # @!method context(context, **options, &block)
28
28
  # Create a new +Node::Context+ object.
@@ -132,13 +132,21 @@ module Nokogiri
132
132
  protected
133
133
 
134
134
  def build!(xml)
135
- xml["sch"].send(:pattern, %w(id name).inject(xmlns) { |acc, method_name|
135
+ xml["sch"].send(:pattern, %w(id).inject(xmlns) { |acc, method_name|
136
136
  unless (s = send(method_name.to_sym)).nil?
137
137
  acc[method_name.to_s] = s
138
138
  end
139
139
 
140
140
  acc
141
141
  }) do
142
+ %w(title).each do |method_name|
143
+ unless (s = send(method_name.to_sym)).nil?
144
+ xml["sch"].send(method_name.to_sym, xmlns) do
145
+ xml.text(s)
146
+ end
147
+ end
148
+ end
149
+
142
150
  super(xml)
143
151
  end
144
152
 
@@ -13,7 +13,7 @@ module Nokogiri
13
13
  # schema = Nokogiri::XML::Schematron::Schema.new(id: "schema1", title: "Example schema")
14
14
  # # => #<Nokogiri::XML::Schematron::Schema:0x00007fa1fb9e3b68 @parent=nil, @children=[], @options={:id=>"schema1", :title=>"Example schema"}>
15
15
  # schema.to_builder.to_xml
16
- # # => "<?xml version=\"1.0\"?>\n<sch:schema xmlns:sch=\"http://purl.oclc.org/dsdl/schematron\" id=\"schema1\" title=\"Example schema\"/>\n"
16
+ # # => "<?xml version=\"1.0\"?>\n<sch:schema xmlns:sch=\"http://purl.oclc.org/dsdl/schematron\" id=\"schema1\">\n <sch:title>Example schema</sch:title>\n</sch:schema>\n"
17
17
  #
18
18
  class Schema < Nokogiri::XML::Schematron::Base
19
19
  # @!attribute [rw] id
@@ -21,7 +21,7 @@ module Nokogiri
21
21
  attribute :id
22
22
 
23
23
  # @!attribute [rw] title
24
- # @return [String] the value of the +@title+ XML attribute.
24
+ # @return [String] the value of the +@title+ XML element.
25
25
  attribute :title
26
26
 
27
27
  # @!method ns(**options, &block)
@@ -47,7 +47,7 @@ module Nokogiri
47
47
  # Create a new +Pattern+ object.
48
48
  # @param options [Hash<Symbol, Object>] the options.
49
49
  # @option options [String] :id the value of the +@id+ XML attribute.
50
- # @option options [String] :name the value of the +@name+ XML attribute.
50
+ # @option options [String] :title the value of the +@title+ XML element.
51
51
  # @yieldparam pattern [Nokogiri::XML::Schematron::Pattern] the internal representation of the +<sch:pattern>+ XML element.
52
52
  # @yieldreturn [void]
53
53
  # @return [Nokogiri::XML::Schematron::Pattern] the +Pattern+ object.
@@ -57,7 +57,7 @@ module Nokogiri
57
57
  #
58
58
  # @param options [Hash<Symbol, Object>] the options.
59
59
  # @option options [#to_s] :id the value of the +@id+ XML attribute.
60
- # @option options [#to_s] :title the value of the +@title+ XML attribute.
60
+ # @option options [#to_s] :title the value of the +@title+ XML element.
61
61
  # @yieldparam schema [Nokogiri::XML::Schematron::Schema] the internal representation of the +<sch:schema>+ XML element.
62
62
  # @yieldreturn [void]
63
63
  def initialize(**options, &block)
@@ -67,13 +67,21 @@ module Nokogiri
67
67
  protected
68
68
 
69
69
  def build!(xml)
70
- xml["sch"].send(:schema, %w(id title).inject(xmlns) { |acc, method_name|
70
+ xml["sch"].send(:schema, %w(id).inject(xmlns) { |acc, method_name|
71
71
  unless (s = send(method_name.to_sym)).nil?
72
72
  acc[method_name.to_s] = s
73
73
  end
74
74
 
75
75
  acc
76
76
  }) do
77
+ %w(title).each do |method_name|
78
+ unless (s = send(method_name.to_sym)).nil?
79
+ xml["sch"].send(method_name.to_sym, xmlns) do
80
+ xml.text(s)
81
+ end
82
+ end
83
+ end
84
+
77
85
  super(xml)
78
86
  end
79
87
 
@@ -1,7 +1,7 @@
1
1
  module Nokogiri
2
2
  module XML
3
3
  module Schematron
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nokogiri_schematron_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Borkum
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-21 00:00:00.000000000 Z
11
+ date: 2019-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -61,6 +61,7 @@ extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
63
  - ".gitignore"
64
+ - CHANGELOG.md
64
65
  - Gemfile
65
66
  - LICENSE.txt
66
67
  - README.md