relaton-bib 1.10.0 → 1.10.1

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: f9fc54368323400ffb7dce1f7a0705f2b9e9df0235fa5874af273328e47bd346
4
- data.tar.gz: 57b99f8695612ae66cee16773a6844fa2b76b9d8caf480d8850a9b869e15b464
3
+ metadata.gz: 882b6680091bd4bf9ba97871af6aab74dede4be12e1e6981d5e7a9a274e65659
4
+ data.tar.gz: 5ecf64a911e0cad8ca924b3fe3626b54ef60295f89f58a8e59895c415390d502
5
5
  SHA512:
6
- metadata.gz: e9e6b02e3131f7ae5d6b9e67f77bf435901aa1ea367b5498835c2fc18f84763e0fb3cd8b5741a72a3b0136b3af37e17a978c5bd26a806e3ce0a27c3796c47968
7
- data.tar.gz: ecf5bbc9dbaa83ad376ce8478d0a55d81eff5f48dc5f6ab358c1e6655de77ce9d5ce05615d9b86b714078ad54db613f3a1d13ee7788438571a62f36fbb5fdbdb
6
+ metadata.gz: 31ebec09d58af3173fc687dcbf8cfddb34b859110d05a11bc32ed144aefe0b8b57da36395ee002aad57802c32c3804aac33098d2d7d322ee442941567add638b
7
+ data.tar.gz: 828fbafc60fb7a16b876ece52b1631870ef8fdda63dce780f6a35e30907fab3f76684e02b2991db1e0ba159a61081a5e7198d6d470f1bee529ee72c61ccab921
data/grammars/biblio.rng CHANGED
@@ -209,9 +209,6 @@
209
209
  <zeroOrMore>
210
210
  <ref name="contact"/>
211
211
  </zeroOrMore>
212
- <zeroOrMore>
213
- <ref name="uri"/>
214
- </zeroOrMore>
215
212
  </element>
216
213
  </define>
217
214
  <define name="fullname">
@@ -828,6 +825,11 @@
828
825
  <optional>
829
826
  <attribute name="scope"/>
830
827
  </optional>
828
+ <optional>
829
+ <attribute name="primary">
830
+ <data type="boolean"/>
831
+ </attribute>
832
+ </optional>
831
833
  <text/>
832
834
  </element>
833
835
  </define>
@@ -80,7 +80,7 @@ module RelatonBib
80
80
  /^(?<pref>I-D|3GPP|W3C|[A-Z]{2,})[._]?(?<num>.+)/ =~ id
81
81
  num.sub!(/^-?0+/, "") if %w[RFC BCP FYI STD].include?(pref)
82
82
  pid = pref ? "#{pref} #{num}" : id
83
- ret << DocumentIdentifier.new(type: pubid_type(id), id: pid)
83
+ ret << DocumentIdentifier.new(type: pubid_type(id), id: pid, primary: true)
84
84
  end
85
85
  %w[anchor docName number].each do |atr|
86
86
  if reference[atr]
@@ -33,7 +33,7 @@ module RelatonBib
33
33
  o.is_a?(Hash) ? ContributionInfo.new(entity: Organization.new(**o)) : o
34
34
  end
35
35
 
36
- @from = Date.strptime(from.to_s, "%Y") if from.to_s.match? /\d{4}/
36
+ @from = Date.strptime(from.to_s, "%Y") if from.to_s.match?(/\d{4}/)
37
37
  @to = Date.strptime(to.to_s, "%Y") unless to.to_s.empty?
38
38
  @scope = scope
39
39
  end
@@ -45,7 +45,7 @@ module RelatonBib
45
45
  opts[:builder].copyright do |builder|
46
46
  builder.from from ? from.year : "unknown"
47
47
  builder.to to.year if to
48
- owner.each { |o| builder.owner { o.to_xml **opts } }
48
+ owner.each { |o| builder.owner { o.to_xml(**opts) } }
49
49
  builder.scope scope if scope
50
50
  end
51
51
  end
@@ -7,13 +7,18 @@ module RelatonBib
7
7
  # @return [String, NilClass]
8
8
  attr_reader :type, :scope
9
9
 
10
+ # @param type [Boolean, nil]
11
+ attr_reader :primary
12
+
10
13
  # @param id [String]
