puree 1.2.0 → 1.3.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 +5 -1
- data/lib/puree.rb +22 -1
- data/lib/puree/extractor/conference_paper.rb +26 -0
- data/lib/puree/extractor/journal_article.rb +32 -0
- data/lib/puree/extractor/paper.rb +23 -0
- data/lib/puree/extractor/paper_base.rb +28 -0
- data/lib/puree/extractor/publication.rb +4 -0
- data/lib/puree/model/conference_paper.rb +13 -0
- data/lib/puree/model/journal_article.rb +31 -0
- data/lib/puree/model/journal_header.rb +34 -0
- data/lib/puree/model/paper.rb +10 -0
- data/lib/puree/model/paper_base.rb +19 -0
- data/lib/puree/model/publication.rb +12 -0
- data/lib/puree/model/thesis.rb +1 -1
- data/lib/puree/version.rb +1 -1
- data/lib/puree/xml_extractor/conference_paper.rb +15 -0
- data/lib/puree/xml_extractor/journal_article.rb +48 -0
- data/lib/puree/xml_extractor/mixins/page_range_mixin.rb +18 -0
- data/lib/puree/xml_extractor/mixins/peer_reviewed_mixin.rb +20 -0
- data/lib/puree/xml_extractor/paper.rb +14 -0
- data/lib/puree/xml_extractor/paper_base.rb +17 -0
- data/lib/puree/xml_extractor/publication.rb +27 -1
- data/spec/resource/dataset_http_spec.rb +4 -0
- data/spec/resource/publication_http_spec.rb +10 -10
- data/spec/spec_helper.rb +35 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5aa6af3718ebb33cd7b19ef9142cb73b4a5d0f5c
|
4
|
+
data.tar.gz: b0c01d0104f64d84b9b28a8fca142d9c6fec9165
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3772603849fb583fcbcc48b9d2343d06c64d17fc2d239d687556e7579804704e1b498cf568285ac49d3bd96669077644a80df3725fae21ed6a39a9fe2b4d85f
|
7
|
+
data.tar.gz: f5906459dedcc2ce1693e6d33d862b300196c4bc551c9bfec2e24b946fae4eacd2ac494e7a7ee8f918a3892708e317ab0ff4ee160496d4f5e30915aa21ed573c
|
data/CHANGELOG.md
CHANGED
@@ -5,13 +5,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
## Unreleased
|
6
6
|
- Metadata: activity?, clipping?, externalPerson?
|
7
7
|
|
8
|
+
## 1.3.0 - 2017-04-03
|
9
|
+
### Added
|
10
|
+
- Publication type - JournalArticle, Paper, ConferencePaper.
|
11
|
+
|
8
12
|
## 1.2.0 - 2017-03-31
|
9
13
|
### Added
|
10
14
|
- Publication - language, owner, translated_title, translated_subtitle.
|
11
15
|
- Publication types - Doctoral Thesis and Master's Thesis.
|
12
16
|
|
13
17
|
### Changed
|
14
|
-
- Publication - common
|
18
|
+
- Publication - common attributes established. doi, event, pages become mixins
|
15
19
|
for publication types.
|
16
20
|
|
17
21
|
## 1.1.0 - 2017-03-24
|
data/lib/puree.rb
CHANGED
@@ -17,13 +17,21 @@ require 'puree/xml_extractor/journal'
|
|
17
17
|
require 'puree/xml_extractor/organisation'
|
18
18
|
require 'puree/xml_extractor/person'
|
19
19
|
require 'puree/xml_extractor/project'
|
20
|
-
|
20
|
+
|
21
21
|
require 'puree/xml_extractor/mixins/doi_mixin'
|
22
22
|
require 'puree/xml_extractor/mixins/event_mixin'
|
23
23
|
require 'puree/xml_extractor/mixins/pages_mixin'
|
24
|
+
require 'puree/xml_extractor/mixins/page_range_mixin'
|
25
|
+
require 'puree/xml_extractor/mixins/peer_reviewed_mixin'
|
26
|
+
require 'puree/xml_extractor/publication'
|
24
27
|
require 'puree/xml_extractor/thesis'
|
25
28
|
require 'puree/xml_extractor/doctoral_thesis'
|
26
29
|
require 'puree/xml_extractor/masters_thesis'
|
30
|
+
require 'puree/xml_extractor/journal_article'
|
31
|
+
require 'puree/xml_extractor/paper_base'
|
32
|
+
require 'puree/xml_extractor/conference_paper'
|
33
|
+
require 'puree/xml_extractor/paper'
|
34
|
+
|
27
35
|
require 'puree/xml_extractor/publisher'
|
28
36
|
require 'puree/xml_extractor/server'
|
29
37
|
|
@@ -41,14 +49,21 @@ require 'puree/model/download_header'
|
|
41
49
|
require 'puree/model/event'
|
42
50
|
require 'puree/model/event_header'
|
43
51
|
require 'puree/model/journal'
|
52
|
+
require 'puree/model/journal_header'
|
44
53
|
require 'puree/model/link'
|
45
54
|
require 'puree/model/organisation'
|
46
55
|
require 'puree/model/person'
|
47
56
|
require 'puree/model/project'
|
57
|
+
|
48
58
|
require 'puree/model/publication'
|
49
59
|
require 'puree/model/thesis'
|
50
60
|
require 'puree/model/doctoral_thesis'
|
51
61
|
require 'puree/model/masters_thesis'
|
62
|
+
require 'puree/model/journal_article'
|
63
|
+
require 'puree/model/paper_base'
|
64
|
+
require 'puree/model/conference_paper'
|
65
|
+
require 'puree/model/paper'
|
66
|
+
|
52
67
|
require 'puree/model/publisher'
|
53
68
|
require 'puree/model/related_content_header'
|
54
69
|
require 'puree/model/spatial_point'
|
@@ -72,10 +87,16 @@ require 'puree/extractor/journal'
|
|
72
87
|
require 'puree/extractor/organisation'
|
73
88
|
require 'puree/extractor/person'
|
74
89
|
require 'puree/extractor/project'
|
90
|
+
|
75
91
|
require 'puree/extractor/publication'
|
76
92
|
require 'puree/extractor/thesis'
|
77
93
|
require 'puree/extractor/doctoral_thesis'
|
78
94
|
require 'puree/extractor/masters_thesis'
|
95
|
+
require 'puree/extractor/journal_article'
|
96
|
+
require 'puree/extractor/paper_base'
|
97
|
+
require 'puree/extractor/conference_paper'
|
98
|
+
require 'puree/extractor/paper'
|
99
|
+
|
79
100
|
require 'puree/extractor/publisher'
|
80
101
|
require 'puree/extractor/collection'
|
81
102
|
require 'puree/extractor/download'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Puree
|
2
|
+
module Extractor
|
3
|
+
|
4
|
+
# Conference paper extractor.
|
5
|
+
#
|
6
|
+
class ConferencePaper < Puree::Extractor::PaperBase
|
7
|
+
|
8
|
+
# @option (see Puree::Extractor::Resource#initialize)
|
9
|
+
def initialize(config)
|
10
|
+
set_model_type 'conference_paper'
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def combine_metadata
|
17
|
+
super
|
18
|
+
|
19
|
+
@model.event = @extractor.event
|
20
|
+
@model
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Puree
|
2
|
+
module Extractor
|
3
|
+
|
4
|
+
# Journal article extractor.
|
5
|
+
#
|
6
|
+
class JournalArticle < Puree::Extractor::Publication
|
7
|
+
|
8
|
+
# @option (see Puree::Extractor::Resource#initialize)
|
9
|
+
def initialize(config)
|
10
|
+
set_model_type 'journal_article'
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def combine_metadata
|
17
|
+
super
|
18
|
+
|
19
|
+
@model.article_number = @extractor.article_number
|
20
|
+
@model.issue = @extractor.issue
|
21
|
+
@model.journal = @extractor.journal
|
22
|
+
@model.pages = @extractor.pages
|
23
|
+
@model.page_range = @extractor.page_range
|
24
|
+
@model.peer_reviewed = @extractor.peer_reviewed
|
25
|
+
@model.volume = @extractor.volume
|
26
|
+
@model
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Puree
|
2
|
+
module Extractor
|
3
|
+
|
4
|
+
# Paper extractor.
|
5
|
+
#
|
6
|
+
class Paper < Puree::Extractor::PaperBase
|
7
|
+
|
8
|
+
# @option (see Puree::Extractor::Resource#initialize)
|
9
|
+
def initialize(config)
|
10
|
+
set_model_type 'paper'
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def combine_metadata
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Puree
|
2
|
+
module Extractor
|
3
|
+
|
4
|
+
# Paper base extractor.
|
5
|
+
# Do not use directly.
|
6
|
+
#
|
7
|
+
class PaperBase < Puree::Extractor::Publication
|
8
|
+
|
9
|
+
# @option (see Puree::Extractor::Resource#initialize)
|
10
|
+
def initialize(config)
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def combine_metadata
|
17
|
+
super
|
18
|
+
|
19
|
+
@model.pages = @extractor.pages
|
20
|
+
@model.page_range = @extractor.page_range
|
21
|
+
@model.peer_reviewed = @extractor.peer_reviewed
|
22
|
+
@model
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -17,16 +17,20 @@ module Puree
|
|
17
17
|
def combine_metadata
|
18
18
|
super
|
19
19
|
|
20
|
+
@model.bibliographical_note = @extractor.bibliographical_note
|
20
21
|
@model.category = @extractor.category
|
21
22
|
@model.description = @extractor.description
|
23
|
+
@model.dois = @extractor.dois
|
22
24
|
@model.files = @extractor.files
|
23
25
|
@model.keywords = @extractor.keywords
|
24
26
|
@model.language = @extractor.language
|
27
|
+
@model.links = @extractor.links
|
25
28
|
@model.organisations = @extractor.organisations
|
26
29
|
@model.owner = @extractor.owner
|
27
30
|
@model.persons_internal = @extractor.persons_internal
|
28
31
|
@model.persons_external = @extractor.persons_external
|
29
32
|
@model.persons_other = @extractor.persons_other
|
33
|
+
@model.publication_place = @extractor.publication_place
|
30
34
|
@model.publisher = @extractor.publisher
|
31
35
|
@model.statuses = @extractor.statuses
|
32
36
|
@model.subtitle = @extractor.subtitle
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Puree
|
2
|
+
module Model
|
3
|
+
|
4
|
+
# A journal article.
|
5
|
+
#
|
6
|
+
class JournalArticle < Puree::Model::Publication
|
7
|
+
|
8
|
+
# @return [Fixnum, nil]
|
9
|
+
attr_accessor :article_number
|
10
|
+
|
11
|
+
# @return [Puree::Model::JournalHeader, nil]
|
12
|
+
attr_accessor :journal
|
13
|
+
|
14
|
+
# @return [Fixnum, nil]
|
15
|
+
attr_accessor :issue
|
16
|
+
|
17
|
+
# @return [Fixnum, nil]
|
18
|
+
attr_accessor :pages
|
19
|
+
|
20
|
+
# @return [String, nil]
|
21
|
+
attr_accessor :page_range
|
22
|
+
|
23
|
+
# @return [Boolean, nil]
|
24
|
+
attr_accessor :peer_reviewed
|
25
|
+
|
26
|
+
# @return [Fixnum, nil]
|
27
|
+
attr_accessor :volume
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Puree
|
2
|
+
module Model
|
3
|
+
|
4
|
+
# A minimal representation of a journal.
|
5
|
+
#
|
6
|
+
class JournalHeader < Puree::Model::Structure
|
7
|
+
|
8
|
+
# @return [String, nil]
|
9
|
+
attr_reader :uuid
|
10
|
+
|
11
|
+
# @return [String, nil]
|
12
|
+
attr_reader :title
|
13
|
+
|
14
|
+
# @return [String, nil]
|
15
|
+
attr_reader :type
|
16
|
+
|
17
|
+
# @param v [String]
|
18
|
+
def uuid=(v)
|
19
|
+
@uuid = v if v && !v.empty?
|
20
|
+
end
|
21
|
+
|
22
|
+
# @param v [String]
|
23
|
+
def title=(v)
|
24
|
+
@title = v if v && !v.empty?
|
25
|
+
end
|
26
|
+
|
27
|
+
# @param v [String]
|
28
|
+
def type=(v)
|
29
|
+
@type = v if v && !v.empty?
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Puree
|
2
|
+
module Model
|
3
|
+
|
4
|
+
# A base paper.
|
5
|
+
#
|
6
|
+
class PaperBase < Puree::Model::Publication
|
7
|
+
|
8
|
+
# @return [Fixnum, nil]
|
9
|
+
attr_accessor :pages
|
10
|
+
|
11
|
+
# @return [String, nil]
|
12
|
+
attr_accessor :page_range
|
13
|
+
|
14
|
+
# @return [Boolean, nil]
|
15
|
+
attr_accessor :peer_reviewed
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -5,12 +5,18 @@ module Puree
|
|
5
5
|
#
|
6
6
|
class Publication < Resource
|
7
7
|
|
8
|
+
# @return [String, nil]
|
9
|
+
attr_accessor :bibliographical_note
|
10
|
+
|
8
11
|
# @return [String, nil]
|
9
12
|
attr_accessor :category
|
10
13
|
|
11
14
|
# @return [String, nil]
|
12
15
|
attr_accessor :description
|
13
16
|
|
17
|
+
# @return [Array<String>]
|
18
|
+
attr_accessor :dois
|
19
|
+
|
14
20
|
# @return [Array<Puree::Model::File>]
|
15
21
|
attr_accessor :files
|
16
22
|
|
@@ -20,6 +26,9 @@ module Puree
|
|
20
26
|
# @return [String, nil]
|
21
27
|
attr_accessor :language
|
22
28
|
|
29
|
+
# @return [Array<String>]
|
30
|
+
attr_accessor :links
|
31
|
+
|
23
32
|
# @return [Array<Puree::Model::OrganisationHeader>]
|
24
33
|
attr_accessor :organisations
|
25
34
|
|
@@ -35,6 +44,9 @@ module Puree
|
|
35
44
|
# @return [Array<Puree::Model::EndeavourPerson>]
|
36
45
|
attr_accessor :persons_other
|
37
46
|
|
47
|
+
# @return [String, nil]
|
48
|
+
attr_accessor :publication_place
|
49
|
+
|
38
50
|
# @return [String, nil]
|
39
51
|
attr_accessor :publisher
|
40
52
|
|
data/lib/puree/model/thesis.rb
CHANGED
data/lib/puree/version.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
module Puree
|
2
|
+
module XMLExtractor
|
3
|
+
|
4
|
+
# Journal article XML extractor.
|
5
|
+
#
|
6
|
+
class JournalArticle < Puree::XMLExtractor::Publication
|
7
|
+
include Puree::XMLExtractor::PagesMixin
|
8
|
+
include Puree::XMLExtractor::PageRangeMixin
|
9
|
+
include Puree::XMLExtractor::PeerReviewedMixin
|
10
|
+
|
11
|
+
def initialize(xml:)
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [Fixnum, nil]
|
16
|
+
def article_number
|
17
|
+
xpath_query_for_single_value('/articleNumber')
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Fixnum, nil]
|
21
|
+
def issue
|
22
|
+
xpath_result = xpath_query_for_single_value('/journalNumber')
|
23
|
+
xpath_result ? xpath_result.to_i : nil
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [Puree::Model::JournalHeader, nil]
|
27
|
+
def journal
|
28
|
+
xpath_result = xpath_query '/journal'
|
29
|
+
if !xpath_result.empty?
|
30
|
+
header = Puree::Model::JournalHeader.new
|
31
|
+
header.title = xpath_result.xpath('title').text.strip
|
32
|
+
journal = xpath_result.xpath('journal')
|
33
|
+
header.type = journal.xpath('typeClassification/term/localizedString').text.strip
|
34
|
+
header.uuid = journal.attr('uuid').text.strip
|
35
|
+
return header
|
36
|
+
end
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [Fixnum, nil]
|
41
|
+
def volume
|
42
|
+
xpath_result = xpath_query_for_single_value('/volume')
|
43
|
+
xpath_result ? xpath_result.to_i : nil
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Puree
|
2
|
+
|
3
|
+
module XMLExtractor
|
4
|
+
|
5
|
+
# Page range mixin.
|
6
|
+
#
|
7
|
+
module PageRangeMixin
|
8
|
+
|
9
|
+
# @return [String, nil]
|
10
|
+
def page_range
|
11
|
+
xpath_result = xpath_query_for_single_value('/pages')
|
12
|
+
xpath_result ? xpath_result : nil
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Puree
|
2
|
+
|
3
|
+
module XMLExtractor
|
4
|
+
|
5
|
+
# Peer reviewed extractor mixin.
|
6
|
+
#
|
7
|
+
module PeerReviewedMixin
|
8
|
+
|
9
|
+
# @return [Boolean, nil]
|
10
|
+
def peer_reviewed
|
11
|
+
xpath_result = xpath_query_for_single_value('/peerReview/peerReviewed')
|
12
|
+
return true if xpath_result === 'true'
|
13
|
+
return false if xpath_result === 'false'
|
14
|
+
nil
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Puree
|
2
|
+
module XMLExtractor
|
3
|
+
|
4
|
+
# Paper base XML extractor.
|
5
|
+
#
|
6
|
+
class PaperBase < Puree::XMLExtractor::Publication
|
7
|
+
include Puree::XMLExtractor::PagesMixin
|
8
|
+
include Puree::XMLExtractor::PageRangeMixin
|
9
|
+
include Puree::XMLExtractor::PeerReviewedMixin
|
10
|
+
|
11
|
+
def initialize(xml:)
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -11,6 +11,11 @@ module Puree
|
|
11
11
|
super
|
12
12
|
end
|
13
13
|
|
14
|
+
# @return [String, nil]
|
15
|
+
def bibliographical_note
|
16
|
+
xpath_query_for_single_value('/bibliographicalNote')
|
17
|
+
end
|
18
|
+
|
14
19
|
# @return [String, nil]
|
15
20
|
def category
|
16
21
|
xpath_query_for_single_value '/publicationCategory/publicationCategory/term/localizedString'
|
@@ -21,6 +26,11 @@ module Puree
|
|
21
26
|
xpath_query_for_single_value '/abstract/localizedString'
|
22
27
|
end
|
23
28
|
|
29
|
+
# @return [Array<String>, nil]
|
30
|
+
def dois
|
31
|
+
xpath_query_for_multi_value '/electronicVersionAssociations/electronicVersionDOIAssociations/electronicVersionDOIAssociation/doi'
|
32
|
+
end
|
33
|
+
|
24
34
|
# @return [Array<Puree::Model::File>]
|
25
35
|
def files
|
26
36
|
xpath_result = xpath_query '/electronicVersionAssociations/electronicVersionFileAssociations/electronicVersionFileAssociation'
|
@@ -55,6 +65,11 @@ module Puree
|
|
55
65
|
xpath_query_for_single_value '/language/term/localizedString'
|
56
66
|
end
|
57
67
|
|
68
|
+
# @return [Array<String>, nil]
|
69
|
+
def links
|
70
|
+
xpath_query_for_multi_value '/electronicVersionAssociations/electronicVersionLinkAssociations/electronicVersionLinkAssociation/link'
|
71
|
+
end
|
72
|
+
|
58
73
|
# @return [Array<Puree::Model::OrganisationHeader>]
|
59
74
|
def organisations
|
60
75
|
xpath_result = xpath_query '/organisations/association/organisation'
|
@@ -82,9 +97,20 @@ module Puree
|
|
82
97
|
persons 'other'
|
83
98
|
end
|
84
99
|
|
100
|
+
# @return [String, nil]
|
101
|
+
def publication_place
|
102
|
+
# handles variations in path
|
103
|
+
xpath_result = xpath_query_for_single_value '/associatedPublisher/placeOfPublication'
|
104
|
+
xpath_result = xpath_query_for_single_value '/associatedPublishers/placeOfPublication' if !xpath_result
|
105
|
+
xpath_result
|
106
|
+
end
|
107
|
+
|
85
108
|
# @return [String, nil]
|
86
109
|
def publisher
|
87
|
-
|
110
|
+
# handles variations in path
|
111
|
+
xpath_result = xpath_query_for_single_value '/associatedPublisher/publisher/name'
|
112
|
+
xpath_result = xpath_query_for_single_value '/associatedPublishers/publisher/name' if !xpath_result
|
113
|
+
xpath_result
|
88
114
|
end
|
89
115
|
|
90
116
|
# @return [Array<Puree::Model::PublicationStatus>]
|
@@ -55,6 +55,10 @@ describe 'Dataset' do
|
|
55
55
|
expect(@p.links).to all( be_a Puree::Model::Link )
|
56
56
|
end
|
57
57
|
|
58
|
+
it '#owner' do
|
59
|
+
expect(@p.owner).to be_a Puree::Model::OrganisationHeader if @p.owner
|
60
|
+
end
|
61
|
+
|
58
62
|
it '#persons_internal' do
|
59
63
|
expect(@p.persons_internal).to all( be_a Puree::Model::EndeavourPerson )
|
60
64
|
end
|
@@ -25,14 +25,6 @@ describe 'Publication' do
|
|
25
25
|
expect(@p.description).to be_a String if @p.description
|
26
26
|
end
|
27
27
|
|
28
|
-
it '#doi' do
|
29
|
-
expect(@p.doi).to be_a String if @p.doi
|
30
|
-
end
|
31
|
-
|
32
|
-
it '#event' do
|
33
|
-
expect(@p.event).to be_a Puree::Model::EventHeader if @p.event
|
34
|
-
end
|
35
|
-
|
36
28
|
it '#files' do
|
37
29
|
expect(@p.files).to all( be_a Puree::Model::File )
|
38
30
|
end
|
@@ -41,8 +33,8 @@ describe 'Publication' do
|
|
41
33
|
expect(@p.organisations).to all( be_a Puree::Model::OrganisationHeader )
|
42
34
|
end
|
43
35
|
|
44
|
-
it '#
|
45
|
-
expect(@p.
|
36
|
+
it '#owner' do
|
37
|
+
expect(@p.owner).to be_a Puree::Model::OrganisationHeader if @p.owner
|
46
38
|
end
|
47
39
|
|
48
40
|
it '#persons_internal' do
|
@@ -69,6 +61,14 @@ describe 'Publication' do
|
|
69
61
|
expect(@p.title).to be_a String if @p.title
|
70
62
|
end
|
71
63
|
|
64
|
+
it '#translated_title' do
|
65
|
+
expect(@p.translated_title).to be_a String if @p.translated_title
|
66
|
+
end
|
67
|
+
|
68
|
+
it '#translated_subtitle' do
|
69
|
+
expect(@p.translated_subtitle).to be_a String if @p.translated_subtitle
|
70
|
+
end
|
71
|
+
|
72
72
|
it '#type' do
|
73
73
|
expect(@p.type).to be_a String if @p.type
|
74
74
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -17,7 +17,21 @@ require 'puree/xml_extractor/journal'
|
|
17
17
|
require 'puree/xml_extractor/organisation'
|
18
18
|
require 'puree/xml_extractor/person'
|
19
19
|
require 'puree/xml_extractor/project'
|
20
|
+
|
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/mixins/page_range_mixin'
|
25
|
+
require 'puree/xml_extractor/mixins/peer_reviewed_mixin'
|
20
26
|
require 'puree/xml_extractor/publication'
|
27
|
+
require 'puree/xml_extractor/thesis'
|
28
|
+
require 'puree/xml_extractor/doctoral_thesis'
|
29
|
+
require 'puree/xml_extractor/masters_thesis'
|
30
|
+
require 'puree/xml_extractor/journal_article'
|
31
|
+
require 'puree/xml_extractor/paper_base'
|
32
|
+
require 'puree/xml_extractor/conference_paper'
|
33
|
+
require 'puree/xml_extractor/paper'
|
34
|
+
|
21
35
|
require 'puree/xml_extractor/publisher'
|
22
36
|
require 'puree/xml_extractor/server'
|
23
37
|
|
@@ -26,19 +40,30 @@ require 'puree/api/request'
|
|
26
40
|
require 'puree/api/configuration'
|
27
41
|
require 'puree/api/authentication'
|
28
42
|
|
43
|
+
require 'puree/model/helper/validation'
|
29
44
|
require 'puree/model/structure'
|
30
45
|
|
31
46
|
require 'puree/model/resource'
|
32
47
|
require 'puree/model/dataset'
|
33
48
|
require 'puree/model/download_header'
|
34
49
|
require 'puree/model/event'
|
35
|
-
require 'puree/model/
|
50
|
+
require 'puree/model/event_header'
|
36
51
|
require 'puree/model/journal'
|
52
|
+
require 'puree/model/journal_header'
|
37
53
|
require 'puree/model/link'
|
38
54
|
require 'puree/model/organisation'
|
39
55
|
require 'puree/model/person'
|
40
56
|
require 'puree/model/project'
|
57
|
+
|
41
58
|
require 'puree/model/publication'
|
59
|
+
require 'puree/model/thesis'
|
60
|
+
require 'puree/model/doctoral_thesis'
|
61
|
+
require 'puree/model/masters_thesis'
|
62
|
+
require 'puree/model/journal_article'
|
63
|
+
require 'puree/model/paper_base'
|
64
|
+
require 'puree/model/conference_paper'
|
65
|
+
require 'puree/model/paper'
|
66
|
+
|
42
67
|
require 'puree/model/publisher'
|
43
68
|
require 'puree/model/related_content_header'
|
44
69
|
require 'puree/model/spatial_point'
|
@@ -62,7 +87,16 @@ require 'puree/extractor/journal'
|
|
62
87
|
require 'puree/extractor/organisation'
|
63
88
|
require 'puree/extractor/person'
|
64
89
|
require 'puree/extractor/project'
|
90
|
+
|
65
91
|
require 'puree/extractor/publication'
|
92
|
+
require 'puree/extractor/thesis'
|
93
|
+
require 'puree/extractor/doctoral_thesis'
|
94
|
+
require 'puree/extractor/masters_thesis'
|
95
|
+
require 'puree/extractor/journal_article'
|
96
|
+
require 'puree/extractor/paper_base'
|
97
|
+
require 'puree/extractor/conference_paper'
|
98
|
+
require 'puree/extractor/paper'
|
99
|
+
|
66
100
|
require 'puree/extractor/publisher'
|
67
101
|
require 'puree/extractor/collection'
|
68
102
|
require 'puree/extractor/download'
|
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.3.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-
|
11
|
+
date: 2017-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -72,14 +72,18 @@ files:
|
|
72
72
|
- lib/puree/api/map.rb
|
73
73
|
- lib/puree/api/request.rb
|
74
74
|
- lib/puree/extractor/collection.rb
|
75
|
+
- lib/puree/extractor/conference_paper.rb
|
75
76
|
- lib/puree/extractor/dataset.rb
|
76
77
|
- lib/puree/extractor/doctoral_thesis.rb
|
77
78
|
- lib/puree/extractor/download.rb
|
78
79
|
- lib/puree/extractor/event.rb
|
79
80
|
- lib/puree/extractor/extractor.rb
|
80
81
|
- lib/puree/extractor/journal.rb
|
82
|
+
- lib/puree/extractor/journal_article.rb
|
81
83
|
- lib/puree/extractor/masters_thesis.rb
|
82
84
|
- lib/puree/extractor/organisation.rb
|
85
|
+
- lib/puree/extractor/paper.rb
|
86
|
+
- lib/puree/extractor/paper_base.rb
|
83
87
|
- lib/puree/extractor/person.rb
|
84
88
|
- lib/puree/extractor/project.rb
|
85
89
|
- lib/puree/extractor/publication.rb
|
@@ -88,6 +92,7 @@ files:
|
|
88
92
|
- lib/puree/extractor/server.rb
|
89
93
|
- lib/puree/extractor/thesis.rb
|
90
94
|
- lib/puree/model/address.rb
|
95
|
+
- lib/puree/model/conference_paper.rb
|
91
96
|
- lib/puree/model/copyright_license.rb
|
92
97
|
- lib/puree/model/dataset.rb
|
93
98
|
- lib/puree/model/doctoral_thesis.rb
|
@@ -98,12 +103,16 @@ files:
|
|
98
103
|
- lib/puree/model/file.rb
|
99
104
|
- lib/puree/model/helper/validation.rb
|
100
105
|
- lib/puree/model/journal.rb
|
106
|
+
- lib/puree/model/journal_article.rb
|
107
|
+
- lib/puree/model/journal_header.rb
|
101
108
|
- lib/puree/model/legal_condition.rb
|
102
109
|
- lib/puree/model/link.rb
|
103
110
|
- lib/puree/model/masters_thesis.rb
|
104
111
|
- lib/puree/model/model.rb
|
105
112
|
- lib/puree/model/organisation.rb
|
106
113
|
- lib/puree/model/organisation_header.rb
|
114
|
+
- lib/puree/model/paper.rb
|
115
|
+
- lib/puree/model/paper_base.rb
|
107
116
|
- lib/puree/model/person.rb
|
108
117
|
- lib/puree/model/person_name.rb
|
109
118
|
- lib/puree/model/project.rb
|
@@ -123,16 +132,22 @@ files:
|
|
123
132
|
- lib/puree/version.rb
|
124
133
|
- lib/puree/xml_extractor/base.rb
|
125
134
|
- lib/puree/xml_extractor/collection.rb
|
135
|
+
- lib/puree/xml_extractor/conference_paper.rb
|
126
136
|
- lib/puree/xml_extractor/dataset.rb
|
127
137
|
- lib/puree/xml_extractor/doctoral_thesis.rb
|
128
138
|
- lib/puree/xml_extractor/download.rb
|
129
139
|
- lib/puree/xml_extractor/event.rb
|
130
140
|
- lib/puree/xml_extractor/journal.rb
|
141
|
+
- lib/puree/xml_extractor/journal_article.rb
|
131
142
|
- lib/puree/xml_extractor/masters_thesis.rb
|
132
143
|
- lib/puree/xml_extractor/mixins/doi_mixin.rb
|
133
144
|
- lib/puree/xml_extractor/mixins/event_mixin.rb
|
145
|
+
- lib/puree/xml_extractor/mixins/page_range_mixin.rb
|
134
146
|
- lib/puree/xml_extractor/mixins/pages_mixin.rb
|
147
|
+
- lib/puree/xml_extractor/mixins/peer_reviewed_mixin.rb
|
135
148
|
- lib/puree/xml_extractor/organisation.rb
|
149
|
+
- lib/puree/xml_extractor/paper.rb
|
150
|
+
- lib/puree/xml_extractor/paper_base.rb
|
136
151
|
- lib/puree/xml_extractor/person.rb
|
137
152
|
- lib/puree/xml_extractor/project.rb
|
138
153
|
- lib/puree/xml_extractor/publication.rb
|