puree 0.14.0 → 0.15.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6b99230d8fee3aa6a259149b6b0fcf1beb258f43
4
- data.tar.gz: 3c6e08559c575caa1edb25c986d91f670f157384
3
+ metadata.gz: b99d2257bc1a5acc9a02e0518d722e741f75953d
4
+ data.tar.gz: f29a0057bcd27d84c01b90c2a1316986765442a4
5
5
  SHA512:
6
- metadata.gz: 083843de876a7502201a2cea2180c39e0c0b9b7ea67d2dce14ad577e47f30243bd798a085d4a6fe48a0ec42a4be0ea901e945b0452bfe269206d4decf40fcea3
7
- data.tar.gz: 48c0c50c3a3c1d9cddaed24ad7f9bc8ed90e750721ff244a7eed6150fbca37424827c304145b295259b44107cb9eeb5466289ebe56a6631e91f97a262cfa0031
6
+ metadata.gz: 8a043447e965f65c4ef360cd2cb8eaf7eff0043bf252c232207f2d55428573c915e8989150053e4a2cb0640e4d1976c0a73041fbcd9a711819853c0ec9b4d0d3
7
+ data.tar.gz: 09cde7525b2d29e54529b4a1710ff02fa8774aca8e051ebf5fefa3e223dc75324c8ffae2e5c68d46e9695a0b2aba52c6691aae053f82109ee5b7c641d16fa90f
@@ -3,7 +3,31 @@ 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
5
  ## Unreleased
6
- - Download stats.
6
+ Metadata :journal, publisher
7
+ Factory to make resource objects?
8
+
9
+ ## 0.15.0 - 2016-06-22
10
+ ### Added
11
+ - Person (email).
12
+ - Server metadata (version).
13
+ - Download statistics.
14
+ - Collection - metadata fetch.
15
+ - Collection - returns uuids or metadata, depending upon parameter.
16
+ - Project metadata (acronym, description, owner, status, temporal, title, type, url).
17
+ - Collection and resource types - optional basic authentication.
18
+ - Replaced request library.
19
+ - Publication - category, event, organisation, page, person, status, type.
20
+ - Project - organisation, person.
21
+ - Dataset - organisation, person.
22
+ - Server and download - optional basic authentication.
23
+
24
+
25
+ ### Changed
26
+ - Dataset - organisation becomes owner.
27
+ - Global configuration namespace simplified.
28
+ - Person (affiliation - uuid added to name in a hash).
29
+ - Collection - parameter renamed to resource, in keeping with class structure.
30
+ - Resource types return metadata rather than HTTP response object.
7
31
 
8
32
  ## 0.14.0 - 2016-06-10
9
33
  ### Added
data/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # Purée [![Gem Version](https://badge.fury.io/rb/puree.svg)](https://badge.fury.io/rb/puree)
2
- A Ruby client for the Pure Research Information System API.
3
-
2
+ Purée consumes the Pure Research Information System API and puts the metadata into simple data structures.
4
3
 
5
4
  ## Installation
6
5
 
@@ -16,359 +15,37 @@ Or install it yourself as:
16
15
 
17
16
  $ gem install puree
18
17
 
19
- ## Usage
20
- Authentication
21
-
22
- ```ruby
23
-
24
- # Global settings together
25
- Puree::Configuration.configure do |c|
26
- c.endpoint = ENV['PURE_ENDPOINT']
27
- c.username = ENV['PURE_USERNAME']
28
- c.password = ENV['PURE_PASSWORD']
29
- end
30
-
31
- # Global settings individually
32
- Puree::Configuration.endpoint = ENV['PURE_ENDPOINT']
33
- Puree::Configuration.username = ENV['PURE_USERNAME']
34
- Puree::Configuration.password = ENV['PURE_PASSWORD']
35
-
36
- # Use global settings
37
- d = Puree::Dataset.new
38
-
39
- # Override one or more global settings in an instance
40
- d = Puree::Dataset.new endpoint: 'http://example.com/ws/rest',
41
- username: 'another_username',
42
- password: 'another_password'
43
- ```
44
18
 
19
+ ## Usage
20
+ The following examples are for the Dataset resource type.
45
21
 
46
- Dataset
22
+ ### Single resource
23
+ Tell Purée what you are looking for...
47
24
 
