puree 1.0.0 → 1.1.0

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: 0fcfce1e04c1a07280ef3792f67c7bb4b7fea7e9
4
- data.tar.gz: ed700b052232a17ccb11b3337eca880d71e00541
3
+ metadata.gz: 51982259947535b8a9b88916eca1d629004b1d78
4
+ data.tar.gz: 0b4469e3b0f0881d45ebbdc7a90eb69f7b4e29cb
5
5
  SHA512:
6
- metadata.gz: 1087979e95515396a9eceb0a7db3e32dd87130d4505fc95626043f48e657767b762f8861787ce652597098019db2b20a6b365831705a8f633dac89eb27e187cd
7
- data.tar.gz: 1fe7778084eecac9c214a354a999825b089e5b4c417ceb3b03cc8db8dc39e7a57d8b1fd1debe87af9dd4170f6d56a948e97b5fbccca93290fc878618cf030f89
6
+ metadata.gz: e1ab192064572d2935d3546577c4bdbe4dbbd624f9056f173da1d9d91f910beb493aa0dd17a13a1162003f618ea215f213643e6a3fc98509acdd89e8fa21b416
7
+ data.tar.gz: 3e94e0b3ae0f86fa0f91911e142d435d428c088735108d19aa5ca49c182d18f16602d83441d374158a9bbc8a4635d60c250bff43d4fc711634d4bd551e2ed0c7
@@ -21,11 +21,13 @@ module Puree
21
21
  @model.doi = @extractor.doi
22
22
  @model.event = @extractor.event
23
23
  @model.files = @extractor.files
24
+ @model.keywords = @extractor.keywords
24
25
  @model.organisations = @extractor.organisations
25
26
  @model.pages = @extractor.pages
26
27
  @model.persons_internal = @extractor.persons_internal
27
28
  @model.persons_external = @extractor.persons_external
28
29
  @model.persons_other = @extractor.persons_other
30
+ @model.publisher = @extractor.publisher
29
31
  @model.statuses = @extractor.statuses
30
32
  @model.subtitle = @extractor.subtitle
31
33
  @model.title = @extractor.title
@@ -20,6 +20,9 @@ module Puree
20
20
  # @return [Array<Puree::Model::File>]
21
21
  attr_accessor :files
22
22
 
23
+ # @return [Array<String>]
24
+ attr_accessor :keywords
25
+
23
26
  # @return [Array<Puree::Model::OrganisationHeader>]
24
27
  attr_accessor :organisations
25
28
 
@@ -35,6 +38,9 @@ module Puree
35
38
  # @return [Array<Puree::Model::EndeavourPerson>]
36
39
  attr_accessor :persons_other
37
40
 
41
+ # @return [String, nil]
42
+ attr_accessor :publisher
43
+
38
44
  # @return [Array<Puree::Model::PublicationStatus>]
39
45
  attr_accessor :statuses
40
46
 
data/lib/puree/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Puree
2
2
  # Semantic version number
3
3
  #
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
  end
@@ -40,19 +40,33 @@ module Puree
40
40
 
41
41
  # @return [Array<Puree::Model::File>]
42
42
  def files
43
- xpath_result = xpath_query '/electronicVersionAssociations/electronicVersionFileAssociations/electronicVersionFileAssociation/file'
43
+ xpath_result = xpath_query '/electronicVersionAssociations/electronicVersionFileAssociations/electronicVersionFileAssociation'
44
44
  docs = []
45
45
  xpath_result.each do |d|
46
46
  model = Puree::Model::File.new
47
- model.name = d.xpath('fileName').text.strip
48
- model.mime = d.xpath('mimeType').text.strip
49
- model.size = d.xpath('size').text.strip.to_i
50
- model.url = d.xpath('url').text.strip
47
+ model.name = d.xpath('file/fileName').text.strip
48
+ model.mime = d.xpath('file/mimeType').text.strip
49
+ model.size = d.xpath('file/size').text.strip.to_i
50
+ model.url = d.xpath('file/url').text.strip
51
+ document_license = d.xpath('licenseType')
52
+ if !document_license.empty?
53
+ license = Puree::Model::CopyrightLicense.new
54
+ license.name = document_license.xpath('term/localizedString').text.strip
55
+ license.url = document_license.xpath('description/localizedString').text.strip
56
+ model.license = license if license.data?
57
+ end
51
58
  docs << model
52
59
  end
53
60
  docs.uniq { |d| d.url }
54
61
  end
55
62
 
63
+ # @return [Array<String>]
64
+ def keywords
65
+ xpath_result = xpath_query '/keywordGroups/keywordGroup/keyword/userDefinedKeyword/freeKeyword'
66
+ data_arr = xpath_result.map { |i| i.text.strip }
67
+ data_arr.uniq
68
+ end
69
+
56
70
  # @return [Array<Puree::Model::OrganisationHeader>]
57
71
  def organisations
58
72
  xpath_result = xpath_query '/organisations/association/organisation'
@@ -61,7 +75,8 @@ module Puree
61
75
 
62
76
  # @return [Fixnum, nil]
63
77
  def pages
64
- xpath_query_for_single_value('/numberOfPages').to_i
78
+ xpath_result = xpath_query_for_single_value('/numberOfPages')
79
+ xpath_result ? xpath_result.to_i : nil
65
80
  end
66
81
 
67
82
  # @return [Array<Puree::Model::EndeavourPerson>]
@@ -79,6 +94,11 @@ module Puree
79
94
  persons 'other'
80
95
  end
81
96
 
97
+ # @return [String, nil]
98
+ def publisher
99
+ xpath_query_for_single_value '/associatedPublisher/publisher/name'
100
+ end
101
+
82
102
  # @return [Array<Puree::Model::PublicationStatus>]
83
103
  def statuses
84
104
  xpath_result = xpath_query '/publicationStatuses/publicationStatus'
data/puree.gemspec CHANGED
@@ -9,8 +9,6 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = 'Adrian Albin-Clark'
10
10
  spec.email = 'a.albin-clark@lancaster.ac.uk'
11
11
  spec.summary = %q{Metadata extraction from the Pure Research Information System.}
12
- spec.description = %q{Fetches metadata from the Pure Research Information System and
13
- extracts it into Ruby data models.}
14
12
  spec.homepage = 'https://github.com/lulibrary/puree'
15
13
  spec.license = 'MIT'
16
14
  spec.files = `git ls-files -z`.split("\x0")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puree
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Albin-Clark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-15 00:00:00.000000000 Z
11
+ date: 2017-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -52,9 +52,7 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- description: |-
56
- Fetches metadata from the Pure Research Information System and
57
- extracts it into Ruby data models.
55
+ description:
58
56
  email: a.albin-clark@lancaster.ac.uk
59
57
  executables: []
60
58
  extensions: []