relaton-ietf 1.14.3 → 1.14.5
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 +4 -4
 - data/.github/workflows/rake.yml +1 -0
 - data/.github/workflows/release.yml +3 -2
 - data/.gitignore +1 -0
 - data/.rubocop.yml +1 -1
 - data/Gemfile +11 -1
 - data/grammars/basicdoc.rng +0 -1
 - data/grammars/biblio.rng +12 -2
 - data/grammars/relaton-ietf.rng +15 -0
 - data/lib/relaton_ietf/bibxml_parser.rb +10 -1
 - data/lib/relaton_ietf/data_fetcher.rb +10 -0
 - data/lib/relaton_ietf/hash_converter.rb +12 -0
 - data/lib/relaton_ietf/ietf_bibliographic_item.rb +34 -5
 - data/lib/relaton_ietf/processor.rb +9 -0
 - data/lib/relaton_ietf/rfc_entry.rb +6 -5
 - data/lib/relaton_ietf/rfc_index_entry.rb +2 -1
 - data/lib/relaton_ietf/scrapper.rb +34 -23
 - data/lib/relaton_ietf/version.rb +1 -1
 - data/lib/relaton_ietf/xml_parser.rb +6 -0
 - data/lib/relaton_ietf.rb +1 -0
 - data/relaton_ietf.gemspec +5 -13
 - metadata +16 -111
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: aa4b15e1b13a21f94aa87731fe6d49a83422a426b299ef3fa4378d65dbdf79a2
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6c3e630920810ca3bc881e794e36cd3e9898174eab83ed420fe18d36c8f641ab
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0e6cb43373347a061abf880ee44691c7f0f324823290ae5dcb3deb93d5f8754034d34ccf1a2a1c27b2a176c6f7f3d6f6d160c22c53b91a87e939bea653af900a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: fd4edf41ff906d5c5fdf3aea055a103e197deaf21d80af892428664abe078196ad49ca5c3521ae741d305c6e1f1eba7b6fd61e15d8aa55ae06d9adb020f926a2
         
     | 
    
        data/.github/workflows/rake.yml
    CHANGED
    
    
    
        data/.gitignore
    CHANGED
    
    
    
        data/.rubocop.yml
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    | 
         @@ -1,6 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            source "https://rubygems.org"
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
         
     | 
| 
      
 3 
     | 
    
         
            +
            git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            # Specify your gem's dependencies in relaton_ietf.gemspec
         
     | 
| 
       6 
6 
     | 
    
         
             
            gemspec
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            gem "rake", "~> 13.0"
         
     | 
| 
      
 9 
     | 
    
         
            +
            gem "rspec", "~> 3.0"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            gem "equivalent-xml"
         
     | 
| 
      
 12 
     | 
    
         
            +
            gem "pry-byebug"
         
     | 
| 
      
 13 
     | 
    
         
            +
            gem "ruby-jing"
         
     | 
| 
      
 14 
     | 
    
         
            +
            gem "simplecov"
         
     | 
| 
      
 15 
     | 
    
         
            +
            gem "vcr"
         
     | 
| 
      
 16 
     | 
    
         
            +
            gem "webmock"
         
     | 
    
        data/grammars/basicdoc.rng
    CHANGED
    
    
    
        data/grammars/biblio.rng
    CHANGED
    
    | 
         @@ -216,6 +216,9 @@ 
     | 
|
| 
       216 
216 
     | 
    
         
             
                  <optional>
         
     | 
| 
       217 
217 
     | 
    
         
             
                    <ref name="fullname"/>
         
     | 
| 
       218 
218 
     | 
    
         
             
                  </optional>
         
     | 
| 
      
 219 
     | 
    
         
            +
                  <zeroOrMore>
         
     | 
| 
      
 220 
     | 
    
         
            +
                    <ref name="credential"/>
         
     | 
| 
      
 221 
     | 
    
         
            +
                  </zeroOrMore>
         
     | 
| 
       219 
222 
     | 
    
         
             
                  <zeroOrMore>
         
     | 
| 
       220 
223 
     | 
    
         
             
                    <ref name="affiliation"/>
         
     | 
| 
       221 
224 
     | 
    
         
             
                  </zeroOrMore>
         
     | 
| 
         @@ -232,6 +235,11 @@ 
     | 
|
| 
       232 
235 
     | 
    
         
             
                  <ref name="FullNameType"/>
         
     | 
| 
       233 
236 
     | 
    
         
             
                </element>
         
     | 
| 
       234 
237 
     | 
    
         
             
              </define>
         
     | 
| 
      
 238 
     | 
    
         
            +
              <define name="credential">
         
     | 
| 
      
 239 
     | 
    
         
            +
                <element name="credential">
         
     | 
| 
      
 240 
     | 
    
         
            +
                  <text/>
         
     | 
| 
      
 241 
     | 
    
         
            +
                </element>
         
     | 
| 
      
 242 
     | 
    
         
            +
              </define>
         
     | 
| 
       235 
243 
     | 
    
         
             
              <define name="FullNameType">
         
     | 
| 
       236 
244 
     | 
    
         
             
                <choice>
         
     | 
| 
       237 
245 
     | 
    
         
             
                  <group>
         
     | 
| 
         @@ -305,7 +313,9 @@ 
     | 
|
| 
       305 
313 
     | 
    
         
             
                  <zeroOrMore>
         
     | 
| 
       306 
314 
     | 
    
         
             
                    <ref name="affiliationdescription"/>
         
     | 
| 
       307 
315 
     | 
    
         
             
                  </zeroOrMore>
         
     | 
| 
       308 
     | 
    
         
            -
                  < 
     | 
| 
      
 316 
     | 
    
         
            +
                  <optional>
         
     | 
| 
      
 317 
     | 
    
         
            +
                    <ref name="organization"/>
         
     | 
| 
      
 318 
     | 
    
         
            +
                  </optional>
         
     | 
| 
       309 
319 
     | 
    
         
             
                </element>
         
     | 
| 
       310 
320 
     | 
    
         
             
              </define>
         
     | 
| 
       311 
321 
     | 
    
         
             
              <define name="affiliationname">
         
     | 
| 
         @@ -1316,7 +1326,7 @@ 
     | 
|
| 
       1316 
1326 
     | 
    
         
             
                  <value>commentaryOf</value>
         
     | 
| 
       1317 
1327 
     | 
    
         
             
                  <value>hasCommentary</value>
         
     | 
| 
       1318 
1328 
     | 
    
         
             
                  <value>related</value>
         
     | 
| 
       1319 
     | 
    
         
            -
                  <value> 
     | 
| 
      
 1329 
     | 
    
         
            +
                  <value>hasComplement</value>
         
     | 
| 
       1320 
1330 
     | 
    
         
             
                  <value>complementOf</value>
         
     | 
| 
       1321 
1331 
     | 
    
         
             
                  <value>obsoletes</value>
         
     | 
| 
       1322 
1332 
     | 
    
         
             
                  <value>obsoletedBy</value>
         
     | 
    
        data/grammars/relaton-ietf.rng
    CHANGED
    
    | 
         @@ -26,6 +26,9 @@ 
     | 
|
| 
       26 
26 
     | 
    
         
             
                  <zeroOrMore>
         
     | 
| 
       27 
27 
     | 
    
         
             
                    <ref name="area"/>
         
     | 
| 
       28 
28 
     | 
    
         
             
                  </zeroOrMore>
         
     | 
| 
      
 29 
     | 
    
         
            +
                  <optional>
         
     | 
| 
      
 30 
     | 
    
         
            +
                    <ref name="stream"/>
         
     | 
| 
      
 31 
     | 
    
         
            +
                  </optional>
         
     | 
| 
       29 
32 
     | 
    
         
             
                  <optional>
         
     | 
| 
       30 
33 
     | 
    
         
             
                    <ref name="ipr"/>
         
     | 
| 
       31 
34 
     | 
    
         
             
                  </optional>
         
     | 
| 
         @@ -315,4 +318,16 @@ 
     | 
|
| 
       315 
318 
     | 
    
         
             
                  </optional>
         
     | 
| 
       316 
319 
     | 
    
         
             
                </element>
         
     | 
| 
       317 
320 
     | 
    
         
             
              </define>
         
     | 
| 
      
 321 
     | 
    
         
            +
              <define name="stream">
         
     | 
| 
      
 322 
     | 
    
         
            +
                <element name="stream">
         
     | 
| 
      
 323 
     | 
    
         
            +
                  <choice>
         
     | 
| 
      
 324 
     | 
    
         
            +
                    <value>IAB</value>
         
     | 
| 
      
 325 
     | 
    
         
            +
                    <value>IETF</value>
         
     | 
| 
      
 326 
     | 
    
         
            +
                    <value>Independent</value>
         
     | 
| 
      
 327 
     | 
    
         
            +
                    <value>IRTF</value>
         
     | 
| 
      
 328 
     | 
    
         
            +
                    <value>Legacy</value>
         
     | 
| 
      
 329 
     | 
    
         
            +
                    <value>Editorial</value>
         
     | 
| 
      
 330 
     | 
    
         
            +
                  </choice>
         
     | 
| 
      
 331 
     | 
    
         
            +
                </element>
         
     | 
| 
      
 332 
     | 
    
         
            +
              </define>
         
     | 
| 
       318 
333 
     | 
    
         
             
            </grammar>
         
     | 
| 
         @@ -16,6 +16,16 @@ module RelatonIetf 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  RelatonIetf::IetfBibliographicItem.new(**attrs)
         
     | 
| 
       17 
17 
     | 
    
         
             
                end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
                # def docids(reference, ver)
         
     | 
| 
      
 20 
     | 
    
         
            +
                #   ids = super
         
     | 
| 
      
 21 
     | 
    
         
            +
                #   si = reference.at("./seriesInfo[@name='Internet-Draft']",
         
     | 
| 
      
 22 
     | 
    
         
            +
                #     "./front/seriesInfo[@name='Internet-Draft']")
         
     | 
| 
      
 23 
     | 
    
         
            +
                #   if si
         
     | 
| 
      
 24 
     | 
    
         
            +
                #     id = si[:value]
         
     | 
| 
      
 25 
     | 
    
         
            +
                #   end
         
     | 
| 
      
 26 
     | 
    
         
            +
                #   ids
         
     | 
| 
      
 27 
     | 
    
         
            +
                # end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       19 
29 
     | 
    
         
             
                #
         
     | 
| 
       20 
30 
     | 
    
         
             
                # Extract document identifier type form identifier
         
     | 
| 
       21 
31 
     | 
    
         
             
                #
         
     | 
| 
         @@ -27,7 +37,6 @@ module RelatonIetf 
     | 