48
25
  ```ruby
49
-
50
26
  d = Puree::Dataset.new
51
-
52
- # Get metadata using ID
53
- d.find id: 12345678
54
-
55
- # Reuse instance
56
- d.find id: 87654321
57
-
58
- # Get metadata using UUID
59
- d.find uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
60
-
61
- # Filter metadata into simple data structures
62
- d.access
63
- d.associated
64
- d.available
65
- d.created
66
- d.description
67
- d.doi
68
- d.file
69
- d.geographical
70
- d.keyword
71
- d.link
72
- d.modified
73
- d.organisation
74
- d.person
75
- d.production
76
- d.project
77
- d.publication
78
- d.publisher
79
- d.temporal
80
- d.title
81
-
82
- # Combine metadata into one simple data structure
83
- d.metadata
84
-
85
- # Access HTTParty functionality
86
- d.response # HTTParty object
87
- d.response.body # XML
88
- d.response.code
89
- d.response.message
90
- d.response.headers # hash
91
- ```
92
-
93
- Collection
94
-
95
- ```ruby
96
- c = Puree::Collection.new api: :dataset
97
-
98
- # Get three minimal datasets, starting at record ten, created and modified in January 2016.
99
- c.find limit: 3, # optional, default 20
100
- offset: 10, # optional, default 0
101
- created_start: '2016-01-01', # optional
102
- created_end: '2016-01-31', # optional
103
- modified_start: '2016-01-01', # optional
104
- modified_end: '2016-01-31' # optional
105
-
106
- # Get UUIDs for datasets
107
- uuids = c.uuid
108
-
109
- # Get metadata using UUID
110
- datasets = []
111
- uuids.each do |uuid|
112
- d = Puree::Dataset.new
113
- d.find uuid: uuid
114
- datasets << d.metadata
115
- end
116
- ```
117
-
118
- ## Data structures
119
-
120
- ### Dataset
121
-
122
- #### available
123
- Date made available. If year is present, month and day will have data or an empty string.
124
-
125
- ```ruby
126
- {
127
- "year" => "2016",
128
- "month" => "2",
129
- "day" => "4"
130
- }
131
- ```
132
-
133
- #### file
134
- An array of files.
135
-
136
- ```ruby
137
- [
138
- {
139
- "name" => "foo.csv",
140
- "mime" => "application/octet-stream",
141
- "size" => "1616665158",
142
- "url" => "http://example.com/ws/rest/files/12345678/foo.csv",
143
- "title" => "foo.csv",
144
- "license" => {
145
- "name" => "CC BY-NC",
146
- "url" => "http://creativecommons.org/licenses/by-nc/4.0/"
147
- }
148
- },
149
- ]
150
- ```
151
-
152
- #### link
153
- An array of links.
154
-
155
- ```ruby
156
- [
157
- {
158
- "url" => "http://www.example.com/~abc1234/xyz/",
159
- "description" => "An interesting description"
160
- },
161
- ]
162
- ```
163
-
164
- #### organisation
165
- Organisation responsible.
166
-
167
- ```ruby
168
- {
169
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
170
- "name" => "Institute for the Arts",
171
- "type" => "Department"
172
- }
27
+ metadata = d.find uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
173
28
  ```
174
-
175
- #### person
176
- Contains an array of internal persons, an array of external persons and an array of other persons.
177
-
178
- ```ruby
179
- {
180
- "internal" => [
181
- {
182
- "name" => {
183
- "first" => "Stan",
184
- "last" => "Laurel"
185
- },
186
- "role" => "Creator",
187
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
188
- },
189
- ],
190
- "external" => [
191
- ],
192
- "other" => [
193
- {
194
- "name" => {
195
- "first" => "Hal",
196
- "last" => "Roach"
197
- },
198
- "role" => "Contributor",
199
- "uuid" => ""
200
- },
201
- ]
202
- }
203
- ```
204
-
205
- #### project
206
- An array of projects associated with the dataset.
207
-
208
- ```ruby
209
- [
210
- {
211
- "title" => "An interesting project title",
212
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
213
- },
214
- ]
215
- ```
216
-
217
- #### publication
218
- An array of research outputs associated with the dataset.
219
-
220
- ```ruby
221
- [
222
- {
223
- "type" => "Journal article",
224
- "title" => "An interesting journal article title",
225
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
226
- },
227
- {
228
- "type" => "Conference paper",
229
- "title" => "An interesting conference paper title",
230
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
231
- },
232
- {
233
- "type" => "Working paper",
234
- "title" => "An interesting working paper title",
235
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
236
- },
237
- {
238
- "type" => "Paper",
239
- "title" => "An interesting paper title",
240
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
241
- },
242
- {
243
- "type" => "Dataset",
244
- "title" => "An interesting dataset title",
245
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
246
- },
247
- {
248
- "type" => "Chapter",
249
- "title" => "An interesting chapter title",
250
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
251
- },
252
- ]
253
- ```
254
-
255
- #### production, temporal
256
- Date range. If year is present, month and day will have data or an empty string.
29
+ ...and get the data from a hash...
257
30
 
