relaton-bib 1.9.15 → 1.9.19

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df627fef24296d28c6a6802972a545ce575e89065efc41d07a1783c05fa9d1ad
4
- data.tar.gz: aff5fe6709c54247e238523cbb49b04137723dc2264e79c054415b1ed29bd706
3
+ metadata.gz: fcf7272c206af7f7206cc3886a744db7a1c0084d1f999164f7971829c16e640e
4
+ data.tar.gz: c5260c213ab4542c98e5df926bb638451345fded8b7ebaa76897212aab9bb7c5
5
5
  SHA512:
6
- metadata.gz: e787baf783f229454cbf25423e6ed998476df6d3a4a70654f43c6385be9e74f92913f5526f6d589b5e5c3a23de2123e578109bac9cef79d76734c9c67a6100b1
7
- data.tar.gz: e1977eb5ab24edd762217c6799319adfb4da51decf4cd9d1cf0660d1e2102eeb568a47a734a9bff40e45748c6fa08efd17f1e094d76fc8285bfb59e100b42637
6
+ metadata.gz: 5a60302d3043fdac1e1ca6b1ebfbd7244b2788a266d5c6392f1279797f4e4c6fc7f3a951cc05b79bf24c7f2bfc7267bf1d1740ddfefe8534a54156233bb1664a
7
+ data.tar.gz: c5f46067ab37b963dee5c04fa9294a9e3522906ae011af2397eb18f88b0c48d37b0727eb44ca78dd17ba77e493a4246a8feef4c338ae68564a320e1cd148c0bf
@@ -818,7 +818,7 @@ module RelatonBib
818
818
  return attrs if attrs.any?
819
819
 
820
820
  docidentifier.first&.tap do |di|
821
- return { anchor: di.id }
821
+ return { anchor: di.id.gsub(" ", ".") }
822
822
  end
823
823
  end
824
824
 
@@ -935,8 +935,13 @@ module RelatonBib
935
935
  def render_organization(builder, org)
936
936
  return unless org
937
937
 
938
- o = builder.organization org.name.first&.content
939
- o[:abbrev] = org.abbreviation.content if org.abbreviation
938
+ ab = org.abbreviation&.content
939
+ on = org.name.first&.content
940
+ orgname = if BibXMLParser::ORGNAMES.key?(ab) then ab
941
+ else BibXMLParser::ORGNAMES.key(on) || on || ab
942
+ end
943
+ o = builder.organization orgname
944
+ o[:abbrev] = ab if ab
940
945
  end
941
946
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
942
947
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
@@ -2,6 +2,10 @@ module RelatonBib
2
2
  module BibXMLParser
3
3
  SERIESINFONAMES = ["DOI", "Internet-Draft"].freeze
4
4
  FLAVOR = nil
5
+ ORGNAMES = {
6
+ "IEEE" => "Istitute of Electrical and Electronics Engineers",
7
+ "W3C" => "World Wide Web Consortium",
8
+ }.freeze
5
9
 
6
10
  def parse(bibxml, url: nil, is_relation: false, ver: nil)
7
11
  doc = Nokogiri::XML bibxml
@@ -82,7 +86,7 @@ module RelatonBib
82
86
  type_match = id&.match(/^(3GPP|W3C|[A-Z]{2,})(?:\.(?=[A-Z])|(?=\d))/)
83
87
  type = self::FLAVOR || (type_match && type_match[1])
84
88
  if id
85
- /^(?<pref>I-D|3GPP|W3C|[A-Z]{2,})\.?(?<num>.+)/ =~ id
89
+ /^(?<pref>I-D|3GPP|W3C|[A-Z]{2,})[._]?(?<num>.+)/ =~ id
86
90
  num.sub!(/^-?0+/, "") if %w[RFC BCP FYI STD].include?(pref)
87
91
  pid = pref ? "#{pref} #{num}" : id
88
92
  ret << DocumentIdentifier.new(type: type, id: pid)
@@ -209,7 +213,8 @@ module RelatonBib
209
213
  # "front/author[not(@surname)][not(@fullname)]/organization",
210
214
  # ).map do |org|
211
215
  org = contrib.at("./organization")
212
- { entity: new_org(org.text, org[:abbrev]), role: [contributor_role(contrib)] }
216
+ name = ORGNAMES[org.text] || org.text
217
+ { entity: new_org(name, org[:abbrev]), role: [contributor_role(contrib)] }
213
218
  # end
214
219
  end
215
220
 
@@ -9,7 +9,7 @@ module RelatonBib
9
9
 
10
10
  # @param id [String]
11
11
  # @param type [String, NilClass]
12
- # @param scoope [String, NilClass]
12
+ # @param scope [String, NilClass]
13
13
  def initialize(id:, type: nil, scope: nil)
14
14
  @id = id
15
15
  @type = type
@@ -36,7 +36,7 @@ module RelatonBib
36
36
  attr_reader :source_locality
37
37
 
38
38
  # @param type [String]
39
- # @parma description [RelatonBib::FormattedString, NilClass]
39
+ # @param description [RelatonBib::FormattedString, NilClass]
40
40
  # @param bibitem [RelatonBib::BibliographicItem,
41
41
  # RelatonIso::IsoBibliographicItem]
42
42
  # @param locality [Array<RelatonBib::Locality, RelatonBib::LocalityStack>]
@@ -68,7 +68,7 @@ module RelatonBib
68
68
  # @return [String, NilClass]
69
69
  attr_reader :abbreviation
70
70
 
71
- # @parma value [String]
71
+ # @param value [String]
72
72
  # @param abbreviation [String, NilClass]
73
73
  def initialize(value:, abbreviation: nil)
74
74
  @value = value
@@ -56,10 +56,14 @@ module RelatonBib
56
56
  else
57
57
  builder.parent["language"] = language.join(",") if language&.any?
58
58
  builder.parent["script"] = script.join(",") if script&.any?
59
- builder.parent << content # .encode(xml: :text)
59
+ builder.parent << escaped_content # .encode(xml: :text)
60
60
  end
61
61
  end
62
62
 
63
+ def escaped_content
64
+ content.encode("UTF-8") # .gsub(/&/, "&amp;").gsub(/"/, "&quot;").gsub(/'/, "&apos;")
65
+ end
66
+
63
67
  # @return [Hash]
64
68
  def to_hash # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
65
69
  if content.is_a? String
@@ -77,7 +81,7 @@ module RelatonBib
77
81
  # @param count [Integer] number of elements
78
82
  # @return [String]
79
83
  def to_asciibib(prefix = "", count = 1, has_attrs = false) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity,Metrics/MethodLength
80
- pref = prefix.empty? ? prefix : prefix + "."
84
+ pref = prefix.empty? ? prefix : "#{prefix}."
81
85
  if content.is_a? String
82
86
  unless language&.any? || script&.any? || has_attrs
83
87
  return "#{prefix}:: #{content}\n"
@@ -70,17 +70,18 @@ module RelatonBib
70
70
 
71
71
  # rubocop:disable Metrics/MethodLength
72
72
 
73
- # @param type [String, NilClass]
74
- # @param agency [Array<String>]
75
- # @parma class [Stirng, NilClass]
76
- # @parma docnumber [String]
77
- # @param partnumber [String, NilClass]
78
- # @param edition [String, NilClass]
79
- # @param version [String, NilClass]
80
- # @param supplementtype [String, NilClass]
81
- # @param supplementnumber [String, NilClass]
82
- # @param language [String, NilClass]
83
- # @param year [String, NilClass]
73
+ # @param docnumber [String]
74
+ # @param args [Hash]
75
+ # @option args [String, nil] :type
76
+ # @option args [Array<String>] :agency
77
+ # @option args [Stirng, nil] :class
78
+ # @option args [String, nil] :partnumber
79
+ # @option args [String, nil] :edition
80
+ # @option args [String, nil] :version
81
+ # @option args [String, nil] :supplementtype
82
+ # @option args [String, nil] :supplementnumber
83
+ # @option args [String, nil] :language
84
+ # @option args [String, nil] :year
84
85
  def initialize(docnumber:, **args)
85
86
  @type = args[:type]
86
87
  @agency = args[:agency]
@@ -15,7 +15,7 @@ module RelatonBib
15
15
  @content = Addressable::URI.parse content if content
16
16
  end
17
17
 
18
- # @parma url [String]
18
+ # @param url [String]
19
19
  def content=(url)
20
20
  @content = Addressable::URI.parse url
21
21
  end
@@ -1,3 +1,3 @@
1
1
  module RelatonBib
2
- VERSION = "1.9.15".freeze
2
+ VERSION = "1.9.19".freeze
3
3
  end
@@ -11,7 +11,7 @@ module RelatonBib
11
11
  bib_item item_data(bibitem)
12
12
  else
13
13
  warn "[relaton-bib] WARNING: can't find bibitem or bibdata element "\
14
- "in the XML"
14
+ "in the XML"
15
15
  end
16
16
  end
17
17
 
@@ -320,7 +320,8 @@ module RelatonBib
320
320
  # @return [Array<RelatonBib::FormattedString>]
321
321
  def fetch_abstract(item)
322
322
  item.xpath("./abstract").map do |a|
323
- FormattedString.new(content: a.children.to_s, language: a[:language],
323
+ c = a.children.to_s
324
+ FormattedString.new(content: c, language: a[:language],
324
325
  script: a[:script], format: a[:format])
325
326
  end
326
327
  end
data/lib/relaton_bib.rb CHANGED
@@ -42,10 +42,10 @@ module RelatonBib
42
42
  # @param array [Array]
43
43
  # @return [Array<String>, String]
44
44
  def single_element_array(array)
45
- if array.size > 1
46
- array.map { |e| e.is_a?(String) ? e : e.to_hash }
47
- else
48
- array.first.is_a?(String) ? array[0] : array.first&.to_hash
49
- end
45
+ # if array.size > 1
46
+ array.map { |e| e.is_a?(String) ? e : e.to_hash }
47
+ # else
48
+ # array.first.is_a?(String) ? array[0] : array.first&.to_hash
49
+ # end
50
50
  end
51
51
  end
data/relaton-bib.gemspec CHANGED
@@ -36,5 +36,5 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency "addressable"
37
37
  spec.add_dependency "bibtex-ruby"
38
38
  spec.add_dependency "iso639"
39
- spec.add_dependency "nokogiri"
39
+ spec.add_dependency "nokogiri", "~> 1.12.5"
40
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-bib
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.15
4
+ version: 1.9.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-30 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug
@@ -182,16 +182,16 @@ dependencies:
182
182
  name: nokogiri
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ">="
185
+ - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '0'
187
+ version: 1.12.5
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ">="
192
+ - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '0'
194
+ version: 1.12.5
195
195
  description: 'RelatonBib: Ruby XMLDOC impementation.'
196
196
  email:
197
197
  - open.source@ribose.com