relaton-bib 1.9.6 → 1.9.10

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: 04d616ee7971147c734b6e0520531c4e9b529e76b53c22a98dca1c36b6f49285
4
- data.tar.gz: 2762c1d26b7a07888c3605939ae18de1b6f2ef44da7f1513dc779e3207ff176f
3
+ metadata.gz: 944fd26ef5c5b32d7a9a5023bc1c2291f6bfb772814c19bfd214dc951449186c
4
+ data.tar.gz: 0b168752f3e1c622cdcb04c24b7f8e0d492bea3617b0e8bbcb1e2e388717e3ce
5
5
  SHA512:
6
- metadata.gz: beffce777ed3ef33181363edaf57a8e1efced984bcc19ffae88eaa8087a92e48d044b042686dc4b5e6e545f41fe7f67c1eb573abaddc4e056adc439643f0b12a
7
- data.tar.gz: 44d2809601f70d17db2f5601a29614720fa13a0cfa3fbb1665406e0c4396390862688fc41cbd26de421e19efb5643a61e184b73bf2cb47be567c7aa4788ad4a4
6
+ metadata.gz: 6a0ee9af618a698c0ff2552185f4520e1bb37023ee0b51d5c8757a1a9b490631b589d5da49203cd099460d1807f1e1f2e71a85eb0cda25841e17cc9fecbcc124
7
+ data.tar.gz: f4f8cdc21e0320d29f5c40d7732fbb9af3fea8fd3c3db4b841895f8c316eaa88ce5e3033038f05b7e278f1fd31501f0a9e75b26e79ccab55137619b19dc47660
data/.rubocop.yml CHANGED
@@ -2,6 +2,8 @@
2
2
  # https://github.com/riboseinc/oss-guides
3
3
  # All project-specific additions and overrides should be specified in this file.
4
4
 
5
+ require: rubocop-rails
6
+
5
7
  inherit_from:
6
8
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
9
  AllCops:
@@ -159,10 +159,11 @@ module RelatonBib
159
159
  # @option copyright [String, NilClass] :to
160
160
  # @option copyright [String, NilClass] :scope
161
161
  #
162
- # @param date [Array<Hash>]
162
+ # @param date [Array<Hash, RelatonBib::BibliographicDate>]
163
163
  # @option date [String] :type
164
- # @option date [String] :from
165
- # @option date [String] :to
164
+ # @option date [String, nil] :from required if :on is nil
165
+ # @option date [String, nil] :to
166
+ # @option date [String, nil] :on required if :from is nil
166
167
  #
167
168
  # @param contributor [Array<Hash>]
168
169
  # @option contributor [RealtonBib::Organization, RelatonBib::Person]
@@ -176,7 +177,7 @@ module RelatonBib
176
177
  # @option abstract [String] :content
177
178
  # @option abstract [String] :language
178
179
  # @option abstract [String] :script
179
- # @option abstract [String] :type
180
+ # @option abstract [String] :format
180
181
  #
181
182
  # @param relation [Array<Hash>]
182
183
  # @option relation [String] :type
@@ -828,10 +829,11 @@ module RelatonBib
828
829
  builder.seriesInfo(name: di.type, value: di.id)
829
830
  end
830
831
  end
831
- snames = ["ANSI", "BCP", "RFC", "STD"]
832
- series.each do |s|
833
- next unless s.title && snames.include?(s.title.title.to_s)
834
-
832
+ di_types = docidentifier.map(&:type)
833
+ series.select do |s|
834
+ s.title && !di_types.include?(s.title.title.to_s) &&
835
+ !BibXMLParser::SERIESINFONAMES.include?(s.title.title.to_s)
836
+ end.uniq { |s| s.title.title.to_s }.each do |s|
835
837
  si = builder.seriesInfo(name: s.title.title.to_s)
836
838
  si[:value] = s.number if s.number
837
839
  end
@@ -67,11 +67,12 @@ module RelatonBib
67
67
  #
68
68
  def docids(reference, ver) # rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity,Metrics/AbcSize
69
69
  ret = []
70
- sfid = reference.at("./seriesInfo[@name='#{self::FLAVOR}']", "./front/seriesInfo[@name='#{self::FLAVOR}']")
70
+ sfid = reference.at("./seriesInfo[@name='#{self::FLAVOR}']",
71
+ "./front/seriesInfo[@name='#{self::FLAVOR}']")
71
72
  if sfid
72
73
  ret << DocumentIdentifier.new(type: sfid[:name], id: sfid[:value])
73
74
  elsif self::FLAVOR && (id = (reference[:anchor] || reference[:docName] || reference[:number]))
74
- ret << DocumentIdentifier.new( type: self::FLAVOR, id: id.sub(/^(RFC)/, "\\1 "))
75
+ ret << DocumentIdentifier.new(type: self::FLAVOR, id: id.sub(/^(RFC)/, "\\1 "))
75
76
  end
76
77
  if (id = reference[:anchor])
77
78
  ret << DocumentIdentifier.new(type: "rfc-anchor", id: id)
@@ -138,10 +139,9 @@ module RelatonBib
138
139
  # @return [Array<RelatonBib::FormattedString>]
139
140
  def abstracts(ref)
140
141
  ref.xpath("./front/abstract").map do |a|