11
14
  # @param type [String, NilClass]
12
15
  # @param scope [String, NilClass]
13
- def initialize(id:, type: nil, scope: nil)
16
+ # @param priority [Bolean]
17
+ def initialize(id:, type: nil, scope: nil, primary: false)
14
18
  @id = id
15
19
  @type = type
16
20
  @scope = scope
21
+ @primary = primary
17
22
  end
18
23
 
19
24
  # in docid manipulations, assume ISO as the default: id-part:year
@@ -56,6 +61,7 @@ module RelatonBib
56
61
  element = opts[:builder].docidentifier lid
57
62
  element[:type] = type if type
58
63
  element[:scope] = scope if scope
64
+ element[:primary] = primary if primary
59
65
  end
60
66
 
61
67
  # @return [Hash]
@@ -63,19 +69,21 @@ module RelatonBib
63
69
  hash = { "id" => id }
64
70
  hash["type"] = type if type
65
71
  hash["scope"] = scope if scope
72
+ hash["primary"] = primary if primary
66
73
  hash
67
74
  end
68
75
 
69
76
  # @param prefix [String]
70
77
  # @param count [Integer] number of docids
71
78
  # @return [String]
72
- def to_asciibib(prefix = "", count = 1) # rubocop:disable Metrics/CyclomaticComplexity
79
+ def to_asciibib(prefix = "", count = 1) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize
73
80
  pref = prefix.empty? ? prefix : "#{prefix}."
74
81
  return "#{pref}docid:: #{id}\n" unless type || scope
75
82
 
76
83
  out = count > 1 ? "#{pref}docid::\n" : ""
77
84
  out += "#{pref}docid.type:: #{type}\n" if type
78
85
  out += "#{pref}docid.scope:: #{scope}\n" if scope
86
+ out += "#{pref}docid.primary:: #{primary}\n" if primary
79
87
  out + "#{pref}docid.id:: #{id}\n"
80
88
  end
81
89
 
@@ -126,8 +126,9 @@ module RelatonBib
126
126
  ret[:docid] = array(ret[:docid])
127
127
  ret[:docid]&.each_with_index do |id, i|
128
128
  type = id[:type] || id[:id].match(/^\w+(?=\s)/)&.to_s
129
- ret[:docid][i] = DocumentIdentifier.new(id: id[:id], type: type,
130
- scope: id[:scope])
129
+ ret[:docid][i] = DocumentIdentifier.new(
130
+ id: id[:id], type: type, scope: id[:scope], primary: id[:primary],
131
+ )
131
132
  end
132
133
  end
133
134
 
@@ -1,6 +1,6 @@
1
1
  module RelatonBib
2
2
  class Validity
3
- FORMAT = "%Y-%m-%d %H:%M"
3
+ FORMAT = "%Y-%m-%d %H:%M".freeze
4
4
 
5
5
  # @return [Time, NilClass]
6
6
  attr_reader :begins
@@ -41,7 +41,7 @@ module RelatonBib
41
41
  # @param prefix [String]
42
42
  # @return [String]
43
43
  def to_asciibib(prefix = "")
44
- pref = prefix.empty? ? "validity." : prefix + ".validity."
44
+ pref = prefix.empty? ? "validity." : "#{prefix}.validity."
45
45
  out = ""
46
46
  out += "#{pref}begins:: #{begins.strftime(FORMAT)}\n" if begins
47
47
  out += "#{pref}ends:: #{ends.strftime(FORMAT)}\n" if ends
@@ -1,3 +1,3 @@
1
1
  module RelatonBib
2
- VERSION = "1.10.0".freeze
2
+ VERSION = "1.10.1".freeze
3
3
  end
@@ -161,8 +161,9 @@ module RelatonBib
161
161
  # @return [Array<RelatonBib::DocumentIdentifier>]
162
162
  def fetch_docid(item)
163
163
  item.xpath("./docidentifier").map do |did|
164
+ primary = true if did[:primary] == "true"
164
165
  DocumentIdentifier.new(id: did.text, type: did[:type],
165
- scope: did[:scope])
166
+ scope: did[:scope], primary: primary)
166
167
  end
167
168
  end
168
169
 
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.10.0
4
+ version: 1.10.1
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-30 00:00:00.000000000 Z
11
+ date: 2022-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug