relaton-bib 1.9.20 → 1.9.21

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: b714ee74a9d4da85784bbcc2e7fb50c9548215c1399a799290646eb230529f2f
4
- data.tar.gz: 75cf8abea4defed1d25cd241443ae6b8df03688a47e8cce4e907bab03315d978
3
+ metadata.gz: fcb3b3d66701b4722151be5191a2eabfb1bc1e00453051e1a903e2af8c2b30b2
4
+ data.tar.gz: eca150d7708507187a93e6cff06eda12cfeef54dc1a6ac93d8244c0db6accdaa
5
5
  SHA512:
6
- metadata.gz: 50dd80e6be598a65d4ded5f35e047b7b32a1c9cdcdacdd0539d13e149533501f093e95bbb176b1a58f566274c16ec88b461d50c295daa9bb46c52a9c683bf949
7
- data.tar.gz: 58ac55543ac1f21477ca3c1125c8d50ccd88aee77c1ab74c4aa374839549d289083827d3b54795cb35901fa26bf46b3a7f4fff46c7b86e8ee23043f05c18ba04
6
+ metadata.gz: 7f390c1e5e802966bc00002bf54bd1d246b45fc293188dc829940d90c32bc89db6b4e49e2ef4de14c13751c6ac6cff9692d23e558c1fe929815523f99de2a680
7
+ data.tar.gz: 404f08acad50390f9e63af5a3a30685eb7d50a085e6d98d8730277062b644f38ac5f3ab75c959a25523457bed001ef6a7f8d6dd063b5d227319a0e651936f379
@@ -29,14 +29,22 @@ module RelatonBib
29
29
 
30
30
  # @param part [Symbol] :year, :month, :day, :date
31
31
  # @return [String, Date, nil]
32
- def from(part = nil)
32
+ def from(part = nil) # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
33
33
  d = instance_variable_get "@#{__callee__}".to_sym
34
34
  return d unless part && d
35
35
 
36
- date = parse_date(d)
37
- return date if part == :date
36
+ # date = parse_date(d)
37
+ # return date if part == :date
38
38
 
39
- date.is_a?(Date) ? date.send(part) : date
39
+ parts = d.split "-"
40
+ case part
41
+ when :year then parts[0]&.to_i
42
+ when :month then parts[1]&.to_i
43
+ when :day then parts[2]&.to_i
44
+ else parse_date(d)
45
+ end
46
+
47
+ # date.is_a?(Date) ? date.send(part) : date
40
48
  end
41
49
 
42
50
  alias_method :to, :from
@@ -71,7 +79,7 @@ module RelatonBib
71
79
  # @param count [Integer] number of dates
72
80
  # @return [String]
73
81
  def to_asciibib(prefix = "", count = 1)
74
- pref = prefix.empty? ? prefix : prefix + "."
82
+ pref = prefix.empty? ? prefix : "#{prefix}."
75
83
  out = count > 1 ? "#{pref}date::\n" : ""
76
84
  out += "#{pref}date.type:: #{type}\n"
77
85
  out += "#{pref}date.on:: #{on}\n" if on
@@ -165,8 +165,8 @@ module RelatonBib
165
165
  # @option date [String, nil] :to
166
166
  # @option date [String, nil] :on required if :from is nil
167
167
  #
168
- # @param contributor [Array<Hash>]
169
- # @option contributor [RealtonBib::Organization, RelatonBib::Person]
168
+ # @param contributor [Array<Hash, RelatonBib::ContributionInfo>]
169
+ # @option contributor [RealtonBib::Organization, RelatonBib::Person] :entity
170
170
  # @option contributor [String] :type
171
171
  # @option contributor [String] :from
172
172
  # @option contributor [String] :to
@@ -860,9 +860,9 @@ module RelatonBib
860
860
  builder.seriesInfo(name: di.type, value: di.id)
861
861
  end
862
862
  end
863
- di_types = docidentifier.map(&:type)
863
+ # di_types = docidentifier.map(&:type)
864
864
  series.select do |s|
865
- s.title && !di_types.include?(s.title.title.to_s) &&
865
+ s.title && # !di_types.include?(s.title.title.to_s) &&
866
866
  !BibXMLParser::SERIESINFONAMES.include?(s.title.title.to_s)
867
867
  end.uniq { |s| s.title.title.to_s }.each do |s|