141
- FormattedString.new(
142
- content: a.children.to_s.gsub(/(<\/?)t(>)/, '\1p\2'),
143
- language: language(ref), script: "Latn", format: "text/html"
144
- )
142
+ c = a.children.to_s.gsub(/\s*(<\/?)t(>)\s*/, '\1p\2').gsub(/\n/, "").squeeze " "
143
+ FormattedString.new(content: c, language: language(ref), script: "Latn",
144
+ format: "text/html")
145
145
  end
146
146
  end
147
147
 
@@ -288,6 +288,8 @@ module RelatonBib
288
288
  d = [date[:year], month(date[:month]), (date[:day] || 1)].compact.join "-"
289
289
  date = Time.parse(d).strftime "%Y-%m-%d"
290
290
  [BibliographicDate.new(type: "published", on: date)]
291
+ rescue ArgumentError
292
+ []
291
293
  end
292
294
 
293
295
  # @param reference [Nokogiri::XML::Element]
@@ -82,6 +82,8 @@ module RelatonBib
82
82
 
83
83
  # @param entity [RelatonBib::Person, RelatonBib::Organization]
84
84
  # @param role [Array<Hash>]
85
+ # @option role [String] :type
86
+ # @option role [Array<String>] :description
85
87
  def initialize(entity:, role: [])
86
88
  if role.empty?
87
89
  role << { type: entity.is_a?(Person) ? "author" : "publisher" }
@@ -94,7 +96,7 @@ module RelatonBib
94
96
  # @option opts [Nokogiri::XML::Builder] :builder XML builder
95
97
  # @option opts [String, Symbol] :lang language
96
98
  def to_xml(**opts)
97
- entity.to_xml **opts
99
+ entity.to_xml(**opts)
98
100
  end
99
101
 
100
102
  # @return [Hash]
@@ -35,7 +35,7 @@ module RelatonBib
35
35
 
36
36
  # @return [true]
37
37
  def presence?
38
- true
38
+ technical_committee.any?
39
39
  end
40
40
  end
41
41
  end
@@ -189,8 +189,8 @@ module RelatonBib
189
189
  # @option opts [String, Symbol] :lang language
190
190
  def to_xml(**opts)
191
191
  opts[:builder].person do |builder|
192
- name.to_xml **opts
193
- affiliation.each { |a| a.to_xml **opts }
192
+ name.to_xml(**opts)
193
+ affiliation.each { |a| a.to_xml(**opts) }
194
194
  identifier.each { |id| id.to_xml builder }
195
195
  contact.each { |contact| contact.to_xml builder }
196
196
  end
@@ -210,7 +210,7 @@ module RelatonBib
210
210
  # @count [Integer] number of persons
211
211
  # @return [String]
212
212
  def to_asciibib(prefix = "", count = 1) # rubocop:disable Metrics/AbcSize
213
- pref = prefix.sub /\*$/, "person"
213
+ pref = prefix.sub(/\*$/, "person")
214
214
  out = count > 1 ? "#{pref}::\n" : ""
215
215
  out += name.to_asciibib pref
216
216
  affiliation.each { |af| out += af.to_asciibib pref, affiliation.size }
@@ -72,6 +72,8 @@ module RelatonBib
72
72
  end
73
73
 
74
74
  class TypedTitleString
75
+ ARGS = %i[content language script format].freeze
76
+
75
77
  # @return [String]
76
78
  attr_reader :type
77
79
 
@@ -93,9 +95,7 @@ module RelatonBib
93
95
  if args[:title]
94
96
  @title = args[:title]
95
97
  else
96
- fsargs = args.select do |k, _v|
97
- %i[content language script format].include? k
98
- end
98
+ fsargs = args.select { |k, _v| ARGS.include? k }
99
99
  @title = FormattedString.new(**fsargs)
100
100
  end
101
101
  end
@@ -5,7 +5,7 @@ module RelatonBib
5
5
  class TypedUri
6
6
  # @return [Symbol] :src/:obp/:rss
7
7
  attr_reader :type
8
- # @retutn [URI]
8
+ # @retutn [Addressable::URI]
9
9
  attr_reader :content
10
10
 
11
11
  # @param type [String, NilClass] src/obp/rss
@@ -37,7 +37,7 @@ module RelatonBib
37
37
  # @param count [Integer] number of links
38
38
  # @return [String]
39
39
  def to_asciibib(prefix = "", count = 1)
40
- pref = prefix.empty? ? "link" : prefix + ".link"
40
+ pref = prefix.empty? ? "link" : "#{prefix}.link"
41
41
  out = count > 1 ? "#{pref}::\n" : ""
42
42
  out += "#{pref}.type:: #{type}\n" if type
43
43
  out += "#{pref}.content:: #{content}\n"
@@ -1,3 +1,3 @@
1
1
  module RelatonBib
2
- VERSION = "1.9.6".freeze
2
+ VERSION = "1.9.10".freeze
3
3
  end
data/lib/relaton_bib.rb CHANGED
@@ -14,9 +14,9 @@ module RelatonBib
14
14
  class RequestError < StandardError; end
15
15
 
16
16
  class << self
17
- # @param date [String, Integer, Date]
18
- # @param str [Boolean]
19
- # @return [Date, nil]
17
+ # @param date [String, Integer, Date] date
18
+ # @param str [Boolean] return string or Date
19
+ # @return [Date, String, nil] date
20
20
  def parse_date(date, str = true) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity,Metrics/AbcSize
21
21
  return date if date.is_a?(Date)
22
22
 
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.6
4
+ version: 1.9.10
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-10-25 00:00:00.000000000 Z
11
+ date: 2021-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug