relaton-bib 0.1.0 → 0.1.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
  SHA1:
3
- metadata.gz: 05365dd34321a3c2f80a6d73fd16abe5c530f3c5
4
- data.tar.gz: 5d7fdd3b5eaea30767632c884a803e615e9eea00
3
+ metadata.gz: 9da202081fac78dc82e84fd1387007c977be6981
4
+ data.tar.gz: 6ef4319dc738576c1d0aca6972f5f061d27bf1bd
5
5
  SHA512:
6
- metadata.gz: a88c9d5bc6fc001f6a6f8b13813e5225c662d25f97d0cd6fc852169886480a9210b590c69620c6a2f4ac1eb223328e525c0ef0f0da7b8f730b582c1e66e89882
7
- data.tar.gz: b7b48023c0bd6f22e4685a0b8e44d9d07672f37cd82d861ab2dda33c9675b3288d665c712d0308e2c001b738eabec9cb8294b6776ffe8149375f14637c03ba90
6
+ metadata.gz: 2ec1ef406ba6067a466508200c8c948a342bb39d1a133910b74fb0522fdf0a70c3e1abbf164256f9c2b3a93f1d14b34dafdffdcc46bc12a68b2f9b141cb60d1a
7
+ data.tar.gz: 3ed3da30cffeae49ef4e7737a76ea64f16823c41026b159c9eafd4a960262dc31cd71d6d627f415bb9d5701828ac2862ea91e764c872189bdb19f731011d04f5
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- relaton-bib (0.1.0)
4
+ relaton-bib (0.1.1)
5
5
  nokogiri (~> 1.8.4)
6
6
 
7
7
  GEM
@@ -15,7 +15,7 @@ module RelatonBib
15
15
  # @option owner [String] :abbreviation
16
16
  # @option owner [String] :url
17
17
  # @param from [String] date
18
- # @param to [String] date
18
+ # @param to [String, NilClass] date
19
19
  def initialize(owner:, from:, to: nil)
20
20
  @owner = if owner.is_a?(Hash)
21
21
  ContributionInfo.new entity: Organization.new(owner)
@@ -1,3 +1,3 @@
1
1
  module RelatonBib
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1".freeze
3
3
  end
@@ -6,37 +6,42 @@ module RelatonBib
6
6
  def from_xml(xml)
7
7
  doc = Nokogiri::XML(xml)
8
8
  bibitem = doc.at "/bibitem"
9
- BibliographicItem.new(
10
- id: bibitem[:id],
11
- type: bibitem[:type],
12
- fetched: bibitem.at("./fetched")&.text,
13
- titles: fetch_titles(bibitem),
14
- link: fetch_link(bibitem),
15
- docid: fetch_docid(bibitem),
16
- docnumber: bibitem.at("./docnumber")&.text,
17
- dates: fetch_dates(bibitem),
18
- contributors: fetch_contributors(bibitem),
19
- edition: bibitem.at("./edition")&.text,
20
- version: fetch_version(bibitem),
21
- biblionote: fetch_note(bibitem),
22
- language: bibitem.xpath("./language").map(&:text),
23
- script: bibitem.xpath("./script").map(&:text),
24
- abstract: fetch_abstract(bibitem),
25
- docstatus: fetch_status(bibitem),
26
- copyright: fetch_copyright(bibitem),
27
- relations: fetch_relations(bibitem),
28
- series: fetch_series(bibitem),
29
- medium: fetch_medium(bibitem),
30
- place: bibitem.xpath("./place").map(&:text),
31
- extent: fetch_extent(bibitem),
32
- accesslocation: bibitem.xpath("./accesslocation").map(&:text),
33
- classification: fetch_classification(bibitem),
34
- validity: fetch_validity(bibitem),
35
- )
9
+ BibliographicItem.new(item_data(bibitem))
36
10
  end
37
11
 
38
12
  private
39
13
 
