relaton-oasis 1.10.0
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 +7 -0
- data/.github/workflows/rake.yml +36 -0
- data/.gitignore +14 -0
- data/.rspec +3 -0
- data/.rubocop.yml +12 -0
- data/Gemfile +12 -0
- data/LICENSE.txt +21 -0
- data/README.adoc +225 -0
- data/Rakefile +12 -0
- data/bin/console +15 -0
- data/bin/rspec +29 -0
- data/bin/setup +8 -0
- data/grammars/basicdoc.rng +1150 -0
- data/grammars/biblio.rng +1238 -0
- data/grammars/isodoc.rng +2634 -0
- data/grammars/reqt.rng +223 -0
- data/lib/relaton_oasis/data_fetcher.rb +91 -0
- data/lib/relaton_oasis/data_parser.rb +204 -0
- data/lib/relaton_oasis/data_parser_utils.rb +89 -0
- data/lib/relaton_oasis/data_part_parser.rb +131 -0
- data/lib/relaton_oasis/hash_converter.rb +15 -0
- data/lib/relaton_oasis/oasis_bibliographic_item.rb +81 -0
- data/lib/relaton_oasis/oasis_bibliography.rb +43 -0
- data/lib/relaton_oasis/processor.rb +51 -0
- data/lib/relaton_oasis/version.rb +5 -0
- data/lib/relaton_oasis/xml_parser.rb +25 -0
- data/lib/relaton_oasis.rb +27 -0
- data/relaton_oasis.gemspec +48 -0
- metadata +214 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
module RelatonOasis
|
|
2
|
+
class DataPartParser
|
|
3
|
+
include RelatonOasis::DataParserUtils
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# Initialize parser.
|
|
7
|
+
#
|
|
8
|
+
# @param [Nokogiri::HTML::Element] node docment node
|
|
9
|
+
#
|
|
10
|
+
def initialize(node)
|
|
11
|
+
@node = node
|
|
12
|
+
@text = node.xpath(
|
|
13
|
+
"./strong/following-sibling::text()|./span/strong/../following-sibling::text()",
|
|
14
|
+
).text.strip
|
|
15
|
+
t = @node.at("./span[@class='citationTitle' or @class='citeTitle']|./em|./i")
|
|
16
|
+
@title = if t then t.text
|
|
17
|
+
else
|
|
18
|
+
@text.match(/(?<content>.+)\s(?:Edited|\d{2}\s\w+\d{4})/)[:content]
|
|
19
|
+
end.strip
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
#
|
|
23
|
+
# Parse document.
|
|
24
|
+
#
|
|
25
|
+
# @return [RelatonOasis::OasisBibliographicItem] bibliographic item
|
|
26
|
+
#
|
|
27
|
+
def parse # rubocop:disable Metrics/MethodLength
|
|
28
|
+
RelatonOasis::OasisBibliographicItem.new(
|
|
29
|
+
fetched: Date.today.to_s,
|
|
30
|
+
type: "standard",
|
|
31
|
+
doctype: parse_doctype,
|
|
32
|
+
title: parse_title,
|
|
33
|
+
docid: parse_docid,
|
|
34
|
+
link: parse_link,
|
|
35
|
+
docnumber: parse_docnumber,
|
|
36
|
+
date: parse_date,
|
|
37
|
+
# abstract: parse_abstract,
|
|
38
|
+
language: ["en"],
|
|
39
|
+
script: ["Latn"],
|
|
40
|
+
# editorialgroup: parse_editorialgroup,
|
|
41
|
+
relation: parse_relation,
|
|
42
|
+
contributor: parse_contributor,
|
|
43
|
+
technology_area: parse_technology_area,
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
#
|
|
48
|
+
# Pase title.
|
|
49
|
+
#
|
|
50
|
+
# @return [Array<RelatonBib::TypedTitleString>] title
|
|
51
|
+
#
|
|
52
|
+
def parse_title
|
|
53
|
+
[RelatonBib::TypedTitleString.new(type: "main", content: @title, language: "en", script: "Latn")]
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
#
|
|
57
|
+
# Parse document number.
|
|
58
|
+
#
|
|
59
|
+
# @return [String] document number
|
|
60
|
+
#
|
|
61
|
+
def parse_docnumber
|
|
62
|
+
ref = @node.at("./span[@class='citationLabel']/strong|./strong|b/span")
|
|
63
|
+
num = ref.text.match(/[^\[\]]+/).to_s
|
|
64
|
+
# some part references need to be added by "Pt" to be distinguishable from root doc
|
|
65
|
+
num += "-Pt" if %w[CMIS-v1.1 DocBook-5.0 XACML-V3.0 mqtt-v3.1.1 OData-JSON-Format-v4.0].include?(num)
|
|
66
|
+
parse_spec num
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
#
|
|
70
|
+
# Parse link.
|
|
71
|
+
#
|
|
72
|
+
# @return [Array<RelatonBib::TypedTitleString>] link
|
|
73
|
+
#
|
|
74
|
+
def parse_link
|
|
75
|
+
l = @node.at("./a")
|
|
76
|
+
[RelatonBib::TypedUri.new(type: "src", content: l[:href])]
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
#
|
|
80
|
+
# Parse date.
|
|
81
|
+
#
|
|
82
|
+
# @return [Array<RelatonBib::BibliographicDate>] bibliographic dates
|
|
83
|
+
#
|
|
84
|
+
def parse_date
|
|
85
|
+
/(?<on>\d{1,2}\s\w+\s\d{4})/ =~ @text
|
|
86
|
+
[RelatonBib::BibliographicDate.new(on: Date.parse(on).to_s, type: "issued")]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# def parse_abstract
|
|
90
|
+
# /\d{2}\s\w+\s\d{4}\.\s(?<content>.+)\sLatest\sversion/ =~ @text
|
|
91
|
+
# [RelatonBib::FormattedString.new(content: content, language: "en", script: "Latn")]
|
|
92
|
+
# end
|
|
93
|
+
|
|
94
|
+
#
|
|
95
|
+
# Parse contributor.
|
|
96
|
+
#
|
|
97
|
+
# @return [Array<RelatonBib::ContributionInfo>] contributors
|
|
98
|
+
#
|
|
99
|
+
def parse_contributor
|
|
100
|
+
@text.match(/(?<=Edited\sby\s)[^.]+/).to_s.split(/,\s|,?\sand\s/).map do |c|
|
|
101
|
+
forename, surname = c.split
|
|
102
|
+
fn = RelatonBib::LocalizedString.new(forename, "en", "Latn")
|
|
103
|
+
sn = RelatonBib::LocalizedString.new(surname, "en", "Latn")
|
|
104
|
+
name = RelatonBib::FullName.new(surname: sn, forename: [fn])
|
|
105
|
+
entity = RelatonBib::Person.new(name: name)
|
|
106
|
+
RelatonBib::ContributionInfo.new(role: [type: "editor"], entity: entity)
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
#
|
|
111
|
+
# Parse relation.
|
|
112
|
+
#
|
|
113
|
+
# @return [Array<RelatonBib::DocumentRelation>] document relations
|
|
114
|
+
#
|
|
115
|
+
def parse_relation
|
|
116
|
+
parser = DataParser.new @node.at("./ancestor::details")
|
|
117
|
+
fref = RelatonBib::FormattedRef.new(content: parser.parse_docid[0].id)
|
|
118
|
+
bib = RelatonOasis::OasisBibliographicItem.new(formattedref: fref)
|
|
119
|
+
[RelatonBib::DocumentRelation.new(type: "partOf", bibitem: bib)]
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
#
|
|
123
|
+
# Parse technology area.
|
|
124
|
+
#
|
|
125
|
+
# @return [Array<String>] technology areas
|
|
126
|
+
#
|
|
127
|
+
def parse_technology_area
|
|
128
|
+
super @node.at("./ancestor::details")
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module RelatonOasis
|
|
2
|
+
class HashConverter < RelatonBib::HashConverter
|
|
3
|
+
@@acronyms = nil
|
|
4
|
+
|
|
5
|
+
class << self
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
# @param item_hash [Hash]
|
|
9
|
+
# @return [RelatonBib::BibliographicItem]
|
|
10
|
+
def bib_item(item_hash)
|
|
11
|
+
OasisBibliographicItem.new(**item_hash)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
module RelatonOasis
|
|
2
|
+
class OasisBibliographicItem < RelatonBib::BibliographicItem
|
|
3
|
+
AREAS = %w[Cloud Content-Technologies Cybersecurity e-Business eGov/Legal
|
|
4
|
+
Emergency-Management Energy Information-Modeling IoT
|
|
5
|
+
Lifecycle-Integration Localization Messaging Privacy/Identity
|
|
6
|
+
Security SOA Web-Services].freeze
|
|
7
|
+
|
|
8
|
+
attr_reader :technology_area
|
|
9
|
+
|
|
10
|
+
#
|
|
11
|
+
# Initialize OasisBibliographicItem.
|
|
12
|
+
#
|
|
13
|
+
# @param [Array<String>] technology_area technology areas
|
|
14
|
+
#
|
|
15
|
+
def initialize(**args)
|
|
16
|
+
@technology_area = args.delete(:technology_area) || []
|
|
17
|
+
uta = @technology_area.reject { |a| AREAS.include? a }
|
|
18
|
+
if uta.any?
|
|
19
|
+
warn "[relaton-oasis] WARNING Unknown technology area: #{uta.join(', ')}"
|
|
20
|
+
warn "[relaton-oasis] (Valid values are: #{AREAS.join(', ')})"
|
|
21
|
+
end
|
|
22
|
+
super
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @param hash [Hash]
|
|
26
|
+
# @return [RelatonBipm::BipmBibliographicItem]
|
|
27
|
+
def self.from_hash(hash)
|
|
28
|
+
item_hash = ::RelatonOasis::HashConverter.hash_to_bib(hash)
|
|
29
|
+
new(**item_hash)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
#
|
|
33
|
+
# Render bibliographic item as XML.
|
|
34
|
+
#
|
|
35
|
+
# @param opts [Hash] options
|
|
36
|
+
# @option opts [Nokogiri::XML::Builder] :builder XML builder
|
|
37
|
+
# @option opts [Boolean] :bibdata true if bibdata is rendered
|
|
38
|
+
# @option opts [String] :lang language code
|
|
39
|
+
#
|
|
40
|
+
# @return [String] XML representation of bibliographic item
|
|
41
|
+
#
|
|
42
|
+
def to_xml(**opts)
|
|
43
|
+
super(**opts) do |b|
|
|
44
|
+
if opts[:bibdata] && technology_area.any?
|
|
45
|
+
b.ext do
|
|
46
|
+
b.doctype doctype if doctype
|
|
47
|
+
editorialgroup&.to_xml b
|
|
48
|
+
technology_area.each { |ta| b.send :"technology-area", ta }
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
#
|
|
55
|
+
# Render bibliographic item as Hash.
|
|
56
|
+
#
|
|
57
|
+
# @return [Hash] bibliographic item as Hash
|
|
58
|
+
#
|
|
59
|
+
def to_hash
|
|
60
|
+
hash = super
|
|
61
|
+
hash["technology_area"] = technology_area if technology_area.any?
|
|
62
|
+
hash
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
#
|
|
66
|
+
# Render bibliographic item as AsciiBib.
|
|
67
|
+
#
|
|
68
|
+
# @param prefix [String] prefix
|
|
69
|
+
#
|
|
70
|
+
# @return [String] bibliographic item as AsciiBib
|
|
71
|
+
#
|
|
72
|
+
def to_asciibib(prefix = "")
|
|
73
|
+
pref = prefix.empty? ? prefix : "#{prefix}."
|
|
74
|
+
out = super
|
|
75
|
+
technology_area.each do |ta|
|
|
76
|
+
out += "#{pref}technology_area:: #{ta}\n"
|
|
77
|
+
end
|
|
78
|
+
out
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RelatonOasis
|
|
4
|
+
# Class methods for search Cenelec standards.
|
|
5
|
+
class OasisBibliography
|
|
6
|
+
ENDPOINT = "https://raw.githubusercontent.com/relaton/relaton-data-oasis/main/data/"
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
# @param text [String]
|
|
10
|
+
# @return [RelatonOasis::HitCollection]
|
|
11
|
+
def search(text, _year = nil)
|
|
12
|
+
/^(?:OASIS\s)?(?<code>.+)/ =~ text
|
|
13
|
+
agent = Mechanize.new
|
|
14
|
+
resp = agent.get "#{ENDPOINT}#{code.upcase}.yaml"
|
|
15
|
+
return unless resp.code == "200"
|
|
16
|
+
|
|
17
|
+
hash = YAML.safe_load resp.body
|
|
18
|
+
OasisBibliographicItem.from_hash hash
|
|
19
|
+
rescue Mechanize::ResponseCodeError => e
|
|
20
|
+
return if e.response_code == "404"
|
|
21
|
+
|
|
22
|
+
raise RelatonBib::RequestError, e.message
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @param code [String] the CEN standard Code to look up
|
|
26
|
+
# @param year [String] the year the standard was published (optional)
|
|
27
|
+
# @param opts [Hash] options; restricted to :all_parts if all-parts
|
|
28
|
+
# reference is required
|
|
29
|
+
# @return [RelatonOasis::OasisBibliographicItem, nil]
|
|
30
|
+
def get(code, year = nil, _opts = {}) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
|
|
31
|
+
warn "[relaton-oasis] (#{code} fetching..."
|
|
32
|
+
bibitem = search code, year
|
|
33
|
+
if bibitem
|
|
34
|
+
docid = bibitem.docidentifier.detect(&:primary).id
|
|
35
|
+
warn "[relaton-oasis] (#{code}) found #{docid}"
|
|
36
|
+
bibitem
|
|
37
|
+
else
|
|
38
|
+
warn "[relaton-oasis] (#{code}) not found"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require "relaton/processor"
|
|
2
|
+
|
|
3
|
+
module RelatonOasis
|
|
4
|
+
class Processor < Relaton::Processor
|
|
5
|
+
def initialize # rubocop:disable Lint/MissingSuper
|
|
6
|
+
@short = :relaton_oasis
|
|
7
|
+
@prefix = "OASIS"
|
|
8
|
+
@defaultprefix = %r{^OASIS\s}
|
|
9
|
+
@idtype = "OASIS"
|
|
10
|
+
@datasets = %w[oasis-open]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# @param code [String]
|
|
14
|
+
# @param date [String, NilClass] year
|
|
15
|
+
# @param opts [Hash]
|
|
16
|
+
# @return [RelatonBib::BibliographicItem]
|
|
17
|
+
def get(code, date, opts)
|
|
18
|
+
::RelatonOasis::OasisBibliography.get(code, date, opts)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# Fetch all the documents from https://www.oasis-open.org/standards/
|
|
23
|
+
#
|
|
24
|
+
# @param [String] source source name
|
|
25
|
+
# @param [Hash] opts
|
|
26
|
+
# @option opts [String] :output directory to output documents
|
|
27
|
+
# @option opts [String] :format
|
|
28
|
+
#
|
|
29
|
+
def fetch_data(_source, opts)
|
|
30
|
+
DataFetcher.fetch(**opts)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @param xml [String]
|
|
34
|
+
# @return [RelatonBib::BibliographicItem]
|
|
35
|
+
def from_xml(xml)
|
|
36
|
+
::RelatonOasis::XMLParser.from_xml xml
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @param hash [Hash]
|
|
40
|
+
# @return [RelatonBib::BibliographicItem]
|
|
41
|
+
def hash_to_bib(hash)
|
|
42
|
+
::RelatonOasis::OasisBibliographicItem.from_hash hash
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Returns hash of XML grammar
|
|
46
|
+
# @return [String]
|
|
47
|
+
def grammar_hash
|
|
48
|
+
@grammar_hash ||= ::RelatonOasis.grammar_hash
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module RelatonOasis
|
|
2
|
+
class XMLParser < RelatonBib::XMLParser
|
|
3
|
+
class << self
|
|
4
|
+
private
|
|
5
|
+
|
|
6
|
+
# Override RelatonBib::XMLParser#item_data method.
|
|
7
|
+
# @param node [Nokogiri::XML::Element]
|
|
8
|
+
# @returtn [Hash]
|
|
9
|
+
def item_data(node)
|
|
10
|
+
data = super
|
|
11
|
+
ext = node.at "./ext"
|
|
12
|
+
return data unless ext
|
|
13
|
+
|
|
14
|
+
data[:technology_area] = ext.xpath("./technology-area").map &:text
|
|
15
|
+
data
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @param item_hash [Hash]
|
|
19
|
+
# @return [RelatonBib::BibliographicItem]
|
|
20
|
+
def bib_item(item_hash)
|
|
21
|
+
OasisBibliographicItem.new(**item_hash)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "mechanize"
|
|
4
|
+
require "relaton_bib"
|
|
5
|
+
require_relative "relaton_oasis/version"
|
|
6
|
+
require_relative "relaton_oasis/oasis_bibliographic_item"
|
|
7
|
+
require_relative "relaton_oasis/xml_parser"
|
|
8
|
+
require_relative "relaton_oasis/hash_converter"
|
|
9
|
+
require_relative "relaton_oasis/oasis_bibliography"
|
|
10
|
+
require_relative "relaton_oasis/data_fetcher"
|
|
11
|
+
require_relative "relaton_oasis/data_parser_utils"
|
|
12
|
+
require_relative "relaton_oasis/data_parser"
|
|
13
|
+
require_relative "relaton_oasis/data_part_parser"
|
|
14
|
+
|
|
15
|
+
module RelatonOasis
|
|
16
|
+
class Error < StandardError; end
|
|
17
|
+
# Your code goes here...
|
|
18
|
+
|
|
19
|
+
# Returns hash of XML reammar
|
|
20
|
+
# @return [String]
|
|
21
|
+
def self.grammar_hash
|
|
22
|
+
gem_path = File.expand_path "..", __dir__
|
|
23
|
+
grammars_path = File.join gem_path, "grammars", "*"
|
|
24
|
+
grammars = Dir[grammars_path].sort.map { |gp| File.read gp }.join
|
|
25
|
+
Digest::MD5.hexdigest grammars
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/relaton_oasis/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "relaton-oasis"
|
|
7
|
+
spec.version = RelatonOasis::VERSION
|
|
8
|
+
spec.authors = ["Ribose Inc."]
|
|
9
|
+
spec.email = ["open.source@ribose.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "RelatonOasis: retrieve OASIS Standards for bibliographic use "\
|
|
12
|
+
"using the BibliographicItem model"
|
|
13
|
+
spec.description = "RelatonOasis: retrieve OASIS Standards for bibliographic use "\
|
|
14
|
+
"using the BibliographicItem model"
|
|
15
|
+
spec.homepage = "https://github.com/metanorma/relaton-oasis"
|
|
16
|
+
spec.license = "BSD-2-Clause"
|
|
17
|
+
spec.required_ruby_version = ">= 2.5.0"
|
|
18
|
+
|
|
19
|
+
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
|
20
|
+
|
|
21
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
22
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
|
23
|
+
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
|
24
|
+
|
|
25
|
+
# Specify which files should be added to the gem when it is released.
|
|
26
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
27
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
28
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
29
|
+
end
|
|
30
|
+
spec.bindir = "exe"
|
|
31
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
32
|
+
spec.require_paths = ["lib"]
|
|
33
|
+
|
|
34
|
+
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
|
35
|
+
spec.add_development_dependency "pry-byebug"
|
|
36
|
+
spec.add_development_dependency "rubocop-performance"
|
|
37
|
+
spec.add_development_dependency "rubocop-rails"
|
|
38
|
+
spec.add_development_dependency "ruby-jing"
|
|
39
|
+
spec.add_development_dependency "simplecov"
|
|
40
|
+
spec.add_development_dependency "vcr", "~> 5.0.0"
|
|
41
|
+
spec.add_development_dependency "webmock"
|
|
42
|
+
|
|
43
|
+
spec.add_dependency "mechanize"
|
|
44
|
+
spec.add_dependency "relaton-bib", "~> 1.10.0"
|
|
45
|
+
|
|
46
|
+
# For more information and examples about making a new gem, checkout our
|
|
47
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
|
48
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: relaton-oasis
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.10.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Ribose Inc.
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2022-03-18 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: equivalent-xml
|
|
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: rubocop-performance
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rubocop-rails
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
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: 5.0.0
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 5.0.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'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: mechanize
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: relaton-bib
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - "~>"
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: 1.10.0
|
|
146
|
+
type: :runtime
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - "~>"
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: 1.10.0
|
|
153
|
+
description: 'RelatonOasis: retrieve OASIS Standards for bibliographic use using the
|
|
154
|
+
BibliographicItem model'
|
|
155
|
+
email:
|
|
156
|
+
- open.source@ribose.com
|
|
157
|
+
executables: []
|
|
158
|
+
extensions: []
|
|
159
|
+
extra_rdoc_files: []
|
|
160
|
+
files:
|
|
161
|
+
- ".github/workflows/rake.yml"
|
|
162
|
+
- ".gitignore"
|
|
163
|
+
- ".rspec"
|
|
164
|
+
- ".rubocop.yml"
|
|
165
|
+
- Gemfile
|
|
166
|
+
- LICENSE.txt
|
|
167
|
+
- README.adoc
|
|
168
|
+
- Rakefile
|
|
169
|
+
- bin/console
|
|
170
|
+
- bin/rspec
|
|
171
|
+
- bin/setup
|
|
172
|
+
- grammars/basicdoc.rng
|
|
173
|
+
- grammars/biblio.rng
|
|
174
|
+
- grammars/isodoc.rng
|
|
175
|
+
- grammars/reqt.rng
|
|
176
|
+
- lib/relaton_oasis.rb
|
|
177
|
+
- lib/relaton_oasis/data_fetcher.rb
|
|
178
|
+
- lib/relaton_oasis/data_parser.rb
|
|
179
|
+
- lib/relaton_oasis/data_parser_utils.rb
|
|
180
|
+
- lib/relaton_oasis/data_part_parser.rb
|
|
181
|
+
- lib/relaton_oasis/hash_converter.rb
|
|
182
|
+
- lib/relaton_oasis/oasis_bibliographic_item.rb
|
|
183
|
+
- lib/relaton_oasis/oasis_bibliography.rb
|
|
184
|
+
- lib/relaton_oasis/processor.rb
|
|
185
|
+
- lib/relaton_oasis/version.rb
|
|
186
|
+
- lib/relaton_oasis/xml_parser.rb
|
|
187
|
+
- relaton_oasis.gemspec
|
|
188
|
+
homepage: https://github.com/metanorma/relaton-oasis
|
|
189
|
+
licenses:
|
|
190
|
+
- BSD-2-Clause
|
|
191
|
+
metadata:
|
|
192
|
+
homepage_uri: https://github.com/metanorma/relaton-oasis
|
|
193
|
+
source_code_uri: https://github.com/metanorma/relaton-oasis
|
|
194
|
+
post_install_message:
|
|
195
|
+
rdoc_options: []
|
|
196
|
+
require_paths:
|
|
197
|
+
- lib
|
|
198
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
199
|
+
requirements:
|
|
200
|
+
- - ">="
|
|
201
|
+
- !ruby/object:Gem::Version
|
|
202
|
+
version: 2.5.0
|
|
203
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
|
+
requirements:
|
|
205
|
+
- - ">="
|
|
206
|
+
- !ruby/object:Gem::Version
|
|
207
|
+
version: '0'
|
|
208
|
+
requirements: []
|
|
209
|
+
rubygems_version: 3.2.3
|
|
210
|
+
signing_key:
|
|
211
|
+
specification_version: 4
|
|
212
|
+
summary: 'RelatonOasis: retrieve OASIS Standards for bibliographic use using the BibliographicItem
|
|
213
|
+
model'
|
|
214
|
+
test_files: []
|