|
| 
       27 
37 
     | 
    
         
             
                  type = super
         
     | 
| 
       28 
38 
     | 
    
         
             
                  case type
         
     | 
| 
       29 
39 
     | 
    
         
             
                  when "BCP", "FYI", "STD", "RFC" then "RFC"
         
     | 
| 
       30 
     | 
    
         
            -
                  # when "Internet-Draft" then type
         
     | 
| 
       31 
40 
     | 
    
         
             
                  when "I-D" then "Internet-Draft"
         
     | 
| 
       32 
41 
     | 
    
         
             
                  else "IETF"
         
     | 
| 
       33 
42 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -6,6 +6,7 @@ require "relaton_ietf/rfc_entry" 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            module RelatonIetf
         
     | 
| 
       8 
8 
     | 
    
         
             
              class DataFetcher
         
     | 
| 
      
 9 
     | 
    
         
            +
                INDEX1 = "index-v1".freeze
         
     | 
| 
       9 
10 
     | 
    
         
             
                #
         
     | 
| 
       10 
11 
     | 
    
         
             
                # Data fetcher initializer
         
     | 
| 
       11 
12 
     | 
    
         
             
                #
         
     | 
| 
         @@ -20,6 +21,7 @@ module RelatonIetf 
     | 
|
| 
       20 
21 
     | 
    
         
             
                  @format = format
         
     | 
| 
       21 
22 
     | 
    
         
             
                  @ext = @format.sub(/^bib|^rfc/, "")
         
     | 
| 
       22 
23 
     | 
    
         
             
                  @files = []
         
     | 
| 
      
 24 
     | 
    
         
            +
                  @index = Relaton::Index.find_or_create :IETF, file: "#{INDEX1}.yaml"
         
     | 
| 
       23 
25 
     | 
    
         
             
                end
         
     | 
| 
       24 
26 
     | 
    
         | 
| 
       25 
27 
     | 
    
         
             
                #
         
     | 
| 
         @@ -49,6 +51,7 @@ module RelatonIetf 
     | 
|
| 
       49 
51 
     | 
    
         
             
                  when "ietf-internet-drafts" then fetch_ieft_internet_drafts
         
     | 
| 
       50 
52 
     | 
    
         
             
                  when "ietf-rfc-entries" then fetch_ieft_rfcs
         
     | 
| 
       51 
53 
     | 
    
         
             
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                  @index.save
         
     | 
| 
       52 
55 
     | 
    
         
             
                end
         
     | 
| 
       53 
56 
     | 
    
         | 
| 
       54 
57 
     | 
    
         
             
                #
         
     | 
| 
         @@ -201,6 +204,13 @@ module RelatonIetf 
     | 
|
| 
       201 
204 
     | 
    
         
             
                    @files << file
         
     | 
| 
       202 
205 
     | 
    
         
             
                  end
         
     | 
| 
       203 
206 
     | 
    
         
             
                  File.write file, c, encoding: "UTF-8"
         
     | 
| 
      
 207 
     | 
    
         
            +
                  add_to_index entry, file
         
     | 
| 
      
 208 
     | 
    
         
            +
                end
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
                def add_to_index(entry, file)
         
     | 
| 
      
 211 
     | 
    
         
            +
                  docid = entry.docidentifier.detect(&:primary)
         
     | 
| 
      
 212 
     | 
    
         
            +
                  docid ||= entry.docidentifier.first
         
     | 
| 
      
 213 
     | 
    
         
            +
                  @index.add_or_update docid.id, file
         
     | 
| 
       204 
214 
     | 
    
         
             
                end
         
     | 
| 
       205 
215 
     | 
    
         | 
| 
       206 
216 
     | 
    
         
             
                #
         
     | 
| 
         @@ -1,6 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module RelatonIetf
         
     | 
| 
       2 
2 
     | 
    
         
             
              class HashConverter < RelatonBib::HashConverter
         
     | 
| 
       3 
3 
     | 
    
         
             
                class << self
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def hash_to_bib(hash)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    ret = super
         
     | 
| 
      
 6 
     | 
    
         
            +
                    return unless ret
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                    stream_hash_to_bib ret
         
     | 
| 
      
 9 
     | 
    
         
            +
                    ret
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       4 
12 
     | 
    
         
             
                  #
         
     | 
| 
       5 
13 
     | 
    
         
             
                  # Ovverides superclass's method
         
     | 
| 
       6 
14 
     | 
    
         
             
                  #
         
     | 
| 
         @@ -19,6 +27,10 @@ module RelatonIetf 
     | 
|
| 
       19 
27 
     | 
    
         
             
                    end
         
     | 
| 
       20 
28 
     | 
    
         
             
                    ret[:editorialgroup] = RelatonBib::EditorialGroup.new technical_committee
         
     | 
| 
       21 
29 
     | 
    
         
             
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  def stream_hash_to_bib(ret)
         
     | 
| 
      
 32 
     | 
    
         
            +
                    ret[:stream] = ret[:ext][:stream] if ret[:ext]&.key? :stream
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
       22 
34 
     | 
    
         
             
                end
         
     | 
| 
       23 
35 
     | 
    
         
             
              end
         
     | 
| 
       24 
36 
     | 
    
         
             
            end
         
     | 
| 
         @@ -2,18 +2,20 @@ module RelatonIetf 
     | 
|
| 
       2 
