puree 0.10.0 → 0.11.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: 098c3fc6fe0dc9773261d20e4f2f8e021e9f8255
4
- data.tar.gz: 49b91baf4a68f02a337b986c15f6fe35c67b4396
3
+ metadata.gz: 5010e60daa336c9d45804049400f946af67d8d9e
4
+ data.tar.gz: 9c6d97bce8924ad81b3213c9066b344f268811ea
5
5
  SHA512:
6
- metadata.gz: d3670c89f2adb4ff43f1c262ab10dbb140b4ab5438103a267f63524894292a760e41fc4af0839243cb61688608375b1c996a0960fe31e902b483861dddd1c723
7
- data.tar.gz: c962958c92997235fc5730e310e15593cdd9d3ad6c7ab9db7c60db7ef61577c0abac86cd3ee359385354753a4ff899a2dd46d397413e0e624fc56f53bfc8d6b1
6
+ metadata.gz: 1f15e9d9255f39007b9f1659c2210cfc061298b9e33d0df8fa67bea84a8ecb0d37f5f0de20816fc2da8c97d7c650f613d6afc8fdced6bc7700621b77a376a971
7
+ data.tar.gz: 2ce7fb3d3b2a7727fc8fea763e901fcc70c50daf04ab701df90be6e63f65fdf0c3628b53e28a8068a5b48cc6a056bc94fcdfe4a321717dbe5a41b4873d83eb2d
data/CHANGELOG.md CHANGED
@@ -2,9 +2,19 @@
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.11.0 - 2016-05-19
6
+ ### Added
7
+ - Event metadata (city, country, date, description, location, title, type).
8
+ - Organisation metadata (address, email, phone, type, url).
9
+
10
+ ### Changed
11
+ - Dataset metadata (return string not array for description, title).
12
+ - Publication metadata (return string not array for description, subtitle, title).
13
+
5
14
  ## 0.10.0 - 2016-05-17
6
15
  ### Added
7
16
  - Dataset metadata (associated, link, project, production as range, person for those without uuid, publication for all research outputs, publisher).
17
+
8
18
  ### Fixed
9
19
  - Dataset metadata (description splitting, geographical stripping).
10
20
 
data/README.md CHANGED
@@ -48,10 +48,12 @@ d.doi
48
48
  d.file
49
49
  d.geographical
50
50
  d.keyword
51
+ d.link
51
52
  d.person
52
- d.project
53
53
  d.production
54
+ d.project
54
55
  d.publication
56
+ d.publisher
55
57
  d.temporal
56
58
  d.title
57
59
 
@@ -215,7 +217,7 @@ An array of research outputs associated with the dataset.
215
217
  ]
216
218
  ```
217
219
 
218
- ### temporal
220
+ ### production, temporal
219
221
  Date range. If year is present, month and day will have data or an empty string.
220
222
 
221
223
  ```ruby
@@ -233,6 +235,23 @@ Date range. If year is present, month and day will have data or an empty string.
233
235
  }
234
236
  ```
235
237
 
238
+ ## Organisation data structures
239
+
240
+ ### address
241
+ An array of addresses.
242
+
243
+ ```ruby
244
+ [
245
+ {
246
+ "street"=>"Lancaster University",
247
+ "building"=>"Bowland North",
248
+ "postcode"=>"LA1 4YN",
249
+ "city"=>"Lancaster",
250
+ "country"=>"United Kingdom"
251
+ }
252
+ ]
253
+ ```
254
+
236
255
  ## Publication data structures
237
256
 
238
257
  ### file
@@ -281,6 +300,7 @@ Resource metadata
281
300
 
282
301
  ```ruby
283
302
  :dataset
303
+ :event
284
304
  :organisation
285
305
  :person
286
306
  :publication
@@ -298,6 +318,7 @@ Collections (for obtaining identifiers)
298
318
 
299
319
  ```ruby
300
320
  :dataset
321
+ :event
301
322
  :journal
302
323
  :organisation
303
324
  :person
data/lib/puree.rb CHANGED
@@ -4,6 +4,7 @@ require 'puree/date'
4
4
  require 'puree/map'
5
5
  require 'puree/resource'
6
6
  require 'puree/dataset'
7
+ require 'puree/event'
7
8
  require 'puree/journal'
8
9
  require 'puree/organisation'
9
10
  require 'puree/person'
@@ -37,7 +37,7 @@ module Puree
37
37
  query['window.size'] = @options[:qty]
38
38
  end
39
39
 
40
- @response = HTTParty.get(url, query: query, headers: headers)
40
+ @response = HTTParty.get(build_url, query: query, headers: headers)
41
41
  end
42
42
 
43
43
 
data/lib/puree/dataset.rb CHANGED
@@ -17,8 +17,8 @@ module Puree
17
17
  data = []
18
18
  xpath_result.each { |i|
19
19
  o = {}
20
- o['url'] = i.xpath('url').text
21
- o['description'] = i.xpath('description').text
20
+ o['url'] = i.xpath('url').text.strip
21
+ o['description'] = i.xpath('description').text.strip
22
22
  data << o
23
23
  }
24
24
  return data.uniq
@@ -30,7 +30,7 @@ module Puree
30
30
  def publisher
31
31
  path = '//publisher/name'
32
32
  xpath_result = xpath_query path
33
- xpath_result ? xpath_result.text : ''
33
+ xpath_result ? xpath_result.text.strip : ''
34
34
  end
35
35
 
36
36
  # Combines project and publication
@@ -42,15 +42,14 @@ module Puree
42
42
  data_arr = []
43
43
  xpath_result.each { |i|
44
44
  data = {}
45
- data['type'] = i.xpath('typeClassification').text
46
- data['title'] = i.xpath('title').text
47
- data['uuid'] = i.attr('uuid')
45
+ data['type'] = i.xpath('typeClassification').text.strip
46
+ data['title'] = i.xpath('title').text.strip
47
+ data['uuid'] = i.attr('uuid').strip
48
48
  data_arr << data
49
49
  }
50
50
  data_arr.uniq
51
51
  end
52
52
 
53
-
54
53
  # Project
55
54
  #
56
55
  # @return [Array<Hash>]
@@ -74,41 +73,30 @@ module Puree
74
73
 
75
74
  # Title
76
75
  #
77
- # @return [Array<String>]
76
+ # @return [String]
78
77
  def title
79
- data = node 'title'
80
- data_arr = []
81
- if !data.nil? && !data.empty?
82
- data = data['localizedString']["__content__"]
83
- data.is_a?(Array) ? data_arr = data : data_arr << data
84
- end
85
- data_arr.uniq
78
+ path = '//title/localizedString'
79
+ xpath_result = xpath_query path
80
+ xpath_result ? xpath_result.text.strip : ''
86
81
  end
87
82
 
88
83
  # Keyword
89
84
  #
90
85
  # @return [Array<String>]
91
86
  def keyword
92
- data = node 'keywordGroups'
93
- data_arr = []
94
- if !data.nil? && !data.empty?
95
- data = data['keywordGroup']['keyword']['userDefinedKeyword']['freeKeyword']
96
- data.is_a?(Array) ? data_arr = data : data_arr << data
97
- end
87
+ path = '//keywordGroups/keywordGroup/keyword/userDefinedKeyword/freeKeyword'
88
+ xpath_result = xpath_query path
89
+ data_arr = xpath_result.map { |i| i.text.strip }
98
90
  data_arr.uniq
99
91
  end
100
92
 
101
93
  # Description
102
94
  #
103
- # @return [Array<String>]
95
+ # @return [String]
104
96
  def description
105
- data = node 'descriptions'
106
- data_arr = []
107
- if !data.nil? && !data.empty?
108
- data = data['classificationDefinedField']['value']['localizedString']['__content__'].tr("\n", '')
109
- data.is_a?(Array) ? data_arr = data : data_arr << data
110
- end
111
- data_arr.uniq
97
+ path = '//descriptions/classificationDefinedField/value/localizedString'
98
+ xpath_result = xpath_query path
99
+ xpath_result ? xpath_result.text.strip : ''
112
100
  end
113
101
 
114
102
  # Person (internal, external, other)
@@ -130,11 +118,11 @@ module Puree
130
118
  data.each do |d|
131
119
  person = generic_person d
132
120
  if d.key? 'person'
133
- person['uuid'] = d['person']['uuid']
121
+ person['uuid'] = d['person']['uuid'].strip
134
122
  internal_persons << person
135
123
  end
136
124
  if d.key? 'externalPerson'
137
- person['uuid'] = d['externalPerson']['uuid']
125
+ person['uuid'] = d['externalPerson']['uuid'].strip
138
126
  external_persons << person
139
127
  end
140
128
  if !d.key?('person') && !d.key?('externalPerson')
@@ -145,11 +133,11 @@ module Puree
145
133
  when Hash
146
134
  person = generic_person data
147
135
  if data.key? 'person'
148
- person['uuid'] = data['person']['uuid']
136
+ person['uuid'] = data['person']['uuid'].strip
149
137
  internal_persons << person
150
138
  end
151
139
  if data.key? 'externalPerson'
152
- person['uuid'] = data['externalPerson']['uuid']
140
+ person['uuid'] = data['externalPerson']['uuid'].strip
153
141
  external_persons << person
154
142
  end
155
143
  if !data.key?('person') && !data.key?('externalPerson')
@@ -206,7 +194,7 @@ module Puree
206
194
  # @return [String]
207
195
  def access
208
196
  data = node 'openAccessPermission'
209
- !data.nil? && !data.empty? ? data['term']['localizedString']["__content__"] : ''
197
+ !data.nil? && !data.empty? ? data['term']['localizedString']["__content__"].strip : ''
210
198
  end
211
199
 
212
200
 
@@ -214,41 +202,31 @@ module Puree
214
202
  #
215
203
  # @return [Array<Hash>]
216
204
  def file
217
- data = node 'documents'
205
+ path = '//documents/document'
206
+ xpath_result = xpath_query path
218
207
 
219
208
  docs = []
220
- if !data.nil? && !data.empty?
221
- # convert to array
222
- data_arr = []
223
- if data['document'].is_a?(Array)
224
- data_arr = data['document']
225
- else
226
- data_arr << data['document']
227
- end
228
209
 
229
- data_arr.each do |d|
230
- doc = {}
231
- # doc['id'] = d['id']
232
- doc['name'] = d['fileName']
233
- doc['mime'] = d['mimeType']
234
- doc['size'] = d['size']
235
- doc['url'] = d['url']
236
- doc['title'] = d['title']
237
- # doc['createdDate'] = doc['createdDate']
238
- # doc['visibleOnPortalDate'] = doc['visibleOnPortalDate']
239
- # doc['limitedVisibility'] = doc['limitedVisibility']
240
-
241
- license = {}
242
- if d['documentLicense']
243
- license_name = d['documentLicense']['term']['localizedString']['__content__']
244
- license['name'] = license_name
245
- license_url = d['documentLicense']['description']['localizedString']['__content__']
246
- license['url'] = license_url
247
- doc['license'] = license
248
- end
249
- docs << doc
210
+ xpath_result.each do |d|
211
+ doc = {}
212
+ # doc['id'] = f.xpath('id').text.strip
213
+ doc['name'] = d.xpath('fileName').text.strip
214
+ doc['mime'] = d.xpath('mimeType').text.strip
215
+ doc['size'] = d.xpath('size').text.strip
216
+ doc['url'] = d.xpath('url').text.strip
217
+ doc['title'] = d.xpath('title').text.strip
218
+ # doc['createdDate'] = d.xpath('createdDate').text.strip
219
+ # doc['visibleOnPortalDate'] = d.xpath('visibleOnPortalDate').text.strip
220
+ # doc['limitedVisibility'] = d.xpath('limitedVisibility').text.strip
221
+
222
+ license = {}
223
+ license_name = d.xpath('documentLicense/term/localizedString').text.strip
224
+ license['name'] = license_name
225
+ license_url = d.xpath('documentLicense/description/localizedString').text.strip
226
+ license['url'] = license_url
227
+ doc['license'] = license
228
+ docs << doc
250
229
 
251
- end
252
230
  end
253
231
  docs.uniq
254
232
  end
@@ -257,8 +235,9 @@ module Puree
257
235
  #
258
236
  # @return [String]
259
237
  def doi
260
- data = node 'doi'
261
- !data.nil? && !data.empty? ? data['doi'] : ''
238
+ path = '//content/doi'
239
+ xpath_result = xpath_query path
240
+ xpath_result ? xpath_result.text.strip : ''
262
241
  end
263
242
 
264
243
  # def state
@@ -0,0 +1,88 @@
1
+ module Puree
2
+
3
+ # Event resource
4
+ #
5
+ class Event < Resource
6
+
7
+ def initialize
8
+ super(:event)
9
+ end
10
+
11
+ # City
12
+ #
13
+ # @return [String]
14
+ def city
15
+ path = '//city'
16
+ xpath_query(path).text.strip
17
+ end
18
+
19
+ # Country
20
+ #
21
+ # @return [String]
22
+ def country
23
+ path = '//country/term/localizedString'
24
+ xpath_query(path).text.strip
25
+ end
26
+
27
+ # Date
28
+ #
29
+ # @return [Hash]
30
+ def date
31
+ data = {}
32
+ path = '//dateRange'
33
+ range = xpath_query path
34
+ data['start'] = range.xpath('startDate').text.strip
35
+ data['end'] = range.xpath('startDate').text.strip
36
+ data
37
+ end
38
+
39
+ # Description
40
+ #
41
+ # @return [String]
42
+ def description
43
+ path = '//content/description'
44
+ xpath_query(path).text.strip
45
+ end
46
+
47
+ # Location
48
+ #
49
+ # @return [String]
50
+ def location
51
+ path = '//location'
52
+ xpath_query(path).text.strip
53
+ end
54
+
55
+ # Title
56
+ #
57
+ # @return [String]
58
+ def title
59
+ path = '//title/localizedString'
60
+ xpath_query(path).text.strip
61
+ end
62
+
63
+ # Type
64
+ #
65
+ # @return [String]
66
+ def type
67
+ path = '//content/typeClassification/term/localizedString'
68
+ xpath_query(path).text.strip
69
+ end
70
+
71
+ # All metadata
72
+ #
73
+ # @return [Hash]
74
+ def metadata
75
+ o = {}
76
+ o['city'] = city
77
+ o['country'] = country
78
+ o['date'] = date
79
+ o['description'] = description
80
+ o['location'] = location
81
+ o['title'] = title
82
+ o['type'] = type
83
+ o
84
+ end
85
+
86
+ end
87
+
88
+ end
data/lib/puree/map.rb CHANGED
@@ -4,6 +4,7 @@ module Puree
4
4
 
5
5
  def initialize
6
6
  @convention = %w(
7
+ event
7
8
  journal
8
9
  organisation
9
10
  person
@@ -8,12 +8,75 @@ module Puree
8
8
  super(:organisation)
9
9
  end
10
10
 
11
+ # Address
12
+ #
13
+ # @return [Array<Hash>]
14
+ def address
15
+ path = '//addresses/classifiedAddress'
16
+ xpath_result = xpath_query path
17
+
18
+ data = []
19
+
20
+ xpath_result.each do |d|
21
+ o = {}
22
+ o['street'] = d.xpath('street').text.strip
23
+ o['building'] = d.xpath('building').text.strip
24
+ o['postcode'] = d.xpath('postalCode').text.strip
25
+ o['city'] = d.xpath('city').text.strip
26
+ o['country'] = d.xpath('country/term/localizedString').text.strip
27
+ data << o
28
+ end
29
+ data.uniq
30
+ end
31
+
32
+ # Email
33
+ #
34
+ # @return [Array<String>]
35
+ def email
36
+ path = '//emails/classificationDefinedStringFieldExtension/value'
37
+ xpath_result = xpath_query path
38
+ arr = []
39
+ xpath_result.each { |i| arr << i.text.strip }
40
+ arr.uniq
41
+ end
42
+
11
43
  # Name
12
44
  #
13
45
  # @return [String]
14
46
  def name
15
47
  data = node 'name'
16
- !data.nil? && !data.empty? ? data['localizedString']['__content__'] : ''
48
+ !data.nil? && !data.empty? ? data['localizedString']['__content__'].strip : ''
49
+ end
50
+
51
+ # Phone
52
+ #
53
+ # @return [Array<String>]
54
+ def phone
55
+ path = '//phoneNumbers/classificationDefinedStringFieldExtension/value'
56
+ xpath_result = xpath_query path
57
+ arr = []
58
+ xpath_result.each { |i| arr << i.text.strip }
59
+ arr.uniq
60
+ end
61
+
62
+ # Type
63
+ #
64
+ # @return [String]
65
+ def type
66
+ path = '//content/typeClassification/term/localizedString'
67
+ xpath_result = xpath_query path
68
+ xpath_result ? xpath_result.text.strip : ''
69
+ end
70
+
71
+ # URL
72
+ #
73
+ # @return [Array<String>]
74
+ def url
75
+ path = '//content/webAddresses/classificationDefinedFieldExtension/value/localizedString'
76
+ xpath_result = xpath_query path
77
+ arr = []
78
+ xpath_result.each { |i| arr << i.text.strip }
79
+ arr.uniq
17
80
  end
18
81
 
19
82
  # All metadata
@@ -21,7 +84,12 @@ module Puree
21
84
  # @return [Hash]
22
85
  def metadata
23
86
  o = {}
87
+ o['address'] = address
88
+ o['email'] = email
24
89
  o['name'] = name
90
+ o['phone'] = phone
91
+ o['type'] = type
92
+ o['url'] = url
25
93
  o
26
94
  end
27
95
 
data/lib/puree/person.rb CHANGED
@@ -48,8 +48,8 @@ module Puree
48
48
  data = node 'name'
49
49
  o = {}
50
50
  if !data.nil? && !data.empty?
51
- o['first'] = data['firstName']
52
- o['last'] = data['lastName']
51
+ o['first'] = data['firstName'].strip
52
+ o['last'] = data['lastName'].strip
53
53
  end
54
54
  o
55
55
  end
@@ -59,7 +59,7 @@ module Puree
59
59
  # @return [String]
60
60
  def orcid
61
61
  data = node 'orcid'
62
- !data.nil? && !data.empty? ? data : ''
62
+ !data.nil? && !data.empty? ? data.strip : ''
63
63
  end
64
64
 
65
65
  # All metadata
@@ -10,13 +10,11 @@ module Puree
10
10
 
11
11
  # Description
12
12
  #
13
- # @return [Array<String>]
13
+ # @return [String]
14
14
  def description
15
15
  path = '//abstract/localizedString'
16
16
  xpath_result = xpath_query path
17
- data_arr = []
18
- xpath_result.each { |i| data_arr << i.text }
19
- data_arr.uniq
17
+ xpath_result ? xpath_result.text.strip : ''
20
18
  end
21
19
 
22
20
  # Digital Object Identifier
@@ -25,7 +23,7 @@ module Puree
25
23
  def doi
26
24
  path = '//doi'
27
25
  xpath_result = xpath_query path
28
- xpath_result ? xpath_result.text : ''
26
+ xpath_result ? xpath_result.text.strip : ''
29
27
  end
30
28
 
31
29
  # Supporting file
@@ -38,10 +36,10 @@ module Puree
38
36
  xpath_result.each do |d|
39
37
  doc = {}
40
38
  # doc['id'] = d.xpath('id').text
41
- doc['name'] = d.xpath('fileName').text
42
- doc['mime'] = d.xpath('mimeType').text
43
- doc['size'] = d.xpath('size').text
44
- doc['url'] = d.xpath('url').text
39
+ doc['name'] = d.xpath('fileName').text.strip
40
+ doc['mime'] = d.xpath('mimeType').text.strip
41
+ doc['size'] = d.xpath('size').text.strip
42
+ doc['url'] = d.xpath('url').text.strip
45
43
  docs << doc
46
44
  end
47
45
  docs.uniq
@@ -49,24 +47,20 @@ module Puree
49
47
 
50
48
  # Title
51
49
  #
52
- # @return [Array<String>]
50
+ # @return [String]
53
51
  def title
54
52
  path = '//content/title'
55
53
  xpath_result = xpath_query path
56
- data_arr = []
57
- xpath_result.each { |i| data_arr << i.text }
58
- data_arr.uniq
54
+ xpath_result ? xpath_result.text.strip : ''
59
55
  end
60
56
 
61
57
  # Subtitle
62
58
  #
63
- # @return [Array<String>]
59
+ # @return [String]
64
60
  def subtitle
65
61
  path = '//content/subtitle'
66
62
  xpath_result = xpath_query path
67
- data_arr = []
68
- xpath_result.each { |i| data_arr << i.text }
69
- data_arr.uniq
63
+ xpath_result ? xpath_result.text.strip : ''
70
64
  end
71
65
 
72
66
  # All metadata
@@ -43,7 +43,11 @@ module Puree
43
43
  end
44
44
  end
45
45
 
46
- @response = HTTParty.get(url, query: query, headers: headers)
46
+ begin
47
+ @response = HTTParty.get(build_url, query: query, headers: headers, timeout: 120)
48
+ rescue HTTParty::Error => e
49
+ puts 'HttParty::Error '+ e.message
50
+ end
47
51
 
48
52
  if get_data?
49
53
  response_name = service_response_name
@@ -111,7 +115,7 @@ module Puree
111
115
  @api_map[:resource_type][resource_type][:response]
112
116
  end
113
117
 
114
- def url
118
+ def build_url
115
119
  service = service_name
116
120
  if @options[:latest_api] === false
117
121
  service_api_mode = service
data/lib/puree/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Puree
2
- VERSION = "0.10.0"
2
+ VERSION = "0.11.0"
3
3
  end
data/spec/dataset.rb CHANGED
@@ -20,54 +20,75 @@ describe 'Dataset' do
20
20
  uuid: uuid
21
21
  end
22
22
 
23
- it '#title' do
24
- expect(@p.title).to be_an_instance_of(Array)
23
+ it '#access' do
24
+ expect(@p.access).to be_an_instance_of(String)
25
25
  end
26
26
 
27
- it '#keyword' do
28
- expect(@p.keyword).to be_an_instance_of(Array)
27
+ it '#associated' do
28
+ expect(@p.associated).to be_an_instance_of(Array)
29
29
  end
30
30
 
31
- it '#description' do
32
- expect(@p.description).to be_an_instance_of(Array)
31
+ it '#available' do
32
+ expect(@p.available).to be_an_instance_of(Hash)
33
33
  end
34
34
 
35
- it '#person' do
36
- expect(@p.person).to be_an_instance_of(Hash)
35
+ it '#description' do
36
+ expect(@p.description).to be_an_instance_of(String)
37
37
  end
38
38
 
39
- it '#publication' do
40
- expect(@p.publication).to be_an_instance_of(Array)
39
+ it '#doi' do
40
+ expect(@p.doi).to be_an_instance_of(String)
41
41
  end
42
42
 
43
- it '#available' do
44
- expect(@p.available).to be_an_instance_of(Hash)
43
+ it '#file' do
44
+ expect(@p.file).to be_an_instance_of(Array)
45
45
  end
46
46
 
47
47
  it '#geographical' do
48
48
  expect(@p.geographical).to be_an_instance_of(Array)
49
49
  end
50
50
 
51
- it '#temporal' do
52
- expect(@p.temporal).to be_an_instance_of(Hash)
51
+ it '#keyword' do
52
+ expect(@p.keyword).to be_an_instance_of(Array)
53
53
  end
54
54
 
55
- it '#access' do
56
- expect(@p.access).to be_an_instance_of(String)
55
+ it '#link' do
56
+ expect(@p.link).to be_an_instance_of(Array)
57
57
  end
58
58
 
59
- it '#file' do
60
- expect(@p.file).to be_an_instance_of(Array)
59
+ it '#metadata' do
60
+ expect(@p.metadata).to be_an_instance_of(Hash)
61
61
  end
62
62
 
63
- it '#doi' do
64
- expect(@p.doi).to be_an_instance_of(String)
63
+ it '#person' do
64
+ expect(@p.person).to be_an_instance_of(Hash)
65
65
  end
66
66
 
67
- it '#metadata' do
68
- expect(@p.metadata).to be_an_instance_of(Hash)
67
+ it '#production' do
68
+ expect(@p.production).to be_an_instance_of(Hash)
69
+ end
70
+
71
+ it '#project' do
72
+ expect(@p.project).to be_an_instance_of(Array)
69
73
  end
70
74
 
75
+ it '#publication' do
76
+ expect(@p.publication).to be_an_instance_of(Array)
77
+ end
78
+
79
+ it '#publisher' do
80
+ expect(@p.publisher).to be_an_instance_of(String)
81
+ end
82
+
83
+ it '#temporal' do
84
+ expect(@p.temporal).to be_an_instance_of(Hash)
85
+ end
86
+
87
+ it '#title' do
88
+ expect(@p.title).to be_an_instance_of(String)
89
+ end
90
+
91
+
71
92
  end
72
93
 
73
94
  end
data/spec/spec_helper.rb CHANGED
@@ -4,6 +4,7 @@ require 'puree/date'
4
4
  require 'puree/map'
5
5
  require 'puree/resource'
6
6
  require 'puree/dataset'
7
+ require 'puree/event'
7
8
  require 'puree/journal'
8
9
  require 'puree/organisation'
9
10
  require 'puree/person'
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.10.0
4
+ version: 0.11.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-17 00:00:00.000000000 Z
11
+ date: 2016-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -56,6 +56,7 @@ files:
56
56
  - lib/puree/collection.rb
57
57
  - lib/puree/dataset.rb
58
58
  - lib/puree/date.rb
59
+ - lib/puree/event.rb
59
60
  - lib/puree/journal.rb
60
61
  - lib/puree/map.rb
61
62
  - lib/puree/organisation.rb