puree 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/lib/puree.rb +13 -0
- data/lib/puree/extractor/collection.rb +4 -4
- data/lib/puree/extractor/doctoral_thesis.rb +24 -0
- data/lib/puree/extractor/masters_thesis.rb +24 -0
- data/lib/puree/extractor/publication.rb +5 -3
- data/lib/puree/extractor/resource.rb +15 -2
- data/lib/puree/extractor/thesis.rb +34 -0
- data/lib/puree/model/doctoral_thesis.rb +10 -0
- data/lib/puree/model/masters_thesis.rb +10 -0
- data/lib/puree/model/publication.rb +11 -8
- data/lib/puree/model/thesis.rb +28 -0
- data/lib/puree/util/date.rb +1 -3
- data/lib/puree/util/string.rb +19 -0
- data/lib/puree/version.rb +1 -1
- data/lib/puree/xml_extractor/doctoral_thesis.rb +14 -0
- data/lib/puree/xml_extractor/masters_thesis.rb +14 -0
- data/lib/puree/xml_extractor/mixins/doi_mixin.rb +17 -0
- data/lib/puree/xml_extractor/mixins/event_mixin.rb +24 -0
- data/lib/puree/xml_extractor/mixins/pages_mixin.rb +18 -0
- data/lib/puree/xml_extractor/publication.rb +25 -23
- data/lib/puree/xml_extractor/thesis.rb +44 -0
- data/spec/spec_helper.rb +1 -0
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92900cf287eee283a00fc51d36aacdf62b6c0ef7
|
4
|
+
data.tar.gz: b3a7ea09d42501087a1bb86cd019d1ccbc6e0971
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0950129f4825a69f43286e5b6a933e0213e7ac48a99dfcd9cb8305d7c88f464b56472fad809d0b8eee68847d8b5b3decd16bdf4a911f3c23b037e51abff40f0
|
7
|
+
data.tar.gz: b61ec2735dc14cbdc196ad5049e4293f4f4972d5a5d0dac27d257af868ac20178be9e2e8682fd19bdcbbdafd7b60214bfecf9a0726cfe149454463f5d7fc9c4c
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,19 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
## Unreleased
|
6
6
|
- Metadata: activity?, clipping?, externalPerson?
|
7
7
|
|
8
|
+
## 1.2.0 - 2017-03-31
|
9
|
+
### Added
|
10
|
+
- Publication - language, owner, translated_title, translated_subtitle.
|
11
|
+
- Publication types - Doctoral Thesis and Master's Thesis.
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- Publication - common attribute set established. doi, event, pages become mixins
|
15
|
+
for publication types.
|
16
|
+
|
17
|
+
## 1.1.0 - 2017-03-24
|
18
|
+
### Added
|
19
|
+
- Publication - keywords, publisher.
|
20
|
+
|
8
21
|
## 1.0.0 - 2017-03-15
|
9
22
|
### Added
|
10
23
|
- Dataset - legal conditions.
|
data/lib/puree.rb
CHANGED
@@ -4,6 +4,7 @@ require 'nokogiri'
|
|
4
4
|
require 'puree/version'
|
5
5
|
|
6
6
|
require 'puree/util/date'
|
7
|
+
require 'puree/util/string'
|
7
8
|
|
8
9
|
require 'puree/xml_extractor/shared'
|
9
10
|
require 'puree/xml_extractor/base'
|
@@ -17,6 +18,12 @@ require 'puree/xml_extractor/organisation'
|
|
17
18
|
require 'puree/xml_extractor/person'
|
18
19
|
require 'puree/xml_extractor/project'
|
19
20
|
require 'puree/xml_extractor/publication'
|
21
|
+
require 'puree/xml_extractor/mixins/doi_mixin'
|
22
|
+
require 'puree/xml_extractor/mixins/event_mixin'
|
23
|
+
require 'puree/xml_extractor/mixins/pages_mixin'
|
24
|
+
require 'puree/xml_extractor/thesis'
|
25
|
+
require 'puree/xml_extractor/doctoral_thesis'
|
26
|
+
require 'puree/xml_extractor/masters_thesis'
|
20
27
|
require 'puree/xml_extractor/publisher'
|
21
28
|
require 'puree/xml_extractor/server'
|
22
29
|
|
@@ -39,6 +46,9 @@ require 'puree/model/organisation'
|
|
39
46
|
require 'puree/model/person'
|
40
47
|
require 'puree/model/project'
|
41
48
|
require 'puree/model/publication'
|
49
|
+
require 'puree/model/thesis'
|
50
|
+
require 'puree/model/doctoral_thesis'
|
51
|
+
require 'puree/model/masters_thesis'
|
42
52
|
require 'puree/model/publisher'
|
43
53
|
require 'puree/model/related_content_header'
|
44
54
|
require 'puree/model/spatial_point'
|
@@ -63,6 +73,9 @@ require 'puree/extractor/organisation'
|
|
63
73
|
require 'puree/extractor/person'
|
64
74
|
require 'puree/extractor/project'
|
65
75
|
require 'puree/extractor/publication'
|
76
|
+
require 'puree/extractor/thesis'
|
77
|
+
require 'puree/extractor/doctoral_thesis'
|
78
|
+
require 'puree/extractor/masters_thesis'
|
66
79
|
require 'puree/extractor/publisher'
|
67
80
|
require 'puree/extractor/collection'
|
68
81
|
require 'puree/extractor/download'
|
@@ -19,10 +19,10 @@ module Puree
|
|
19
19
|
#
|
20
20
|
# @param limit [Fixnum]
|
21
21
|
# @param offset [Fixnum]
|
22
|
-
# @param created_start [String]
|
23
|
-
# @param created_end [String]
|
24
|
-
# @param modified_start [String]
|
25
|
-
# @param modified_end [String]
|
22
|
+
# @param created_start [String] using format YYYY-MM-DD
|
23
|
+
# @param created_end [String] using format YYYY-MM-DD
|
24
|
+
# @param modified_start [String] using format YYYY-MM-DD
|
25
|
+
# @param modified_end [String] using format YYYY-MM-DD
|
26
26
|
# @return [Array<Puree::Model::Resource subclass>] Resource metadata e.g. Puree::Model::Dataset.
|
27
27
|
def get(
|
28
28
|
limit: 0,
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Puree
|
2
|
+
module Extractor
|
3
|
+
|
4
|
+
# Doctoral thesis extractor.
|
5
|
+
#
|
6
|
+
class DoctoralThesis < Puree::Extractor::Thesis
|
7
|
+
|
8
|
+
# @option (see Puree::Extractor::Resource#initialize)
|
9
|
+
def initialize(config)
|
10
|
+
set_model_type 'doctoral_thesis'
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def combine_metadata
|
17
|
+
super
|
18
|
+
@model.type === 'Doctoral Thesis' ? @model : nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Puree
|
2
|
+
module Extractor
|
3
|
+
|
4
|
+
# Master's thesis extractor.
|
5
|
+
#
|
6
|
+
class MastersThesis < Puree::Extractor::Thesis
|
7
|
+
|
8
|
+
# @option (see Puree::Extractor::Resource#initialize)
|
9
|
+
def initialize(config)
|
10
|
+
set_model_type 'masters_thesis'
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def combine_metadata
|
17
|
+
super
|
18
|
+
@model.type === "Master's Thesis" ? @model : nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -16,14 +16,14 @@ module Puree
|
|
16
16
|
|
17
17
|
def combine_metadata
|
18
18
|
super
|
19
|
+
|
19
20
|
@model.category = @extractor.category
|
20
21
|
@model.description = @extractor.description
|
21
|
-
@model.doi = @extractor.doi
|
22
|
-
@model.event = @extractor.event
|
23
22
|
@model.files = @extractor.files
|
24
23
|
@model.keywords = @extractor.keywords
|
24
|
+
@model.language = @extractor.language
|
25
25
|
@model.organisations = @extractor.organisations
|
26
|
-
@model.
|
26
|
+
@model.owner = @extractor.owner
|
27
27
|
@model.persons_internal = @extractor.persons_internal
|
28
28
|
@model.persons_external = @extractor.persons_external
|
29
29
|
@model.persons_other = @extractor.persons_other
|
@@ -31,6 +31,8 @@ module Puree
|
|
31
31
|
@model.statuses = @extractor.statuses
|
32
32
|
@model.subtitle = @extractor.subtitle
|
33
33
|
@model.title = @extractor.title
|
34
|
+
@model.translated_subtitle = @extractor.translated_subtitle
|
35
|
+
@model.translated_title = @extractor.translated_title
|
34
36
|
@model.type = @extractor.type
|
35
37
|
@model
|
36
38
|
end
|
@@ -30,6 +30,11 @@ module Puree
|
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
+
# For specialised extraction such as Publication subtypes e.g. doctoral_thesis
|
34
|
+
def set_model_type(type)
|
35
|
+
@model_type = type
|
36
|
+
end
|
37
|
+
|
33
38
|
# Set content from XML.
|
34
39
|
#
|
35
40
|
# @param xml [String]
|
@@ -42,12 +47,20 @@ module Puree
|
|
42
47
|
|
43
48
|
def setup(resource)
|
44
49
|
@resource_type = resource
|
45
|
-
|
50
|
+
if @model_type
|
51
|
+
resource_class = "Puree::Model::#{Puree::Util::String.titleize(@model_type.to_s)}"
|
52
|
+
else
|
53
|
+
resource_class = "Puree::Model::#{resource.to_s.capitalize}"
|
54
|
+
end
|
46
55
|
@model = Object.const_get(resource_class).new
|
47
56
|
end
|
48
57
|
|
49
58
|
def make_xml_extractor xml
|
50
|
-
|
59
|
+
if @model_type
|
60
|
+
resource_class = "Puree::XMLExtractor::#{Puree::Util::String.titleize(@model_type.to_s)}"
|
61
|
+
else
|
62
|
+
resource_class = "Puree::XMLExtractor::#{@resource_type.to_s.capitalize}"
|
63
|
+
end
|
51
64
|
@extractor = Object.const_get(resource_class).new xml: xml
|
52
65
|
end
|
53
66
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Puree
|
2
|
+
module Extractor
|
3
|
+
|
4
|
+
# Thesis extractor.
|
5
|
+
#
|
6
|
+
class Thesis < Puree::Extractor::Publication
|
7
|
+
|
8
|
+
# @option (see Puree::Extractor::Resource#initialize)
|
9
|
+
def initialize(config)
|
10
|
+
set_model_type 'thesis'
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def combine_metadata
|
17
|
+
super
|
18
|
+
|
19
|
+
thesis_types = ["Master's Thesis", 'Doctoral Thesis']
|
20
|
+
return nil if !thesis_types.include? @model.type
|
21
|
+
|
22
|
+
@model.award_date = @extractor.award_date
|
23
|
+
@model.awarding_institution = @extractor.awarding_institution
|
24
|
+
@model.doi = @extractor.doi
|
25
|
+
@model.pages = @extractor.pages
|
26
|
+
@model.qualification = @extractor.qualification
|
27
|
+
@model.sponsors = @extractor.sponsors
|
28
|
+
@model
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
@@ -11,23 +11,20 @@ module Puree
|
|
11
11
|
# @return [String, nil]
|
12
12
|
attr_accessor :description
|
13
13
|
|
14
|
-
# @return [String, nil]
|
15
|
-
attr_accessor :doi
|
16
|
-
|
17
|
-
# @return [Puree::Model::EventHeader, nil]
|
18
|
-
attr_accessor :event
|
19
|
-
|
20
14
|
# @return [Array<Puree::Model::File>]
|
21
15
|
attr_accessor :files
|
22
16
|
|
23
17
|
# @return [Array<String>]
|
24
18
|
attr_accessor :keywords
|
25
19
|
|
20
|
+
# @return [String, nil]
|
21
|
+
attr_accessor :language
|
22
|
+
|
26
23
|
# @return [Array<Puree::Model::OrganisationHeader>]
|
27
24
|
attr_accessor :organisations
|
28
25
|
|
29
|
-
# @return [
|
30
|
-
attr_accessor :
|
26
|
+
# @return [Puree::Model::OrganisationHeader, nil]
|
27
|
+
attr_accessor :owner
|
31
28
|
|
32
29
|
# @return [Array<Puree::Model::EndeavourPerson>]
|
33
30
|
attr_accessor :persons_internal
|
@@ -50,6 +47,12 @@ module Puree
|
|
50
47
|
# @return [String, nil]
|
51
48
|
attr_accessor :title
|
52
49
|
|
50
|
+
# @return [String, nil]
|
51
|
+
attr_accessor :translated_subtitle
|
52
|
+
|
53
|
+
# @return [String, nil]
|
54
|
+
attr_accessor :translated_title
|
55
|
+
|
53
56
|
# @return [String, nil]
|
54
57
|
attr_accessor :type
|
55
58
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Puree
|
2
|
+
module Model
|
3
|
+
|
4
|
+
# A thesis.
|
5
|
+
#
|
6
|
+
class Thesis < Puree::Model::Publication
|
7
|
+
|
8
|
+
# @return [Time, nil]
|
9
|
+
attr_accessor :award_date
|
10
|
+
|
11
|
+
# @return [Puree::Model::OrganisationHeader, nil]
|
12
|
+
attr_accessor :awarding_institution
|
13
|
+
|
14
|
+
# @return [String, nil]
|
15
|
+
attr_accessor :doi
|
16
|
+
|
17
|
+
# # @return [Fixnum, nil]
|
18
|
+
attr_accessor :pages
|
19
|
+
|
20
|
+
# @return [String, nil]
|
21
|
+
attr_accessor :qualification
|
22
|
+
|
23
|
+
# @return [Array<String>, nil]
|
24
|
+
attr_accessor :sponsors
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/puree/util/date.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Puree
|
2
|
+
module Util
|
3
|
+
|
4
|
+
# String utilities.
|
5
|
+
module String
|
6
|
+
|
7
|
+
# Titleize
|
8
|
+
# Assumes underscore as separator.
|
9
|
+
# e.g. foo_bar becomes FooBar
|
10
|
+
#
|
11
|
+
def self.titleize(x)
|
12
|
+
arr = "#{x}".split('_')
|
13
|
+
caps = arr.map { |i| i.capitalize }
|
14
|
+
caps.join
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/puree/version.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
module Puree
|
2
|
+
|
3
|
+
module XMLExtractor
|
4
|
+
|
5
|
+
# Event extractor mixin.
|
6
|
+
#
|
7
|
+
module EventMixin
|
8
|
+
|
9
|
+
# @return [Puree::Model::EventHeader, nil]
|
10
|
+
def event
|
11
|
+
xpath_result = xpath_query '/event'
|
12
|
+
if !xpath_result.empty?
|
13
|
+
header = Puree::Model::EventHeader.new
|
14
|
+
header.uuid = xpath_result.xpath('@uuid').text.strip
|
15
|
+
header.title = xpath_result.xpath('title/localizedString').text.strip
|
16
|
+
return header if header.data?
|
17
|
+
end
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Puree
|
2
|
+
|
3
|
+
module XMLExtractor
|
4
|
+
|
5
|
+
# Pages extractor mixin.
|
6
|
+
#
|
7
|
+
module PagesMixin
|
8
|
+
|
9
|
+
# @return [Fixnum, nil]
|
10
|
+
def pages
|
11
|
+
xpath_result = xpath_query_for_single_value('/numberOfPages')
|
12
|
+
xpath_result ? xpath_result.to_i : nil
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -2,7 +2,7 @@ module Puree
|
|
2
2
|
|
3
3
|
module XMLExtractor
|
4
4
|
|
5
|
-
# Publication
|
5
|
+
# Publication XML extractor.
|
6
6
|
#
|
7
7
|
class Publication < Puree::XMLExtractor::Resource
|
8
8
|
|
@@ -21,23 +21,6 @@ module Puree
|
|
21
21
|
xpath_query_for_single_value '/abstract/localizedString'
|
22
22
|
end
|
23
23
|
|
24
|
-
# @return [String, nil]
|
25
|
-
def doi
|
26
|
-
xpath_query_for_single_value '//doi'
|
27
|
-
end
|
28
|
-
|
29
|
-
# @return [Puree::Model::EventHeader, nil]
|
30
|
-
def event
|
31
|
-
xpath_result = xpath_query '/event'
|
32
|
-
if !xpath_result.empty?
|
33
|
-
header = Puree::Model::EventHeader.new
|
34
|
-
header.uuid = xpath_result.xpath('@uuid').text.strip
|
35
|
-
header.title = xpath_result.xpath('title/localizedString').text.strip
|
36
|
-
return header if header.data?
|
37
|
-
end
|
38
|
-
nil
|
39
|
-
end
|
40
|
-
|
41
24
|
# @return [Array<Puree::Model::File>]
|
42
25
|
def files
|
43
26
|
xpath_result = xpath_query '/electronicVersionAssociations/electronicVersionFileAssociations/electronicVersionFileAssociation'
|
@@ -67,16 +50,21 @@ module Puree
|
|
67
50
|
data_arr.uniq
|
68
51
|
end
|
69
52
|
|
53
|
+
# @return [String, nil]
|
54
|
+
def language
|
55
|
+
xpath_query_for_single_value '/language/term/localizedString'
|
56
|
+
end
|
57
|
+
|
70
58
|
# @return [Array<Puree::Model::OrganisationHeader>]
|
71
59
|
def organisations
|
72
60
|
xpath_result = xpath_query '/organisations/association/organisation'
|
73
61
|
Puree::XMLExtractor::Shared.organisation_multi_header xpath_result
|
74
62
|
end
|
75
63
|
|
76
|
-
# @return [
|
77
|
-
def
|
78
|
-
xpath_result =
|
79
|
-
|
64
|
+
# @return [Puree::Model::OrganisationHeader, nil]
|
65
|
+
def owner
|
66
|
+
xpath_result = xpath_query '/owner'
|
67
|
+
Puree::XMLExtractor::Shared.organisation_header xpath_result
|
80
68
|
end
|
81
69
|
|
82
70
|
# @return [Array<Puree::Model::EndeavourPerson>]
|
@@ -129,6 +117,16 @@ module Puree
|
|
129
117
|
xpath_query_for_single_value '/title'
|
130
118
|
end
|
131
119
|
|
120
|
+
# @return [String, nil]
|
121
|
+
def translated_subtitle
|
122
|
+
xpath_query_for_single_value '/translatedSubtitle/localizedString'
|
123
|
+
end
|
124
|
+
|
125
|
+
# @return [String, nil]
|
126
|
+
def translated_title
|
127
|
+
xpath_query_for_single_value '/translatedTitle/localizedString'
|
128
|
+
end
|
129
|
+
|
132
130
|
# @return [String, nil]
|
133
131
|
def type
|
134
132
|
xpath_query_for_single_value '/typeClassification/term/localizedString'
|
@@ -187,7 +185,11 @@ module Puree
|
|
187
185
|
# Author
|
188
186
|
# Illustrator
|
189
187
|
# Editor
|
190
|
-
# Translator
|
188
|
+
# Translator # # @return [Fixnum, nil]
|
189
|
+
# def pages
|
190
|
+
# xpath_result = xpath_query_for_single_value('/numberOfPages')
|
191
|
+
# xpath_result ? xpath_result.to_i : nil
|
192
|
+
# end
|
191
193
|
# Publisher
|
192
194
|
|
193
195
|
# ... many, many more research output types ...
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Puree
|
2
|
+
module XMLExtractor
|
3
|
+
|
4
|
+
# Thesis XML extractor.
|
5
|
+
#
|
6
|
+
class Thesis < Puree::XMLExtractor::Publication
|
7
|
+
include Puree::XMLExtractor::DoiMixin
|
8
|
+
include Puree::XMLExtractor::PagesMixin
|
9
|
+
|
10
|
+
def initialize(xml:)
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Time, nil]
|
15
|
+
def award_date
|
16
|
+
xpath_result = xpath_query_for_single_value('/awardDate')
|
17
|
+
Time.parse xpath_result if xpath_result
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Puree::Model::OrganisationHeader, nil]
|
21
|
+
def awarding_institution
|
22
|
+
xpath_result = xpath_query '/awardingInstitution/internalExternalOrganisationAssociation/organisation'
|
23
|
+
Puree::XMLExtractor::Shared.organisation_header xpath_result
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [String, nil]
|
27
|
+
def qualification
|
28
|
+
types = {
|
29
|
+
'/dk/atira/pure/thesis/qualification/mphil' => 'MPhil',
|
30
|
+
'/dk/atira/pure/thesis/qualification/phd' => 'PhD',
|
31
|
+
'/dk/atira/pure/thesis/qualification/masters_by_research' => 'Masters by Research'
|
32
|
+
}
|
33
|
+
xpath_result = xpath_query_for_single_value '/qualification/uri'
|
34
|
+
types[xpath_result]
|
35
|
+
end
|
36
|
+
|
37
|
+
# @return [Array<String>]
|
38
|
+
def sponsors
|
39
|
+
xpath_query_for_multi_value '/sponsors/externalOrganisation/name'
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/spec/spec_helper.rb
CHANGED
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.
|
4
|
+
version: 1.2.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-
|
11
|
+
date: 2017-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -73,10 +73,12 @@ files:
|
|
73
73
|
- lib/puree/api/request.rb
|
74
74
|
- lib/puree/extractor/collection.rb
|
75
75
|
- lib/puree/extractor/dataset.rb
|
76
|
+
- lib/puree/extractor/doctoral_thesis.rb
|
76
77
|
- lib/puree/extractor/download.rb
|
77
78
|
- lib/puree/extractor/event.rb
|
78
79
|
- lib/puree/extractor/extractor.rb
|
79
80
|
- lib/puree/extractor/journal.rb
|
81
|
+
- lib/puree/extractor/masters_thesis.rb
|
80
82
|
- lib/puree/extractor/organisation.rb
|
81
83
|
- lib/puree/extractor/person.rb
|
82
84
|
- lib/puree/extractor/project.rb
|
@@ -84,9 +86,11 @@ files:
|
|
84
86
|
- lib/puree/extractor/publisher.rb
|
85
87
|
- lib/puree/extractor/resource.rb
|
86
88
|
- lib/puree/extractor/server.rb
|
89
|
+
- lib/puree/extractor/thesis.rb
|
87
90
|
- lib/puree/model/address.rb
|
88
91
|
- lib/puree/model/copyright_license.rb
|
89
92
|
- lib/puree/model/dataset.rb
|
93
|
+
- lib/puree/model/doctoral_thesis.rb
|
90
94
|
- lib/puree/model/download_header.rb
|
91
95
|
- lib/puree/model/endeavour_person.rb
|
92
96
|
- lib/puree/model/event.rb
|
@@ -96,6 +100,7 @@ files:
|
|
96
100
|
- lib/puree/model/journal.rb
|
97
101
|
- lib/puree/model/legal_condition.rb
|
98
102
|
- lib/puree/model/link.rb
|
103
|
+
- lib/puree/model/masters_thesis.rb
|
99
104
|
- lib/puree/model/model.rb
|
100
105
|
- lib/puree/model/organisation.rb
|
101
106
|
- lib/puree/model/organisation_header.rb
|
@@ -111,15 +116,22 @@ files:
|
|
111
116
|
- lib/puree/model/spatial_point.rb
|
112
117
|
- lib/puree/model/structure.rb
|
113
118
|
- lib/puree/model/temporal_range.rb
|
119
|
+
- lib/puree/model/thesis.rb
|
114
120
|
- lib/puree/util/date.rb
|
121
|
+
- lib/puree/util/string.rb
|
115
122
|
- lib/puree/util/util.rb
|
116
123
|
- lib/puree/version.rb
|
117
124
|
- lib/puree/xml_extractor/base.rb
|
118
125
|
- lib/puree/xml_extractor/collection.rb
|
119
126
|
- lib/puree/xml_extractor/dataset.rb
|
127
|
+
- lib/puree/xml_extractor/doctoral_thesis.rb
|
120
128
|
- lib/puree/xml_extractor/download.rb
|
121
129
|
- lib/puree/xml_extractor/event.rb
|
122
130
|
- lib/puree/xml_extractor/journal.rb
|
131
|
+
- lib/puree/xml_extractor/masters_thesis.rb
|
132
|
+
- lib/puree/xml_extractor/mixins/doi_mixin.rb
|
133
|
+
- lib/puree/xml_extractor/mixins/event_mixin.rb
|
134
|
+
- lib/puree/xml_extractor/mixins/pages_mixin.rb
|
123
135
|
- lib/puree/xml_extractor/organisation.rb
|
124
136
|
- lib/puree/xml_extractor/person.rb
|
125
137
|
- lib/puree/xml_extractor/project.rb
|
@@ -128,6 +140,7 @@ files:
|
|
128
140
|
- lib/puree/xml_extractor/resource.rb
|
129
141
|
- lib/puree/xml_extractor/server.rb
|
130
142
|
- lib/puree/xml_extractor/shared.rb
|
143
|
+
- lib/puree/xml_extractor/thesis.rb
|
131
144
|
- lib/puree/xml_extractor/xml_extractor.rb
|
132
145
|
- puree.gemspec
|
133
146
|
- spec/download_http_spec.rb
|