2 
     | 
    
         
             
              class IetfBibliographicItem < RelatonBib::BibliographicItem
         
     | 
| 
       3 
3 
     | 
    
         
             
                DOCTYPES = %w[rfc internet-draft].freeze
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
                # @return [String,  
     | 
| 
       6 
     | 
    
         
            -
                attr_reader :doctype
         
     | 
| 
      
 5 
     | 
    
         
            +
                # @return [String, nil]
         
     | 
| 
      
 6 
     | 
    
         
            +
                attr_reader :doctype, :stream
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                # @return [Array<String>]
         
     | 
| 
       9 
9 
     | 
    
         
             
                attr_reader :keyword
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                # @param doctype [String]
         
     | 
| 
       12 
12 
     | 
    
         
             
                # @param keyword [Array<String>]
         
     | 
| 
      
 13 
     | 
    
         
            +
                # @param stream [String, nil]
         
     | 
| 
       13 
14 
     | 
    
         
             
                def initialize(**args)
         
     | 
| 
       14 
15 
     | 
    
         
             
                  if args[:doctype] && !DOCTYPES.include?(args[:doctype])
         
     | 
| 
       15 
16 
     | 
    
         
             
                    warn "[relaton-ietf] WARNING: invalid doctype #{args[:doctype]}"
         
     | 
| 
       16 
17 
     | 
    
         
             
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @stream = args.delete(:stream)
         
     | 
| 
       17 
19 
     | 
    
         
             
                  super
         
     | 
| 
       18 
20 
     | 
    
         
             
                end
         
     | 
| 
       19 
21 
     | 
    
         | 
| 
         @@ -36,12 +38,39 @@ module RelatonIetf 
     | 
|
| 
       36 
38 
     | 
    
         
             
                # @param opts [Hash]
         
     | 
| 
       37 
39 
     | 
    
         
             
                # @option opts [Nokogiri::XML::Builder] :builder XML builder
         
     | 
| 
       38 
40 
     | 
    
         
             
                # @option opts [Boolean] :bibdata
         
     | 
| 
       39 
     | 
    
         
            -
                # @option opts [Symbol,  
     | 
| 
      
 41 
     | 
    
         
            +
                # @option opts [Symbol, nil] :date_format (:short), :full
         
     | 
| 
       40 
42 
     | 
    
         
             
                # @option opts [String, Symbol] :lang language
         
     | 
| 
       41 
43 
     | 
    
         
             
                # @return [String] XML
         
     | 
| 
       42 
     | 
    
         
            -
                def to_xml(**opts)
         
     | 
| 
      
 44 
     | 
    
         
            +
                def to_xml(**opts) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/MethodLength
         
     | 
| 
       43 
45 
     | 
    
         
             
                  opts[:date_format] ||= :short
         
     | 
| 
       44 
     | 
    
         
            -
                  super(**opts)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  super(**opts) do |builder|
         
     | 
| 
      
 47 
     | 
    
         
            +
                    if opts[:bibdata] && (doctype || editorialgroup || ics&.any? ||
         
     | 
| 
      
 48 
     | 
    
         
            +
                      structuredidentifier&.presence? || stream)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      ext = builder.ext do |b|
         
     | 
| 
      
 50 
     | 
    
         
            +
                        b.doctype doctype if doctype
         
     | 
| 
      
 51 
     | 
    
         
            +
                        b.subdoctype subdoctype if subdoctype
         
     | 
| 
      
 52 
     | 
    
         
            +
                        editorialgroup&.to_xml b
         
     | 
| 
      
 53 
     | 
    
         
            +
                        ics.each { |i| i.to_xml b }
         
     | 
| 
      
 54 
     | 
    
         
            +
                        b.stream stream if stream
         
     | 
| 
      
 55 
     | 
    
         
            +
                        structuredidentifier&.to_xml b
         
     | 
| 
      
 56 
     | 
    
         
            +
                      end
         
     | 
| 
      
 57 
     | 
    
         
            +
                      ext["schema-version"] = ext_schema if !opts[:embedded] && respond_to?(:ext_schema)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    end
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                #
         
     | 
| 
      
 63 
     | 
    
         
            +
                # Render hash
         
     | 
| 
      
 64 
     | 
    
         
            +
                #
         
     | 
| 
      
 65 
     | 
    
         
            +
                # @return [Hash] docunent hash representation
         
     | 
| 
      
 66 
     | 
    
         
            +
                #
         
     | 
| 
      
 67 
     | 
    
         
            +
                def to_hash(embedded: false)
         
     | 
| 
      
 68 
     | 
    
         
            +
                  hash = super
         
     | 
| 
      
 69 
     | 
    
         
            +
                  return hash unless stream
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                  hash["ext"] ||= {}
         
     | 
| 
      
 72 
     | 
    
         
            +
                  hash["ext"]["stream"] = stream
         
     | 
| 
      
 73 
     | 
    
         
            +
                  hash
         
     | 
| 
       45 
74 
     | 
    
         
             
                end
         
     | 
| 
       46 
75 
     | 
    
         | 
| 
       47 
76 
     | 
    
         
             
                #
         
     | 
| 
         @@ -48,5 +48,14 @@ module RelatonIetf 
     | 
|
| 
       48 
48 
     | 
    
         
             
                def grammar_hash
         
     | 
| 
       49 
49 
     | 
    
         
             
                  @grammar_hash ||= ::RelatonIetf.grammar_hash
         
     | 
