kramdown-rfc2629 1.3.31 → 1.3.32

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: 286d2a372490fa260547c5a4bf637105047bcb9c855c2e705488f133cb007064
4
- data.tar.gz: 995c3dfb713b13495106130e48334d08ab8ca4f2cbbba77d8b71c2a34975a5bf
3
+ metadata.gz: 7a63a768cc08e589dd15a5d52c77d3567ecd689ed5521ecb2f4772ee6b933a88
4
+ data.tar.gz: db71bef12f52b7777f1a19b84ff5c19bf1f37835761291b2aaaa626b92d67c54
5
5
  SHA512:
6
- metadata.gz: 24403a2dbc66d9e03a6029df76b3e668679e07c56297142c46bf7b19cc1424b55b84beae56a6376d8098230b02278fd66d159746e513d523ea1b5fc71daaa705
7
- data.tar.gz: e6706b1f539574aa7c6d324dc0d91a6b9431eba200070244f87410b064576e9f44c180a68cb7d0840db6aa0f90569944866c123346f2b5f9c792b0aba729293a
6
+ metadata.gz: 51deb8472aa941d6c7d21ec8e60173064a59cb426ccd3e48fdc2fad463a633197077be21a4d7298d08c32280d4df79e0a4990da23d39b96b94a881a27e6f5a91
7
+ data.tar.gz: f38b8bde3c0464622b652994f67c0fb9bc501bd3fd3c7d53f3536d0e0dc251f8b706b38550967a268c1b21e156e272f78c3aafac4899621ed7077447bc5e0f91
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.3.31'
3
+ s.version = '1.3.32'
4
4
  s.summary = "Kramdown extension for generating RFC 7749 XML."
5
5
  s.description = %{An RFC7749 (XML2RFC) generating backend for Thomas Leitner's
6
6
  "kramdown" markdown parser. Mostly useful for RFC writers.}
@@ -178,6 +178,17 @@ module Kramdown
178
178
 
179
179
  # :stopdoc:
180
180
 
181
+ KRAMDOWN_PERSISTENT = ENV["KRAMDOWN_PERSISTENT"]
182
+
183
+ if KRAMDOWN_PERSISTENT
184
+ begin
185
+ require 'net/http/persistent'
186
+ $http = Net::HTTP::Persistent.new name: 'kramdown-rfc'
187
+ rescue Exception => e
188
+ warn "** Can't set up persistent HTTP -- #{e}"
189
+ end
190
+ end
191
+
181
192
  # Defines the amount of indentation used when nesting XML tags.
182
193
  INDENTATION = 2
183
194
 
@@ -682,6 +693,34 @@ COLORS
682
693
  KRAMDOWN_OFFLINE = ENV["KRAMDOWN_OFFLINE"]
683
694
  KRAMDOWN_REFCACHE_REFETCH = ENV["KRAMDOWN_REFCACHE_REFETCH"]
684
695
 
696
+ def get_and_write_resource(url, fn)
697
+ options = {}
698
+ if ENV["KRAMDOWN_DONT_VERIFY_HTTPS"]
699
+ options[:ssl_verify_mode] = OpenSSL::SSL::VERIFY_NONE
700
+ end # workaround for OpenSSL on Windows...
701
+ # URI.open(url, **options) do |uf| # not portable to older versions
702
+ OpenURI.open_uri(url, **options) do |uf|
703
+ s = uf.read
704
+ if uf.status[0] != "200"
705
+ warn "*** Status code #{status} while fetching #{url}"
706
+ else
707
+ File.write(fn, s)
708
+ end
709
+ end
710
+ end
711
+
712
+ def get_and_write_resource_persistently(url, fn)
713
+ t1 = Time.now
714
+ response = $http.request(URI(url))
715
+ if response.code != "200"
716
+ raise "Status code #{response.code} while fetching #{url}"
717
+ else
718
+ File.write(fn, response.body)
719
+ end
720
+ t2 = Time.now
721
+ warn "(#{"%.3f" % (t2 - t1)} s)"
722
+ end
723
+
685
724
  # this is now slightly dangerous as multiple urls could map to the same cachefile
686
725
  def get_and_cache_resource(url, cachefile, tvalid = 7200, tn = Time.now)
687
726
  fn = "#{REFCACHEDIR}/#{cachefile}"
@@ -710,18 +749,15 @@ COLORS
710
749
  require 'timeout'
711
750
  begin
712
751
  Timeout::timeout(fetch_timeout) do
713
- options = {}
714
- if ENV["KRAMDOWN_DONT_VERIFY_HTTPS"]
715
- options[:ssl_verify_mode] = OpenSSL::SSL::VERIFY_NONE
716
- end # workaround for OpenSSL on Windows...
717
- # URI.open(url, **options) do |uf| # not portable to older versions
718
- OpenURI.open_uri(url, **options) do |uf|
719
- s = uf.read
720
- if uf.status[0] != "200"
721
- warn "*** Status code #{status} while fetching #{url}"
722
- else
723
- File.write(fn, s)
752
+ if $http
753
+ begin # belt and suspenders
754
+ get_and_write_resource_persistently(url, fn)
755
+ rescue Exception => e
756
+ warn "*** Can't get with persistent HTTP: #{e}"
757
+ get_and_write_resource(url, fn)
724
758
  end
759
+ else
760
+ get_and_write_resource(url, fn)
725
761
  end
726
762
  end
727
763
  rescue OpenURI::HTTPError, Errno::EHOSTUNREACH, Errno::ECONNREFUSED,
@@ -788,7 +824,7 @@ COLORS
788
824
  to_insert = ""
789
825
  src.scan(/(W3C|3GPP|[A-Z-]+)[.]?([A-Za-z_0-9.\/\+-]+)/) do |t, n|
790
826
  fn = "reference.#{t}.#{n}.xml"
791
- sub, ttl, can_anchor, altproc = XML_RESOURCE_ORG_MAP[t]
827
+ sub, ttl, _can_anchor, altproc = XML_RESOURCE_ORG_MAP[t]
792
828
  ttl ||= KRAMDOWN_REFCACHETTL # everything but RFCs might change a lot
793
829
  puts "*** Huh: #{fn}" unless sub
794
830
  if altproc && !KRAMDOWN_USE_TOOLS_SERVER
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.3.31
4
+ version: 1.3.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-13 00:00:00.000000000 Z
11
+ date: 2021-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown