kramdown-rfc2629 1.7.13 → 1.7.14

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: 37a6e52b1686d310bf22c8c2530ce893e3ea30b74675b6cdd17143c141a51321
4
- data.tar.gz: f9cedeb1b71146d4be4affd7ba343c1a2a497b607e82565b772445d7fc686c06
3
+ metadata.gz: 1b41a30362d3a7084d976dc97ce0126a4b7db5240f3f6428a8c76f328c33bdbd
4
+ data.tar.gz: c14d74f755f417531ef362bdaea1aa9caeb48d98f28b55a2e69d13cb0aa3e47f
5
5
  SHA512:
6
- metadata.gz: 92fc3fc628cbcc21b0368f692f078206caa01fa8d5eb8f712777f369632f1d472efa20c0af96cd71a0e0e2752449d1efbeb2c354973fca4f740722545811b213
7
- data.tar.gz: 924dc4cd075193b1cc9310ddee259290e5bd0026a5ccbb7ff2da65ea897ec3a6560e2fccbaee5122cacaa262ac9d4b692bfb14417359b6f39dfbdb8aaea7b340
6
+ metadata.gz: 57694f76cafeadd2a3950e68607ab2e0c2a0b91132e3be9647444e4b759394687d0cf47a4cf6ee797065080838d0904890b5e6f74e8e29613c49b5c40650543b
7
+ data.tar.gz: 83d561cf23be4b41285339ec78976cbdffe8a3a29c5e974c4b80c7879a8c539b7cba5c7a33b14d2425ce9c3cefaa72b60b6c88c733b9d8017fe49f6ad5470f4f
data/bin/kramdown-rfc-lsr CHANGED
@@ -152,34 +152,46 @@ def num_expand(s)
152
152
  s.gsub(/\d+/) {|n| "%09d" % n.to_i}
153
153
  end
154
154
 
155
+ def want_one(secs, what)
156
+ case secs.size
157
+ when 0
158
+ error_out "*** cannot match #{what}"
159
+ "*** DOESN'T EXIST ***"
160
+ when 1
161
+ yield secs.first
162
+ else
163
+ error_out "*** multiple matches for #{what}"
164
+ "*** MULTIPLE MATCHES ***"
165
+ end
166
+ end
155
167
  require 'open3'
156
168
 
157
169
  module OpenURI
158
170
  class << self
159
- def prepped(uri, *rest)
160
- newuri = uri.to_s.sub(/\.xml$/, ".prepped.xml")
171
+ def processed(uri, old, camo, *rest)
172
+ newuri = uri.to_s.sub(old, camo) # camo name for processed data
161
173
  response = Cache.get(newuri) || (
162
- unprepped = open_uri(uri, *rest).read
174
+ unprocessed = open_uri(uri, *rest).read
163
175
  fn = [OpenURI::Cache.cache_path, uri.sub(/.*\//, '')].join('/')
164
- File.open(fn, 'wb'){|f| f.write unprepped }
165
- _prep_out, s = Open3.capture2("xml2rfc", "--prep", fn)
166
- fail s.inspect unless s.success?
167
- new_fn = fn.sub(/\.xml$/, ".prepped.xml")
176
+ File.open(fn, 'wb'){|f| f.write unprocessed }
177
+ new_fn = yield newuri, fn
168
178
  Cache.set(newuri, File.open(new_fn))
169
179
  )
170
180
  response
171
181
  end
172
- def tidied(uri, *rest)
173
- newuri = uri.to_s.sub(/\.html$/, ".tidied.html")
174
- response = Cache.get(newuri) || (
175
- unprepped = open_uri(uri, *rest).read
176
- fn = [OpenURI::Cache.cache_path, uri.sub(/.*\//, '')].join('/')
177
- File.open(fn, 'wb'){|f| f.write unprepped }
182
+ def prepped(uri)
183
+ processed(uri, /\.xml$/, ".prepped.xml") do |newuri, fn|
184
+ _prep_out, s = Open3.capture2("xml2rfc", "--prep", fn)
185
+ fail s.inspect unless s.success?
186
+ fn.sub(/\.xml$/, ".prepped.xml") # xml2rfc creates new file
187
+ end
188
+ end
189
+ def tidied(uri)
190
+ processed(uri, /\.html$/, ".tidied.html") do |newuri, fn|
178
191
  _prep_out, s = Open3.capture2("tidy", "-mq", "-asxml", "-f", "/dev/null", fn)
179
- fail s.inspect unless s.exited?
180
- Cache.set(newuri, File.open(fn))
181
- )
182
- response
192
+ fail s.inspect unless s.exited? # can't check success
193
+ fn # -m makes in-place change
194
+ end
183
195
  end
184
196
  end
185
197
  end
@@ -233,16 +245,8 @@ per_reference.keys.sort_by {|x| num_expand(x)}.each do |trg|
233
245
  REXML::XPath.match(refdoc.root, "//section[@pn=$pn]",
234
246
  {}, {"pn" => c})}
235
247
  what = "#{secpn.join(" or ")} in #{trg}"
236
- add << " (#{case secs.size
237
- when 0
238
- error_out "*** cannot match #{what}"
239
- "*** DOESN'T EXIST ***"
240
- when 1
241
- sec = secs.first
248
+ add << " (#{want_one(secs, what) do |sec|
242
249
  sec[:title] || sec.elements["name"].all_text
243
- else
244
- error_out "*** multiple matches for #{what}"
245
- "*** MULTIPLE MATCHES ***"
246
250
  end})"
247
251
  elsif refhtmldoc # find section name in HTML from anchor s
248
252
  secpn = section_number_to_htmlid(s)
@@ -251,15 +255,8 @@ per_reference.keys.sort_by {|x| num_expand(x)}.each do |trg|
251
255
  {"xmlns" => "http://www.w3.org/1999/xhtml"},
252
256
  {"pn" => secpn})