| 
       50 
50 
     | 
    
         
             
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                #
         
     | 
| 
      
 53 
     | 
    
         
            +
                # Remove index file
         
     | 
| 
      
 54 
     | 
    
         
            +
                #
         
     | 
| 
      
 55 
     | 
    
         
            +
                def remove_index_file
         
     | 
| 
      
 56 
     | 
    
         
            +
                  Relaton::Index.find_or_create(:RFC, url: true, file: Scrapper::INDEX_FILE).remove_file
         
     | 
| 
      
 57 
     | 
    
         
            +
                  Relaton::Index.find_or_create(:RSS, url: true, file: Scrapper::INDEX_FILE).remove_file
         
     | 
| 
      
 58 
     | 
    
         
            +
                  Relaton::Index.find_or_create(:IDS, url: true, file: Scrapper::INDEX_FILE).remove_file
         
     | 
| 
      
 59 
     | 
    
         
            +
                end
         
     | 
| 
       51 
60 
     | 
    
         
             
              end
         
     | 
| 
       52 
61 
     | 
    
         
             
            end
         
     | 
| 
         @@ -41,6 +41,7 @@ module RelatonIetf 
     | 
|
| 
       41 
41 
     | 
    
         
             
                    relation: parse_relation,
         
     | 
| 
       42 
42 
     | 
    
         
             
                    status: parse_status,
         
     | 
| 
       43 
43 
     | 
    
         
             
                    series: parse_series,
         
     | 
| 
      
 44 
     | 
    
         
            +
                    stream: @doc.at("./xmlns:stream")&.text,
         
     | 
| 
       44 
45 
     | 
    
         
             
                    editorialgroup: parse_editorialgroup,
         
     | 
| 
       45 
46 
     | 
    
         
             
                  )
         
     | 
| 
       46 
47 
     | 
    
         
             
                end
         
     | 
| 
         @@ -52,7 +53,7 @@ module RelatonIetf 
     | 
|
| 
       52 
53 
     | 
    
         
             
                #
         
     | 
| 
       53 
54 
     | 
    
         
             
                def parse_series
         
     | 
| 
       54 
55 
     | 
    
         
             
                  title = RelatonBib::TypedTitleString.new(content: "RFC")
         
     | 
| 
       55 
     | 
    
         
            -
                  series_is_also +  
     | 
| 
      
 56 
     | 
    
         
            +
                  series_is_also + [RelatonBib::Series.new(title: title, number: docnum)] + seires_stream
         
     | 
| 
       56 
57 
     | 
    
         
             
                end
         
     | 
| 
       57 
58 
     | 
    
         | 
| 
       58 
59 
     | 
    
         
             
                def series_is_also
         
     | 
| 
         @@ -127,14 +128,14 @@ module RelatonIetf 
     | 
|
| 
       127 
128 
     | 
    
         
             
                #
         
     | 
| 
       128 
129 
     | 
    
         
             
                # @return [String] anchor
         
     | 
| 
       129 
130 
     | 
    
         
             
                #
         
     | 
| 
       130 
     | 
    
         
            -
                def anchor
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
                end
         
     | 
| 
      
 131 
     | 
    
         
            +
                # def anchor
         
     | 
| 
      
 132 
     | 
    
         
            +
                #   "RFC#{docnum}"
         
     | 
| 
      
 133 
     | 
    
         
            +
                # end
         
     | 
| 
       133 
134 
     | 
    
         | 
| 
       134 
135 
     | 
    
         
             
                #
         
     | 
| 
       135 
136 
     | 
    
         
             
                # Create link
         
     | 
| 
       136 
137 
     | 
    
         
             
                #
         
     | 
| 
       137 
     | 
    
         
            -
                # @return [Array<RelatonBib::TypedUri>] 
     | 
| 
      
 138 
     | 
    
         
            +
                # @return [Array<RelatonBib::TypedUri>]
         
     | 
| 
       138 
139 
     | 
    
         
             
                #
         
     | 
| 
       139 
140 
     | 
    
         
             
                def parse_link
         
     | 
| 
       140 
141 
     | 
    
         
             
                  url = "https://www.rfc-editor.org/info/rfc#{docnum}"
         
     | 
| 
         @@ -10,7 +10,7 @@ module RelatonIetf 
     | 
|
| 
       10 
10 
     | 
    
         
             
                def initialize(doc, doc_id, is_also)
         
     | 
| 
       11 
11 
     | 
    
         
             
                  @doc = doc
         
     | 
| 
       12 
12 
     | 
    
         
             
                  @name = doc.name.split("-").first
         
     | 
| 
       13 
     | 
    
         
            -
                  @shortnum = doc_id[-4 
     | 
| 
      
 13 
     | 
    
         
            +
                  @shortnum = doc_id[-4..].sub(/^0+/, "")
         
     | 
| 
       14 
14 
     | 
    
         
             
                  @doc_id = doc_id
         
     | 
| 
       15 
15 
     | 
    
         
             
                  @is_also = is_also
         
     | 
| 
       16 
16 
     | 
    
         
             
                end
         
     | 
| 
         @@ -47,6 +47,7 @@ module RelatonIetf 
     | 
|
| 
       47 
47 
     | 
    
         
             
                    formattedref: formattedref,
         
     | 
| 
       48 
48 
     | 
    
         
             
                    relation: parse_relation,
         
     | 
| 
       49 
49 
     | 
    
         
             
                    series: parse_series,
         
     | 
| 
      
 50 
     | 
    
         
            +
                    stream: @doc.at("./xmlns:stream")&.text,
         
     | 
| 
       50 
51 
     | 
    
         
             
                  )
         
     | 
| 
       51 
52 
     | 
    
         
             
                end
         
     | 
| 
       52 
53 
     | 
    
         | 
| 
         @@ -5,16 +5,17 @@ module RelatonIetf 
     | 
|
| 
       5 
5 
     | 
    
         
             
              module Scrapper
         
     | 
| 
       6 
6 
     | 
    
         
             
                extend Scrapper
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                IDS = "https://raw.githubusercontent.com/relaton/relaton-data-ids/main/ 
     | 
| 
       9 
     | 
    
         
            -
                RFC = "https://raw.githubusercontent.com/relaton/relaton-data-rfcs/main/ 
     | 
| 
       10 
     | 
    
         
            -
                RSS = "https://raw.githubusercontent.com/relaton/relaton-data-rfcsubseries/main/ 
     | 
| 
      
 8 
     | 
    
         
            +
                IDS = "https://raw.githubusercontent.com/relaton/relaton-data-ids/main/"
         
     | 
| 
      
 9 
     | 
    
         
            +
                RFC = "https://raw.githubusercontent.com/relaton/relaton-data-rfcs/main/"
         
     | 
| 
      
 10 
     | 
    
         
            +
                RSS = "https://raw.githubusercontent.com/relaton/relaton-data-rfcsubseries/main/"
         
     | 
| 
      
 11 
     | 
    
         
            +
                INDEX_FILE = "index-v1.yaml"
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
       12 
13 
     | 
    
         
             
                # @param text [String]
         
     | 
| 
       13 
14 
     | 
    
         
             
                # @return [RelatonIetf::IetfBibliographicItem]
         
     | 
| 
       14 
15 
     | 
    
         
             
                def scrape_page(text)
         
     | 
| 
       15 
16 
     | 
    
         
             
                  # Remove initial "IETF " string if specified
         
     | 
| 
       16 
17 
     | 
    
         
             
                  ref = text.gsub(/^IETF /, "")
         
     | 
| 
       17 
     | 
    
         
            -
                  ref.sub!(/(?<=^(?:RFC|BCP|FYI|STD))\s(\d+)/) { $1.rjust 4, "0" }
         
     | 
| 
      
 18 
     | 
    
         
            +
                  # ref.sub!(/(?<=^(?:RFC|BCP|FYI|STD))\s(\d+)/) { $1.rjust 4, "0" }
         
     | 
| 
       18 
19 
     | 
    
         
             
                  rfc_item ref
         
     | 
| 
       19 
20 
     | 
    
         
             
                rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
         
     | 
| 
       20 
21 
     | 
    
         
             
                       Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError,
         
     | 
| 
         @@ -27,32 +28,42 @@ module RelatonIetf 
     | 
|
| 
       27 
28 
     | 
    
         
             
                # @param ref [String]
         
     | 
| 
       28 
29 
     | 
    
         
             
                # @return [RelatonIetf::IetfBibliographicItem]
         
     | 
| 
       29 
30 
     | 
    
         
             
                def rfc_item(ref) # rubocop:disable Metrics/MethodLength
         
     | 
| 
       30 
     | 
    
         
            -
                   
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
       41 
     | 
    
         
            -
                   
     | 
| 
       42 
     | 
    
         
            -
                   
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                   
     | 
| 
      
 31 
     | 
    
         
            +
                  case ref
         
     | 
| 
      
 32 
     | 
    
         
            +
                  when /^RFC/ then get_rfcs ref
         
     | 
| 
      
 33 
     | 
    
         
            +
                  when /^(?:BCP|FYI|STD)/ then get_rfcsubseries ref
         
     | 
| 
      
 34 
     | 
    
         
            +
                  when /^I-D/
         
     | 
| 
      
 35 
     | 
    
         
            +
                    ref.sub!(/^I-D[.\s]/, "")
         
     | 
| 
      
 36 
     | 
    
         
            +
                    get_ids ref
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                def get_rfcs(ref)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  index = Relaton::Index.find_or_create :RFC, url: "#{RFC}index-v1.zip", file: INDEX_FILE
         
     | 
| 
      
 42 
     | 
    
         
            +
                  row = index.search(ref).first
         
     | 
| 
      
 43 
     | 
    
         
            +
                  get_page "#{RFC}#{row[:file]}" if row
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                def get_rfcsubseries(ref)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  index = Relaton::Index.find_or_create :RSS, url: "#{RSS}index-v1.zip", file: INDEX_FILE
         
     | 
| 
      
 48 
     | 
    
         
            +
                  row = index.search(ref).first
         
     | 
| 
      
 49 
     | 
    
         
            +
                  get_page "#{RSS}#{row[:file]}" if row
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                def get_ids(ref)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  index = Relaton::Index.find_or_create :IDS, url: "#{IDS}index-v1.zip", file: INDEX_FILE
         
     | 
| 
      
 54 
     | 
    
         
            +
                  row = index.search(ref).first
         
     | 
| 
      
 55 
     | 
    
         
            +
                  get_page "#{IDS}#{row[:file]}" if row
         
     | 
| 
       47 
56 
     | 
    
         
             
                end
         
     | 
| 
       48 
57 
     | 
    
         | 
| 
       49 
58 
     | 
    
         
             
                # @param uri [String]
         
     | 
| 
       50 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 59 
     | 
    
         
            +
                # @return [RelatonIetf::IetfBibliographicItem, nil] HTTP response body
         
     | 
| 
       51 
60 
     | 
    
         
             
                def get_page(uri)
         
     | 
| 
       52 
61 
     | 
    
         
             
                  res = Net::HTTP.get_response(URI(uri))
         
     | 
| 
       53 
62 
     | 
    
         
             
                  return unless res.code == "200"
         
     | 
| 
       54 
63 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
                  res.body
         
     | 
| 
      
 64 
     | 
    
         
            +
                  hash = YAML.safe_load res.body
         
     | 
| 
      
 65 
     | 
    
         
            +
                  hash["fetched"] = Date.today.to_s
         
     | 
| 
      
 66 
     | 
    
         
            +
                  IetfBibliographicItem.from_hash hash
         
     | 
| 
       56 
67 
     | 
    
         
             
                end
         
     | 
| 
       57 
68 
     | 
    
         
             
              end
         
     | 
| 
       58 
69 
     | 
    
         
             
            end
         
     | 
    
        data/lib/relaton_ietf/version.rb
    CHANGED
    
    
| 
         @@ -5,6 +5,12 @@ module RelatonIetf 
     | 
|
| 
       5 
5 
     | 
    
         
             
                class << self
         
     | 
| 
       6 
6 
     | 
    
         
             
                  private
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
      
 8 
     | 
    
         
            +
                  def item_data(doc)
         
     | 
| 
      
 9 
     | 
    
         
            +
                    data = super
         
     | 
| 
      
 10 
     | 
    
         
            +
                    data[:stream] = doc.at("ext/stream")&.text
         
     | 
| 
      
 11 
     | 
    
         
            +
                    data
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       8 
14 
     | 
    
         
             
                  # override RelatonBib::BibliographicItem.bib_item method
         
     | 
| 
       9 
15 
     | 
    
         
             
                  # @param item_hash [Hash]
         
     | 
| 
       10 
16 
     | 
    
         
             
                  # @return [RelatonIetf::IetfBibliographicItem]
         
     | 
    
        data/lib/relaton_ietf.rb
    CHANGED
    
    
    
        data/relaton_ietf.gemspec
    CHANGED
    
    | 
         @@ -10,10 +10,10 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       10 
10 
     | 
    
         
             
              spec.authors       = ["Ribose Inc."]
         
     | 
| 
       11 
11 
     | 
    
         
             
              spec.email         = ["open.source@ribose.com"]
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
              spec.summary       = "RelatonIetf: retrieve IETF Standards for  
     | 
| 
       14 
     | 
    
         
            -
                                   "using the BibliographicItem model"
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.summary       = "RelatonIetf: retrieve IETF Standards for " \
         
     | 
| 
      
 14 
     | 
    
         
            +
                                   "bibliographic use using the BibliographicItem model"
         
     | 
| 
       15 
15 
     | 
    
         
             
              spec.description   = <<~DESCRIPTION
         
     | 
| 
       16 
     | 
    
         
            -
                RelatonIetf: retrieve IETF Standards for bibliographic use 
     | 
| 
      
 16 
     | 
    
         
            +
                RelatonIetf: retrieve IETF Standards for bibliographic use
         
     | 
| 
       17 
17 
     | 
    
         
             
                using the BibliographicItem model.
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                Formerly known as rfcbib.
         
     | 
| 
         @@ -27,16 +27,8 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       27 
27 
     | 
    
         
             
              spec.bindir        = "exe"
         
     | 
| 
       28 
28 
     | 
    
         
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         
     | 
| 
       29 
29 
     | 
    
         
             
              spec.require_paths = ["lib"]
         
     | 
| 
       30 
     | 
    
         
            -
              spec.required_ruby_version = Gem::Requirement.new(">= 2. 
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
              spec.add_development_dependency "equivalent-xml", "~> 0.6"
         
     | 
| 
       33 
     | 
    
         
            -
              spec.add_development_dependency "pry-byebug"
         
     | 
| 
       34 
     | 
    
         
            -
              spec.add_development_dependency "rake", "~> 13.0"
         
     | 
| 
       35 
     | 
    
         
            -
              spec.add_development_dependency "rspec", "~> 3.0"
         
     | 
| 
       36 
     | 
    
         
            -
              spec.add_development_dependency "ruby-jing"
         
     | 
| 
       37 
     | 
    
         
            -
              spec.add_development_dependency "simplecov"
         
     | 
| 
       38 
     | 
    
         
            -
              spec.add_development_dependency "vcr"
         
     | 
| 
       39 
     | 
    
         
            -
              spec.add_development_dependency "webmock"
         
     | 
| 
      
 30 
     | 
    
         
            +
              spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
         
     | 
| 
       40 
31 
     | 
    
         | 
| 
       41 
32 
     | 
    
         
             
              spec.add_dependency "relaton-bib", "~> 1.14.0"
         
     | 
| 
      
 33 
     | 
    
         
            +
              spec.add_dependency "relaton-index", "~> 0.2.3"
         
     | 
| 
       42 
34 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,143 +1,48 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: relaton-ietf
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.14. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.14.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ribose Inc.
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2023- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-07-02 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
     | 
    
         
            -
              name:  
     | 
| 
       15 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
     | 
    
         
            -
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       18 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '0.6'
         
     | 
| 
       20 
     | 
    
         
            -
              type: :development
         
     | 
| 
       21 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       22 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
     | 
    
         
            -
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       25 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: '0.6'
         
     | 
| 
       27 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name: pry-byebug
         
     | 
| 
       29 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
     | 
    
         
            -
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       32 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       34 
     | 
    
         
            -
              type: :development
         
     | 
| 
       35 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       36 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
     | 
    
         
            -
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       39 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       41 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
     | 
    
         
            -
              name: rake
         
     | 
| 
       43 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
     | 
    
         
            -
                requirements:
         
     | 
| 
       45 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       46 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
     | 
    
         
            -
                    version: '13.0'
         
     | 
| 
       48 
     | 
    
         
            -
              type: :development
         
     | 
| 
       49 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       50 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       51 
     | 
    
         
            -
                requirements:
         
     | 
| 
       52 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       53 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
     | 
    
         
            -
                    version: '13.0'
         
     | 
| 
       55 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
     | 
    
         
            -
              name: rspec
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: relaton-bib
         
     | 
| 
       57 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       58 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       59 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       60 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version:  
     | 
| 
       62 
     | 
    
         
            -
              type: : 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: 1.14.0
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
       63 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       64 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       66 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       67 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version:  
     | 
| 
       69 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
     | 
    
         
            -
              name: ruby-jing
         
     | 
| 
       71 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       72 
     | 
    
         
            -
                requirements:
         
     | 
| 
       73 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       74 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       75 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       76 
     | 
    
         
            -
              type: :development
         
     | 
| 
       77 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       78 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       79 
     | 
    
         
            -
                requirements:
         
     | 
| 
       80 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       81 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       83 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       84 
     | 
    
         
            -
              name: simplecov
         
     | 
| 
       85 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       86 
     | 
    
         
            -
                requirements:
         
     | 
| 
       87 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       88 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       89 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       90 
     | 
    
         
            -
              type: :development
         
     | 
| 
       91 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       92 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       93 
     | 
    
         
            -
                requirements:
         
     | 
| 
       94 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       95 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       96 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       97 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       98 
     | 
    
         
            -
              name: vcr
         
     | 
| 
       99 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       100 
     | 
    
         
            -
                requirements:
         
     | 
| 
       101 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       102 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       103 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       104 
     | 
    
         
            -
              type: :development
         
     | 
| 
       105 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       106 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       107 
     | 
    
         
            -
                requirements:
         
     | 
| 
       108 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       109 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       110 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       111 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       112 
     | 
    
         
            -
              name: webmock
         
     | 
| 
       113 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       114 
     | 
    
         
            -
                requirements:
         
     | 
| 
       115 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       116 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       117 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       118 
     | 
    
         
            -
              type: :development
         
     | 
| 
       119 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       120 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       121 
     | 
    
         
            -
                requirements:
         
     | 
| 
       122 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       123 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: 1.14.0
         
     | 
| 
       125 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       126 
     | 
    
         
            -
              name: relaton- 
     | 
| 
      
 28 
     | 
    
         
            +
              name: relaton-index
         
     | 
| 
       127 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       129 
31 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       130 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       131 
     | 
    
         
            -
                    version:  
     | 
| 
      
 33 
     | 
    
         
            +
                    version: 0.2.3
         
     | 
| 
       132 
34 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       133 
35 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       134 
36 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       135 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
       136 
38 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       137 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
     | 
    
         
            -
                    version:  
     | 
| 
       139 
     | 
    
         
            -
            description:  
     | 
| 
       140 
     | 
    
         
            -
               
     | 
| 
      
 40 
     | 
    
         
            +
                    version: 0.2.3
         
     | 
| 
      
 41 
     | 
    
         
            +
            description: |
         
     | 
| 
      
 42 
     | 
    
         
            +
              RelatonIetf: retrieve IETF Standards for bibliographic use
         
     | 
| 
      
 43 
     | 
    
         
            +
              using the BibliographicItem model.
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              Formerly known as rfcbib.
         
     | 
| 
       141 
46 
     | 
    
         
             
            email:
         
     | 
| 
       142 
47 
     | 
    
         
             
            - open.source@ribose.com
         
     | 
| 
       143 
48 
     | 
    
         
             
            executables: []
         
     | 
| 
         @@ -190,14 +95,14 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       190 
95 
     | 
    
         
             
              requirements:
         
     | 
| 
       191 
96 
     | 
    
         
             
              - - ">="
         
     | 
| 
       192 
97 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       193 
     | 
    
         
            -
                  version: 2. 
     | 
| 
      
 98 
     | 
    
         
            +
                  version: 2.7.0
         
     | 
| 
       194 
99 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       195 
100 
     | 
    
         
             
              requirements:
         
     | 
| 
       196 
101 
     | 
    
         
             
              - - ">="
         
     | 
| 
       197 
102 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       198 
103 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       199 
104 
     | 
    
         
             
            requirements: []
         
     | 
| 
       200 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 105 
     | 
    
         
            +
            rubygems_version: 3.3.26
         
     | 
| 
       201 
106 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       202 
107 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       203 
108 
     | 
    
         
             
            summary: 'RelatonIetf: retrieve IETF Standards for bibliographic use using the BibliographicItem
         
     |