relaton-ietf 1.13.5 → 1.13.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48b025f8949b55b5df8b2655037fed2d843721ae2e7c2d33c287f3dd5916ccc3
4
- data.tar.gz: 263251fa0ee6063de9ed33e8af021041aaa71b95abf0547c809e643eae8a29ed
3
+ metadata.gz: c90740b6cf7e4d175f4df9fc3ab1ddf9f68eb02473140f2467d63569364d8b2f
4
+ data.tar.gz: a2dfa670a98de931ff50244a3b6f26b2cbee87482bd8ac93c843a3410479583d
5
5
  SHA512:
6
- metadata.gz: 45d31fe5d94624e4a81762502daecf1be53759fb543e93fcb0b7a1a91a8f326ba4f01294344aca18fe7581df671a61dbb7cf8617f56204e25a71acd7c65b6d80
7
- data.tar.gz: d301e5635a36a9c0f2897f33561398c7f4c31db4c5477cbc8050c7b5b9902b83282e234f03bb0823794edf200b40b9e825cc396f4a56c541ca500bfada2a9175
6
+ metadata.gz: '06871e40bf40e9e4198c88c027220cc210f0f10e5f82c718f5f8e5124f38944f457fd5368205a0b212cc42492159c2609d36abe00bcb7f538b029c7439473e03'
7
+ data.tar.gz: 442621f06f75dc0bf899053c84b25a5f17b34911484410f46b3752341146232bd9adbe2e057505f64367d1ff5589e954fcf28e353ece4b1a1ccc10d79e92a652
@@ -106,20 +106,50 @@ module RelatonIetf
106
106
  # @return [RelatonBib::FullName]
107
107
  #
108
108
  def full_name(fname, sname, inits, lang, script = nil)
109
- surname, ints = parse_surname_initials fname, sname, inits
109
+ surname, ints, name = parse_surname_initials fname, sname, inits
110
110
  initials = localized_string(ints, lang, script)
111
111
  RelatonBib::FullName.new(
112
112
  completename: localized_string(fname, lang, script),
113
- initials: initials, forename: forename(ints, lang, script),
113
+ initials: initials, forename: forename(ints, name, lang, script),
114
114
  surname: localized_string(surname, lang, script)
115
115
  )
116
116
  end
117
117
 
118
- def parse_surname_initials(fname, sname, inits)
119
- regex = /(?:[A-Z]{1,2}(?:\.[\s-]?|\s))+/
120
- surname = sname || fname.sub(regex, "").strip
121
- initials = inits || regex.match(fname)&.to_s&.strip
122
- [surname, initials]
118
+ #
119
+ # Create forenames with initials
120
+ #
121
+ # @param [String] initials initials
122
+ # @param [String] lang language
123
+ #
124
+ # @return [Array<RelatonBib::Forename>] forenames
125
+ #
126
+ def forename(initials, name, lang = nil, script = nil)
127
+ fnames = []
128
+ if name
129
+ fnames << RelatonBib::Forename.new(content: name, language: lang, script: script)
130
+ end
131
+ return fnames unless initials
132
+
133
+ initials.split(/\.-?\s?|\s/).each_with_object(fnames) do |i, a|
134
+ a << RelatonBib::Forename.new(initial: i, language: lang, script: script)
135
+ end
136
+ end
137
+
138
+ #
139
+ # Parse name, surname, and initials from full name
140
+ #
141
+ # @param [String] fname full name
142
+ # @param [String, nil] sname surname
143
+ # @param [String, nil] inits
144
+ #
145
+ # @return [Array<String, nil>] surname, initials, forename
146
+ #
147
+ def parse_surname_initials(fname, sname, inits) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
148
+ regex = /(?:(?<name>\w{3,})\s)?(?<inits>(?:[A-Z]{1,2}(?:\.[\s-]?|\s))+)?/
149
+ match = fname&.match(regex)
150
+ surname = sname || fname&.sub(regex, "")&.strip
151
+ initials = inits || (match && match[:inits]&.strip)
152
+ [surname, initials, (match && match[:name])]
123
153
  end
124
154
  end
125
155
  end
@@ -34,5 +34,16 @@ module RelatonIetf
34
34
  opts[:date_format] ||= :short
35
35
  super(**opts)
36
36
  end
37
+
38
+ #
39
+ # Render date as BibXML
40
+ #
41
+ # @param [Nokogiri::XML::Builder] builder xml builder
42
+ #
43
+ # def render_date(builder)
44
+ # return if doidentifier.detect { |i| i.type == "IANA" }
45
+
46
+ # super
47
+ # end
37
48
  end
38
49
  end
@@ -1,3 +1,3 @@
1
1
  module RelatonIetf
2
- VERSION = "1.13.5".freeze
2
+ VERSION = "1.13.7".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-ietf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.5
4
+ version: 1.13.7
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-10-20 00:00:00.000000000 Z
11
+ date: 2022-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: equivalent-xml