868
868
  si = builder.seriesInfo(name: s.title.title.to_s)
@@ -1,7 +1,10 @@
1
1
  module RelatonBib
2
2
  module BibXMLParser
3
+ # SeriesInfo what should be saved as docidentifiers in the Relaton model.
3
4
  SERIESINFONAMES = ["DOI", "Internet-Draft"].freeze
5
+
4
6
  FLAVOR = nil
7
+
5
8
  ORGNAMES = {
6
9
  "IEEE" => "Istitute of Electrical and Electronics Engineers",
7
10
  "W3C" => "World Wide Web Consortium",
@@ -314,11 +317,13 @@ module RelatonBib
314
317
  def dates(reference)
315
318
  return [] unless (date = reference.at "./front/date")
316
319
 
317
- d = [date[:year], month(date[:month]), (date[:day] || 1)].compact.join "-"
318
- date = Time.parse(d).strftime "%Y-%m-%d"
319
- [BibliographicDate.new(type: "published", on: date)]
320
- rescue ArgumentError
321
- []
320
+ d = date[:year]
321
+ d += "-#{month(date[:month])}" if date[:month] && !date[:month].empty?
322
+ d += "-#{date[:day]}" if date[:day]
323
+ # date = Time.parse(d).strftime "%Y-%m-%d"
324
+ [BibliographicDate.new(type: "published", on: d)]
325
+ # rescue ArgumentError
326
+ # []
322
327
  end
323
328
 
324
329
  # @param reference [Nokogiri::XML::Element]
@@ -338,10 +343,10 @@ module RelatonBib
338
343
  end
339
344
 
340
345
  def month(mon)
341
- return 1 if !mon || mon.empty?
346
+ # return 1 if !mon || mon.empty?
342
347
  return mon if /^\d+$/.match? mon
343
348
 
344
- Date::MONTHNAMES.index(mon)
349
+ Date::MONTHNAMES.index(mon).to_s.rjust 2, "0"
345
350
  end
346
351
 
347
352
  #
@@ -352,7 +357,7 @@ module RelatonBib
352
357
  #
353
358
  def series(reference)
354
359
  reference.xpath("./seriesInfo", "./front/seriesInfo").map do |si|
355
- next if si[:name] == "DOI" || si[:stream] || si[:status]
360
+ next if SERIESINFONAMES.include?(si[:name]) || si[:stream] || si[:status]
356
361
 
357
362
  t = TypedTitleString.new(
358
363
  content: si[:name], language: language(reference), script: "Latn",
@@ -25,7 +25,7 @@ module RelatonBib
25
25
  # @param state [String]
26
26
  # @param country [String]
27
27
  # @param postcode [String]
28
- def initialize(street:, city:, state: nil, country:, postcode: nil)
28
+ def initialize(street:, city:, country:, state: nil, postcode: nil)
29
29
  @street = street
30
30
  @city = city
31
31
  @state = state
@@ -45,7 +45,7 @@ module RelatonBib
45
45
  end
46
46
 
47
47
  # @return [Hash]
48
- def to_hash
48
+ def to_hash # rubocop:disable Metrics/AbcSize
49
49
  hash = {}
50
50
  hash["street"] = street if street&.any?
51
51
  hash["city"] = city
@@ -59,7 +59,7 @@ module RelatonBib
59
59
  # @param count [Integer] number of addresses
60
60
  # @return [String]
61
61
  def to_asciibib(prefix = "", count = 1) # rubocop:disable Metrics/AbcSize
62
- pref = prefix.empty? ? "address" : prefix + ".address"
62
+ pref = prefix.empty? ? "address" : "#{prefix}.address"
63
63
  out = count > 1 ? "#{pref}::\n" : ""
64
64
  street.each { |st| out += "#{pref}.street:: #{st}\n" }
65
65
  out += "#{pref}.city:: #{city}\n"
@@ -99,7 +99,7 @@ module RelatonBib
99
99
  # @param count [Integer] number of contacts
100
100
  # @return [string]
101
101
  def to_asciibib(prefix = "", count = 1)
102
- pref = prefix.empty? ? prefix : prefix + "."
102
+ pref = prefix.empty? ? prefix : "#{prefix}."
103
103
  out = count > 1 ? "#{pref}contact::\n" : ""
104
104
  out += "#{pref}contact.type:: #{type}\n"
105
105
  out += "#{pref}contact.value:: #{value}\n"
@@ -156,7 +156,7 @@ module RelatonBib
156
156
  # @param count [Integer]
157
157
  # @return [String]
158
158
  def to_asciibib(prefix = "", count = 1) # rubocop:disable Metrics/AbcSize
159
- pref = prefix.empty? ? prefix : prefix + "."
159
+ pref = prefix.empty? ? prefix : "#{prefix}."
160
160
  out = count > 1 ? "#{pref}affiliation::\n" : ""
161
161
  out += name.to_asciibib "#{pref}affiliation.name" if name
162
162
  description.each do |d|
@@ -206,7 +206,7 @@ module RelatonBib
206
206
  # @param prefix [String]
207
207
  # @return [String]
208
208
  def to_asciibib(prefix = "") # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
209
- pref = prefix.empty? ? prefix : prefix + "."
209
+ pref = prefix.empty? ? prefix : "#{prefix}."
210
210
  out = ""
211
211
  out += "#{pref}url:: #{uri}\n" if uri
212
212
  addr = contact.select { |c| c.is_a? RelatonBib::Address }
@@ -39,7 +39,7 @@ module RelatonBib
39
39
  # @param count [Integer]
40
40
  # @return [String]
41
41
  def to_asciibib(prefix = "", count = 1)
42
- pref = prefix.empty? ? prefix : prefix + "."
42
+ pref = prefix.empty? ? prefix : "#{prefix}."
43
43
  out = count > 1 ? "#{pref}identifier::\n" : ""
44
44
  out += "#{pref}identifier.type:: #{type}\n"
45
45
  out += "#{pref}identifier.value:: #{value}\n"
@@ -118,7 +118,7 @@ module RelatonBib
118
118
  # @param count [Integer]
119
119
  # @return [String]
120
120
  def to_asciibib(prefix = "", count = 1) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength
121
- pref = prefix.sub /\*$/, "organization"
121
+ pref = prefix.sub(/\*$/, "organization")
122
122
  out = count > 1 ? "#{pref}::\n" : ""
123
123
  name.each { |n| out += n.to_asciibib "#{pref}.name", name.size }
124
124
  out += abbreviation.to_asciibib "#{pref}.abbreviation" if abbreviation
@@ -136,10 +136,11 @@ module RelatonBib
136
136
  # @param arg [String, Hash, RelatoBib::LocalizedString]
137
137
  # @return [RelatoBib::LocalizedString]
138
138
  def localized_string(arg)
139
- if arg.is_a?(String) then LocalizedString.new(arg)
140
- elsif arg.is_a?(Hash)
139
+ case arg
140
+ when String then LocalizedString.new(arg)
141
+ when Hash
141
142
  LocalizedString.new(arg[:content], arg[:language], arg[:script])
142
- elsif arg.is_a? LocalizedString then arg
143
+ when LocalizedString then arg
143
144
  end
144
145
  end
145
146
  end
@@ -13,7 +13,7 @@ module RelatonBib
13
13
  # @return [RelatonBib::FormattedRef, NilClass]
14
14
  attr_reader :formattedref
15
15
 
16
- # @return [RelatonBib::FormattedString, NilClass] title
16
+ # @return [RelatonBib::TypedTitleString, NilClass] title
17
17
  attr_reader :title
18
18
 
19
19
  # @return [String, NilClass]
@@ -39,10 +39,10 @@ module RelatonBib
39
39
 
40
40
  # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
41
41
 
42
- # @param type [String, NilClass] title or formattedref argument should be
43
- # passed
42
+ # @param type [String, NilClass]
44
43
  # @param formattedref [RelatonBib::FormattedRef, NilClass]
45
- # @param title [RelatonBib::TypedTitleString, NilClass]
44
+ # @param title [RelatonBib::TypedTitleString, NilClass] title or
45
+ # formattedref argument should be passed
46
46
  # @param place [String, NilClass]
47
47
  # @param orgaization [String, NilClass]
48
48
  # @param abbreviation [RelatonBib::LocalizedString, NilClass]
@@ -1,3 +1,3 @@
1
1
  module RelatonBib
2
- VERSION = "1.9.20".freeze
2
+ VERSION = "1.9.21".freeze
3
3
  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.20
4
+ version: 1.9.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-12 00:00:00.000000000 Z
11
+ date: 2022-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug