puree 1.1.0 → 1.2.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: 51982259947535b8a9b88916eca1d629004b1d78
4
- data.tar.gz: 0b4469e3b0f0881d45ebbdc7a90eb69f7b4e29cb
3
+ metadata.gz: 92900cf287eee283a00fc51d36aacdf62b6c0ef7
4
+ data.tar.gz: b3a7ea09d42501087a1bb86cd019d1ccbc6e0971
5
5
  SHA512:
6
- metadata.gz: e1ab192064572d2935d3546577c4bdbe4dbbd624f9056f173da1d9d91f910beb493aa0dd17a13a1162003f618ea215f213643e6a3fc98509acdd89e8fa21b416
7
- data.tar.gz: 3e94e0b3ae0f86fa0f91911e142d435d428c088735108d19aa5ca49c182d18f16602d83441d374158a9bbc8a4635d60c250bff43d4fc711634d4bd551e2ed0c7
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.pages = @extractor.pages
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
- resource_class = "Puree::Model::#{resource.to_s.capitalize}"
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
- resource_class = "Puree::XMLExtractor::#{@resource_type.to_s.capitalize}"
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
@@ -0,0 +1,10 @@
1
+ module Puree
2
+ module Model
3
+
4
+ # A doctoral thesis.
5
+ #
6
+ class DoctoralThesis < Puree::Model::Thesis
7
+
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Puree
2
+ module Model
3
+
4
+ # A Master's thesis.
5
+ #
6
+ class MastersThesis < Puree::Model::Thesis
7
+
8
+ end
9
+ end
10
+ 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 [Fixnum, nil]
30
- attr_accessor :pages
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
@@ -1,8 +1,7 @@
1
1
  module Puree
2
-
3
2
  module Util
4
3
 
5
- # Date transformations
4
+ # Date transformations.
6
5
  #
7
6
  module Date
8
7
 
@@ -82,5 +81,4 @@ module Puree
82
81
  end
83
82
 
84
83
  end
85
-
86
84
  end
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Puree
2
2
  # Semantic version number
3
3
  #
4
- VERSION = "1.1.0"
4
+ VERSION = "1.2.0"
5
5
  end
@@ -0,0 +1,14 @@
1
+ module Puree
2
+ module XMLExtractor
3
+
4
+ # Doctoral thesis XML extractor.
5
+ #
6
+ class DoctoralThesis < Puree::XMLExtractor::Thesis
7
+
8
+ def initialize(xml:)
9
+ super
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Puree
2
+ module XMLExtractor
3
+
4
+ # Master's thesis XML extractor.
5
+ #
6
+ class MastersThesis < Puree::XMLExtractor::Thesis
7
+
8
+ def initialize(xml:)
9
+ super
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ module Puree
2
+
3
+ module XMLExtractor
4
+
5
+ # DOI extractor mixin.
6
+ #
7
+ module DoiMixin
8
+
9
+ # @return [String, nil]
10
+ def doi
11
+ xpath_query_for_single_value '//doi'
12
+ end
13
+
14
+ end
15
+
16
+ end
17
+ end
@@ -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 XMLextractor.
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 [Fixnum, nil]
77
- def pages
78
- xpath_result = xpath_query_for_single_value('/numberOfPages')
79
- xpath_result ? xpath_result.to_i : nil
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
@@ -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'
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.1.0
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-22 00:00:00.000000000 Z
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