14
+ def item_data(bibitem)
15
+ {
16
+ id: bibitem[:id],
17
+ type: bibitem[:type],
18
+ fetched: bibitem.at("./fetched")&.text,
19
+ titles: fetch_titles(bibitem),
20
+ formattedref: fref(bibitem),
21
+ link: fetch_link(bibitem),
22
+ docid: fetch_docid(bibitem),
23
+ docnumber: bibitem.at("./docnumber")&.text,
24
+ dates: fetch_dates(bibitem),
25
+ contributors: fetch_contributors(bibitem),
26
+ edition: bibitem.at("./edition")&.text,
27
+ version: fetch_version(bibitem),
28
+ biblionote: fetch_note(bibitem),
29
+ language: bibitem.xpath("./language").map(&:text),
30
+ script: bibitem.xpath("./script").map(&:text),
31
+ abstract: fetch_abstract(bibitem),
32
+ docstatus: fetch_status(bibitem),
33
+ copyright: fetch_copyright(bibitem),
34
+ relations: fetch_relations(bibitem),
35
+ series: fetch_series(bibitem),
36
+ medium: fetch_medium(bibitem),
37
+ place: bibitem.xpath("./place").map(&:text),
38
+ extent: fetch_extent(bibitem),
39
+ accesslocation: bibitem.xpath("./accesslocation").map(&:text),
40
+ classification: fetch_classification(bibitem),
41
+ validity: fetch_validity(bibitem),
42
+ }
43
+ end
44
+
40
45
  def fetch_version(item)
41
46
  version = item.at "./version"
42
47
  return unless version
@@ -191,16 +196,20 @@ module RelatonBib
191
196
  PersonIdentifier.new pi[:type], pi.text
192
197
  end
193
198
 
194
- cname = person.at "./name/completename"
195
- completename = cname ? LocalizedString.new(cname.text, cname[:language]) : nil
199
+ cn = person.at "./name/completename"
200
+ cname = if cn
201
+ LocalizedString.new(cn.text, cn[:language], cn[:script])
202
+ else
203
+ nil
204
+ end
196
205
 
197
- sname = person.at "./name/surname"
198
- surname = sname ? LocalizedString.new(sname.text, sname[:language]) : nil
206
+ sn = person.at "./name/surname"
207
+ sname = sn ? LocalizedString.new(sn.text, sn[:language], sn[:script]) : nil
199
208
 
200
209
  name = FullName.new(
201
- completename: completename, surname: surname,
210
+ completename: cname, surname: sname,
202
211
  initials: name_part(person, "initial"), forenames: name_part(person, "forename"),
203
- additions: name_part(person, "addidtion"), prefix: name_part(person, "prefix")
212
+ additions: name_part(person, "addition"), prefix: name_part(person, "prefix")
204
213
  )
205
214
 
206
215
  Person.new(
@@ -212,7 +221,7 @@ module RelatonBib
212
221
  end
213
222
 
214
223
  def name_part(person, part)
215
- additions = person.xpath("./name/#{part}").map do |np|
224
+ person.xpath("./name/#{part}").map do |np|
216
225
  LocalizedString.new np.text, np[:language]
217
226
  end
218
227
  end
@@ -261,15 +270,12 @@ module RelatonBib
261
270
  BibItemLocality.new(
262
271
  l[:type],
263
272
  LocalizedString.new(l.at("./referenceFrom").text),
264
- ref_to
273
+ ref_to,
265
274
  )
266
275
  end
267
- bibitem = rel&.at "./bibitem"
268
276
  DocumentRelation.new(
269
277
  type: rel[:type],
270
- bibitem: BibliographicItem.new(
271
- type: bibitem[:type], formattedref: fref(bibitem), docstatus: fetch_status(bibitem)
272
- ),
278
+ bibitem: BibliographicItem.new(item_data(rel.at("./bibitem"))),
273
279
  bib_locality: localities,
274
280
  )
275
281
  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: 0.1.0
4
+ version: 0.1.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: 2019-05-01 00:00:00.000000000 Z
11
+ date: 2019-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler