relaton-cli 1.20.7 → 1.20.8

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: 183e8f10078f69d3bccf4715a4261078289cefda0bf3f4d214ab8e42def0d110
4
- data.tar.gz: 769c08f94dfd4c7adc4be3d807028783c3ed40423d8e1ecef1d573d9387ec4af
3
+ metadata.gz: 55ccde87852cdba9989932b8e25ae82aef8a474d841badb1116d22d24923a029
4
+ data.tar.gz: 9f271487d15f55e0fbdc83bb73a3bb0547ff19c2cd192416cbe652d73e282559
5
5
  SHA512:
6
- metadata.gz: ce4cb92a7ebb62bae5754fb5ab6cd4d3ce64b630d355a88264167881ddd49a858326e15ea263fc4e4933137b5ea55fffbeee36084cde7f9bd75cd4c0958ad293
7
- data.tar.gz: '069dbbf09d2a6b6989950a521d8855abc5fe4ff8adf81f0ca0f6e4c253442e8dcb1851a1349996e2c6d314cfbb2288219c69ed69c8aba2f2a845d4436b739f17'
6
+ metadata.gz: 8d01e607b7fa05154f558ff78122a71834f18da5493eb5a632eefff5faeab78015d64a2c7ed214d50800f6cdb47bc2133573674d1c23976acdb98ec586b71505
7
+ data.tar.gz: a3f5d64b7a11687520f3e27d62d9b094aa4f5dbe017bc081e237636c50f83c434712ffafb865d1ac799dbbbdae7c034ad0a6c5c8bd76f13624e5317d08c5b8d2
@@ -61,10 +61,10 @@ module Relaton
61
61
  end
62
62
 
63
63
  ret = "<relaton-collection #{collection_type}>"
64
- ret += "<title>#{title}</title>" if title
64
+ ret += "<title>#{xml_escape(title)}</title>" if title
65
65
  if author
66
66
  ret += "<contributor><role type='author'/><organization><name>"\
67
- "#{author}</name></organization></contributor>"
67
+ "#{xml_escape(author)}</name></organization></contributor>"
68
68
  end
69
69
  unless items.empty?
70
70
  items.each do |item|
@@ -134,5 +134,13 @@ module Relaton
134
134
  end
135
135
  end
136
136
  end
137
+
138
+ # Escape bare & in content for XML serialization, leaving already-encoded
139
+ # entity references (&amp;, &#123;, &#x1f;) and inline markup (<em> etc.)
140
+ # untouched. This prevents invalid XML when plain-text values (e.g. from
141
+ # YAML) contain literal ampersands.
142
+ def xml_escape(str)
143
+ str.gsub(/&(?![a-zA-Z][a-zA-Z0-9]*;|#[0-9]+;|#x[0-9a-fA-F]+;)/, "&amp;")
144
+ end
137
145
  end
138
146
  end
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Cli
3
- VERSION = "1.20.7".freeze
3
+ VERSION = "1.20.8".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.20.7
4
+ version: 1.20.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-14 00:00:00.000000000 Z
11
+ date: 2026-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: liquid