Skip to content
RFCBib: retrieve RFC Standards for bibliographic use using the BibliographicItem model
Ruby Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
spec
.gitignore
.hound.yml
.rspec
.rubocop.yml
.travis.yml
Gemfile
Gemfile.lock
LICENSE.txt
README.adoc
Rakefile
appveyor.yml
relaton_ietf.gemspec

README.adoc

RelatonIetf

Gem Version Build Status Appveyor Build Status Code Climate

Formerly known as rfcbib.

RelatonIetf is a Ruby gem that search and fetch standards from the Internet Engineering Task Force (IETF), including RFCs.

Installation

Add this line to your application’s Gemfile:

gem 'relaton-ietf'

And then execute:

$ bundle

Or install it yourself as:

$ gem install relaton-ietf

Usage

Search document

require 'relaton_ietf'

item = RelatonIetf::IetfBibliography.search 'RFC 8341'
=> #<RelatonIetf::IetfBibliographicItem:0x007fd1875e7f58
...

# Return nil if document doesn't exist.
RelatonIetf::IetfBibliography.search '1111'
1111.xml: not recognised for RFC
=> nil

Serialization

item.to_xml
=>"<bibitem id="RFC8341">
  <fetched>2019-06-05</fetched>
  <title format="text/plain" language="en" script="Latn">Network Configuration Access Control Model</title>
  <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
  <docidentifier type="IETF">RFC 8341</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8341</docidentifier>
  <date type="published">
    <on>2018-03</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      <name>
        <completename language="en">A. Bierman</completename>
      </name>
      <affiliation>
        <organization>
          <name>IETF</name>
          <abbreviation>IETF</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      <name>
        <completename language="en">M. Bjorklund</completename>
      </name>
      <affiliation>
        <organization>
          <name>IETF</name>
          <abbreviation>IETF</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <series type="main">
    <title format="text/plain" language="en" script="Latn">STD</title>
    <number>91</number>
  </series>
  <series type="main">
    <title format="text/plain" language="en" script="Latn">RFC</title>
    <number>8341</number>
  </series>
</bibitem>"

With bibdata: true option XML output wrapped with bibdata element and ext element added.

item.to_xml bibdata: true
=>"<bibdata>
  <fetched>2019-06-05</fetched>
  <title format="text/plain" language="en" script="Latn">Network Configuration Access Control Model</title>
  <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
  ...
  <ext>
    <doctype>rfc</doctype>
  </ext>
</bibdata>"

Parse a file locally

item = Relaton::Provider::Ietf.from_rfcxml File.read("rfc.xml")
=> #<RelatonIetf::IetfBibliographicItem:0x007fa8cda79ab8
...

item.to_xml bibdata: true
=>"<bibdata>
...

Create bibliographic item form YAML

hash = YAML.load_file 'spec/examples/ietf_bib_item.yml'
=> {"id"=>"RFC 8341",
...

bib_hash = RelatonIetf::HashConverter.hash_to_bib hash
=> {:id=>"RFC 8341",
...

RelatonIetf::IetfBibliographicItem.new bib_hash
=> #<RelatonIetf::IetfBibliographicItem:0x007f9a929dde40
...

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/metanorma/relaton-ietf.

License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).

You can’t perform that action at this time.