puree 0.11.0 → 0.12.0
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +16 -13
- data/lib/puree/dataset.rb +7 -7
- data/lib/puree/date.rb +3 -3
- data/lib/puree/event.rb +1 -1
- data/lib/puree/journal.rb +7 -0
- data/lib/puree/map.rb +1 -0
- data/lib/puree/organisation.rb +3 -3
- data/lib/puree/person.rb +3 -3
- data/lib/puree/project.rb +7 -0
- data/lib/puree/publication.rb +3 -3
- data/lib/puree/publisher.rb +7 -0
- data/lib/puree/resource.rb +34 -0
- data/lib/puree/version.rb +1 -1
- data/spec/dataset.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a22ff7fedfd49fa3ae29510a7aa3fd532e3c9838
|
4
|
+
data.tar.gz: c879d11f1bf415b156e4959be2dde9119574d962
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3ca6c455e0773a642bd5ad0bc513dc2a940ddc7c081be05deb0bc6ccd63e11789374a0ad70a12ad4caf8eaacff3d3ececb12fcedebe966880fa01cb6a176289
|
7
|
+
data.tar.gz: cc3a510f29157231b12cb3f47b4b9790638d721583769358b236b45854b98f9d9a9f1ab895d855fd21233494b06520f3c09e7e07ebea9c79fd3223adc763daef
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## 0.12.0 - 2016-05-20
|
6
|
+
### Added
|
7
|
+
- Resource (created, modified, uuid).
|
8
|
+
|
5
9
|
## 0.11.0 - 2016-05-19
|
6
10
|
### Added
|
7
11
|
- Event metadata (city, country, date, description, location, title, type).
|
data/README.md
CHANGED
@@ -43,12 +43,14 @@ d.get uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx',
|
|
43
43
|
d.access
|
44
44
|
d.associated
|
45
45
|
d.available
|
46
|
+
d.created
|
46
47
|
d.description
|
47
48
|
d.doi
|
48
49
|
d.file
|
49
50
|
d.geographical
|
50
51
|
d.keyword
|
51
52
|
d.link
|
53
|
+
d.modified
|
52
54
|
d.person
|
53
55
|
d.production
|
54
56
|
d.project
|
@@ -94,10 +96,11 @@ uuids.each do |uuid|
|
|
94
96
|
end
|
95
97
|
```
|
96
98
|
|
99
|
+
## Data structures
|
97
100
|
|
98
|
-
|
101
|
+
### Dataset
|
99
102
|
|
100
|
-
|
103
|
+
#### available
|
101
104
|
Date made available. If year is present, month and day will have data or an empty string.
|
102
105
|
|
103
106
|
```ruby
|
@@ -108,7 +111,7 @@ Date made available. If year is present, month and day will have data or an empt
|
|
108
111
|
}
|
109
112
|
```
|
110
113
|
|
111
|
-
|
114
|
+
#### file
|
112
115
|
An array of files.
|
113
116
|
|
114
117
|
```ruby
|
@@ -127,7 +130,7 @@ An array of files.
|
|
127
130
|
]
|
128
131
|
```
|
129
132
|
|
130
|
-
|
133
|
+
#### link
|
131
134
|
An array of links.
|
132
135
|
|
133
136
|
```ruby
|
@@ -139,7 +142,7 @@ An array of links.
|
|
139
142
|
]
|
140
143
|
```
|
141
144
|
|
142
|
-
|
145
|
+
#### person
|
143
146
|
Contains an array of internal persons, an array of external persons and an array of other persons.
|
144
147
|
|
145
148
|
```ruby
|
@@ -167,7 +170,7 @@ Contains an array of internal persons, an array of external persons and an array
|
|
167
170
|
}
|
168
171
|
```
|
169
172
|
|
170
|
-
|
173
|
+
#### project
|
171
174
|
An array of projects associated with the dataset.
|
172
175
|
|
173
176
|
```ruby
|
@@ -179,7 +182,7 @@ An array of projects associated with the dataset.
|
|
179
182
|
]
|
180
183
|
```
|
181
184
|
|
182
|
-
|
185
|
+
#### publication
|
183
186
|
An array of research outputs associated with the dataset.
|
184
187
|
|
185
188
|
```ruby
|
@@ -217,7 +220,7 @@ An array of research outputs associated with the dataset.
|
|
217
220
|
]
|
218
221
|
```
|
219
222
|
|
220
|
-
|
223
|
+
#### production, temporal
|
221
224
|
Date range. If year is present, month and day will have data or an empty string.
|
222
225
|
|
223
226
|
```ruby
|
@@ -235,9 +238,9 @@ Date range. If year is present, month and day will have data or an empty string.
|
|
235
238
|
}
|
236
239
|
```
|
237
240
|
|
238
|
-
|
241
|
+
### Organisation
|
239
242
|
|
240
|
-
|
243
|
+
#### address
|
241
244
|
An array of addresses.
|
242
245
|
|
243
246
|
```ruby
|
@@ -252,9 +255,9 @@ An array of addresses.
|
|
252
255
|
]
|
253
256
|
```
|
254
257
|
|
255
|
-
|
258
|
+
### Publication
|
256
259
|
|
257
|
-
|
260
|
+
#### file
|
258
261
|
An array of files.
|
259
262
|
|
260
263
|
```ruby
|
@@ -306,7 +309,7 @@ Resource metadata
|
|
306
309
|
:publication
|
307
310
|
```
|
308
311
|
|
309
|
-
Resource metadata (single hash only)
|
312
|
+
Resource metadata (system data and single hash only)
|
310
313
|
|
311
314
|
```ruby
|
312
315
|
:journal
|
data/lib/puree/dataset.rb
CHANGED
@@ -13,7 +13,7 @@ module Puree
|
|
13
13
|
# @return [Array<Hash>]
|
14
14
|
def link
|
15
15
|
path = '//links/link'
|
16
|
-
xpath_result =
|
16
|
+
xpath_result = xpath_query path
|
17
17
|
data = []
|
18
18
|
xpath_result.each { |i|
|
19
19
|
o = {}
|
@@ -29,7 +29,7 @@ module Puree
|
|
29
29
|
# @return [String]
|
30
30
|
def publisher
|
31
31
|
path = '//publisher/name'
|
32
|
-
xpath_result =
|
32
|
+
xpath_result = xpath_query path
|
33
33
|
xpath_result ? xpath_result.text.strip : ''
|
34
34
|
end
|
35
35
|
|
@@ -76,7 +76,7 @@ module Puree
|
|
76
76
|
# @return [String]
|
77
77
|
def title
|
78
78
|
path = '//title/localizedString'
|
79
|
-
xpath_result =
|
79
|
+
xpath_result = xpath_query path
|
80
80
|
xpath_result ? xpath_result.text.strip : ''
|
81
81
|
end
|
82
82
|
|
@@ -95,7 +95,7 @@ module Puree
|
|
95
95
|
# @return [String]
|
96
96
|
def description
|
97
97
|
path = '//descriptions/classificationDefinedField/value/localizedString'
|
98
|
-
xpath_result =
|
98
|
+
xpath_result = xpath_query path
|
99
99
|
xpath_result ? xpath_result.text.strip : ''
|
100
100
|
end
|
101
101
|
|
@@ -203,7 +203,7 @@ module Puree
|
|
203
203
|
# @return [Array<Hash>]
|
204
204
|
def file
|
205
205
|
path = '//documents/document'
|
206
|
-
xpath_result =
|
206
|
+
xpath_result = xpath_query path
|
207
207
|
|
208
208
|
docs = []
|
209
209
|
|
@@ -236,7 +236,7 @@ module Puree
|
|
236
236
|
# @return [String]
|
237
237
|
def doi
|
238
238
|
path = '//content/doi'
|
239
|
-
xpath_result =
|
239
|
+
xpath_result = xpath_query path
|
240
240
|
xpath_result ? xpath_result.text.strip : ''
|
241
241
|
end
|
242
242
|
|
@@ -250,7 +250,7 @@ module Puree
|
|
250
250
|
#
|
251
251
|
# @return [Hash]
|
252
252
|
def metadata
|
253
|
-
o =
|
253
|
+
o = super
|
254
254
|
o['access'] = access
|
255
255
|
o['associated'] = associated
|
256
256
|
o['available'] = available
|
data/lib/puree/date.rb
CHANGED
@@ -2,7 +2,7 @@ module Puree
|
|
2
2
|
|
3
3
|
module Date
|
4
4
|
|
5
|
-
# Converts a date with three components (year, month, day) to
|
5
|
+
# Converts a date with three components (year, month, day) to ISO 8601 date format
|
6
6
|
#
|
7
7
|
# @param data [Hash]
|
8
8
|
# @return [String]
|
@@ -17,7 +17,7 @@ module Puree
|
|
17
17
|
iso_date
|
18
18
|
end
|
19
19
|
if !month.empty?
|
20
|
-
# Add leading zero to convert to ISO 8601
|
20
|
+
# Add leading zero to convert to ISO 8601 date component
|
21
21
|
if month.length < 2
|
22
22
|
month.insert(0, '0')
|
23
23
|
end
|
@@ -26,7 +26,7 @@ module Puree
|
|
26
26
|
iso_date
|
27
27
|
end
|
28
28
|
if !day.empty?
|
29
|
-
# Add leading zero to convert to ISO 8601
|
29
|
+
# Add leading zero to convert to ISO 8601 date component
|
30
30
|
if day.length < 2
|
31
31
|
day.insert(0, '0')
|
32
32
|
end
|
data/lib/puree/event.rb
CHANGED
data/lib/puree/journal.rb
CHANGED
data/lib/puree/map.rb
CHANGED
data/lib/puree/organisation.rb
CHANGED
@@ -64,7 +64,7 @@ module Puree
|
|
64
64
|
# @return [String]
|
65
65
|
def type
|
66
66
|
path = '//content/typeClassification/term/localizedString'
|
67
|
-
xpath_result =
|
67
|
+
xpath_result = xpath_query path
|
68
68
|
xpath_result ? xpath_result.text.strip : ''
|
69
69
|
end
|
70
70
|
|
@@ -73,7 +73,7 @@ module Puree
|
|
73
73
|
# @return [Array<String>]
|
74
74
|
def url
|
75
75
|
path = '//content/webAddresses/classificationDefinedFieldExtension/value/localizedString'
|
76
|
-
xpath_result =
|
76
|
+
xpath_result = xpath_query path
|
77
77
|
arr = []
|
78
78
|
xpath_result.each { |i| arr << i.text.strip }
|
79
79
|
arr.uniq
|
@@ -83,7 +83,7 @@ module Puree
|
|
83
83
|
#
|
84
84
|
# @return [Hash]
|
85
85
|
def metadata
|
86
|
-
o =
|
86
|
+
o = super
|
87
87
|
o['address'] = address
|
88
88
|
o['email'] = email
|
89
89
|
o['name'] = name
|
data/lib/puree/person.rb
CHANGED
@@ -16,7 +16,7 @@ module Puree
|
|
16
16
|
xpath_result = xpath_query path
|
17
17
|
affiliations = []
|
18
18
|
xpath_result.each { |i| affiliations << i.text }
|
19
|
-
|
19
|
+
affiliations.uniq
|
20
20
|
end
|
21
21
|
|
22
22
|
# Image
|
@@ -38,7 +38,7 @@ module Puree
|
|
38
38
|
xpath_result = xpath_query path
|
39
39
|
data = []
|
40
40
|
xpath_result.each { |i| data << i.text }
|
41
|
-
|
41
|
+
data.uniq
|
42
42
|
end
|
43
43
|
|
44
44
|
# Name
|
@@ -66,7 +66,7 @@ module Puree
|
|
66
66
|
#
|
67
67
|
# @return [Hash]
|
68
68
|
def metadata
|
69
|
-
o =
|
69
|
+
o = super
|
70
70
|
o['affiliation'] = affiliation
|
71
71
|
o['image'] = image
|
72
72
|
o['keyword'] = keyword
|
data/lib/puree/project.rb
CHANGED
data/lib/puree/publication.rb
CHANGED
@@ -50,7 +50,7 @@ module Puree
|
|
50
50
|
# @return [String]
|
51
51
|
def title
|
52
52
|
path = '//content/title'
|
53
|
-
xpath_result =
|
53
|
+
xpath_result = xpath_query path
|
54
54
|
xpath_result ? xpath_result.text.strip : ''
|
55
55
|
end
|
56
56
|
|
@@ -59,7 +59,7 @@ module Puree
|
|
59
59
|
# @return [String]
|
60
60
|
def subtitle
|
61
61
|
path = '//content/subtitle'
|
62
|
-
xpath_result =
|
62
|
+
xpath_result = xpath_query path
|
63
63
|
xpath_result ? xpath_result.text.strip : ''
|
64
64
|
end
|
65
65
|
|
@@ -67,7 +67,7 @@ module Puree
|
|
67
67
|
#
|
68
68
|
# @return [Hash]
|
69
69
|
def metadata
|
70
|
-
o =
|
70
|
+
o = super
|
71
71
|
o['description'] = description
|
72
72
|
o['doi'] = doi
|
73
73
|
o['file'] = file
|
data/lib/puree/publisher.rb
CHANGED
data/lib/puree/resource.rb
CHANGED
@@ -83,7 +83,40 @@ module Puree
|
|
83
83
|
@content ? @content : {}
|
84
84
|
end
|
85
85
|
|
86
|
+
# Created (UTC datetime)
|
87
|
+
#
|
88
|
+
# @return [String]
|
89
|
+
def created
|
90
|
+
data = node 'created'
|
91
|
+
!data.nil? && !data.empty? ? data.strip : ''
|
92
|
+
end
|
93
|
+
|
94
|
+
# Modified (UTC datetime)
|
95
|
+
#
|
96
|
+
# @return [String]
|
97
|
+
def modified
|
98
|
+
data = node 'modified'
|
99
|
+
!data.nil? && !data.empty? ? data.strip : ''
|
100
|
+
end
|
101
|
+
|
102
|
+
# UUID
|
103
|
+
#
|
104
|
+
# @return [String]
|
105
|
+
def uuid
|
106
|
+
data = node 'uuid'
|
107
|
+
!data.nil? && !data.empty? ? data.strip : ''
|
108
|
+
end
|
86
109
|
|
110
|
+
# All metadata
|
111
|
+
#
|
112
|
+
# @return [Hash]
|
113
|
+
def metadata
|
114
|
+
o = {}
|
115
|
+
o['uuid'] = uuid
|
116
|
+
o['created'] = created
|
117
|
+
o['modified'] = modified
|
118
|
+
o
|
119
|
+
end
|
87
120
|
|
88
121
|
private
|
89
122
|
|
@@ -132,5 +165,6 @@ module Puree
|
|
132
165
|
doc.xpath path
|
133
166
|
end
|
134
167
|
|
168
|
+
|
135
169
|
end
|
136
170
|
end
|
data/lib/puree/version.rb
CHANGED
data/spec/dataset.rb
CHANGED
@@ -32,6 +32,10 @@ describe 'Dataset' do
|
|
32
32
|
expect(@p.available).to be_an_instance_of(Hash)
|
33
33
|
end
|
34
34
|
|
35
|
+
it '#created' do
|
36
|
+
expect(@p.created).to be_an_instance_of(String)
|
37
|
+
end
|
38
|
+
|
35
39
|
it '#description' do
|
36
40
|
expect(@p.description).to be_an_instance_of(String)
|
37
41
|
end
|
@@ -60,6 +64,10 @@ describe 'Dataset' do
|
|
60
64
|
expect(@p.metadata).to be_an_instance_of(Hash)
|
61
65
|
end
|
62
66
|
|
67
|
+
it '#modified' do
|
68
|
+
expect(@p.modified).to be_an_instance_of(String)
|
69
|
+
end
|
70
|
+
|
63
71
|
it '#person' do
|
64
72
|
expect(@p.person).to be_an_instance_of(Hash)
|
65
73
|
end
|
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: 0.
|
4
|
+
version: 0.12.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: 2016-05-
|
11
|
+
date: 2016-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|