258
31
  ```ruby
259
- {
260
- "start" => {
261
- "year" => "2005",
262
- "month" => "5",
263
- "day" => "10"
264
- },
265
- "end" => {
266
- "year" => "2011",
267
- "month" => "9",
268
- "day" => "18"
269
- }
270
- }
32
+ metadata['doi']
271
33
  ```
272
34
 
273
- ### Organisation
274
-
275
- #### address
276
- An array of addresses.
35
+ ### Collection of 50 resources
36
+ Tell Pur&#233;e what you are looking for...
277
37
 
278
38
  ```ruby
279
- [
280
- {
281
- "street" => "Lancaster University",
282
- "building" => "Bowland North",
283
- "postcode" => "LA1 4YN",
284
- "city" => "Lancaster",
285
- "country" => "United Kingdom"
286
- },
287
- ]
39
+ c = Puree::Collection.new resource: :dataset
40
+ metadata = c.find limit: 50
288
41
  ```
42
+ ...and get the data from an array of hashes.
289
43
 
290
- #### parent
291
- Parent organisation.
44
+ ## Documentation
45
+ [API in YARD](http://www.rubydoc.info/gems/puree/frames)
292
46
 
293
- ```ruby
294
- {
295
- "uuid" => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
296
- "name" => "Institute for the Arts",
297
- "type" => "Department"
298
- }
299
- ```
47
+ [Detailed usage](https://github.com/lulibrary/puree/wiki)
300
48
 
301
- ### Publication
302
49
 
303
- #### file
304
- An array of files.
305
50
 
306
- ```ruby
307
- [
308
- {
309
- "name" => "foo.csv",
310
- "mime" => "application/octet-stream",
311
- "size" => "1616665158",
312
- "url" => "http://example.com/ws/rest/files/12345678/foo.csv",
313
- },
314
- ]
315
- ```
316
-
317
- ## Utilities
318
-
319
- ### Convert date to ISO 8601 format.
320
51
 
321
- ```ruby
322
- Puree::Date.iso d.available
323
- ```
324
- ```ruby
325
- {
326
- "year" => "2016",
327
- "month" => "4",
328
- "day" => "18"
329
- }
330
- ```
331
- becomes
332
-
333
- ```ruby
334
- "2016-04-18"
335
- ```
336
-
337
-
338
- ## API coverage
339
- Version
340
-
341
- ```ruby
342
- 5.5.1
343
- ```
344
-
345
- Resource metadata
346
-
347
- ```ruby
348
- :dataset
349
- :event
350
- :organisation
351
- :person
352
- :publication
353
- ```
354
-
355
- Resource metadata (system data and single hash only)
356
-
357
- ```ruby
358
- :journal
359
- :project
360
- :publisher
361
- ```
362
-
363
- Collections (for obtaining identifiers)
364
-
365
- ```ruby
366
- :dataset
367
- :event
368
- :journal
369
- :organisation
370
- :person
371
- :project
372
- :publication
373
- :publisher
374
- ```
@@ -1,4 +1,4 @@
1
- require 'httparty'
1
+ require 'http'
2
2
  require 'nokogiri'
3
3
  require 'puree/configuration'
4
4
  require 'puree/date'
@@ -12,4 +12,17 @@ require 'puree/person'
12
12
  require 'puree/project'
13
13
  require 'puree/publication'
14
14
  require 'puree/publisher'
15
- require 'puree/collection'
15
+ require 'puree/collection'
16
+ require 'puree/download'
17
+ require 'puree/server'
18
+ require 'puree/version'
19
+
20
+ module Puree
21
+
22
+ class << self
23
+
24
+ include Puree::Configuration
25
+
26
+ end
27
+
28
+ end