253
257
  what = "#{secpn} in #{trg}"
254
- add << " (#{case secs.size
255
- when 0
256
- error_out "*** cannot match #{what}"
257
- "*** DOESN'T EXIST ***"
258
- when 1
259
- secs.first.text.sub(/^\.\s+/, '')
260
- else
261
- error_out "*** multiple matches for #{what}"
262
- "*** MULTIPLE MATCHES ***"
258
+ add << " (#{want_one(secs, what) do |sec|
259
+ sec.text.sub(/^\.\s+/, '')
263
260
  end})"
264
261
  end
265
262
  puts "* #{/^[0-9]/ =~ s ? "Section" : "Appendix"} #{s}#{add}"
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.7.13'
3
+ s.version = '1.7.14'
4
4
  s.summary = "Kramdown extension for generating RFCXML (RFC 799x)."
5
5
  s.description = %{An RFCXML (RFC 799x) generating backend for Thomas Leitner's
6
6
  "kramdown" markdown parser. Mostly useful for RFC writers.}
@@ -12,7 +12,8 @@ spec = Gem::Specification.new do |s|
12
12
  s.add_dependency('unicode-blocks', '~> 1.0')
13
13
  s.add_dependency('unicode-scripts', '~> 1.0')
14
14
  s.add_dependency('net-http-persistent', '~> 4.0')
15
- s.add_dependency('differ', '~>0.1')
15
+ s.add_dependency('differ', '~> 0.1')
16
+ s.add_dependency('base64', '>= 0.1')
16
17
  s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc bin/kramdown-rfc2629 bin/doilit bin/echars bin/kramdown-rfc-extract-markdown bin/kramdown-rfc-extract-sourcecode bin/kramdown-rfc-lsr data/kramdown-rfc2629.erb data/encoding-fallbacks.txt data/math.json bin/kramdown-rfc-cache-subseries-bibxml bin/kramdown-rfc-autolink-iref-cleanup bin/de-gfm bin/kramdown-rfc-clean-svg-ids)
17
18
  s.require_path = 'lib'
18
19
  s.executables = ['kramdown-rfc', 'kramdown-rfc2629', 'doilit', 'echars',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kramdown-rfc2629
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.13
4
+ version: 1.7.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-18 00:00:00.000000000 Z
11
+ date: 2024-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: base64
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0.1'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0.1'
139
153
  description: |-
140
154
  An RFCXML (RFC 799x) generating backend for Thomas Leitner's
141
155
  "kramdown" markdown parser. Mostly useful for RFC writers.