hydra-works 0.8.1 → 0.9.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/README.md +2 -0
- data/hydra-works.gemspec +1 -1
- data/lib/hydra/works.rb +0 -1
- data/lib/hydra/works/characterization/schema/document_schema.rb +2 -2
- data/lib/hydra/works/models/concerns/file_set/characterization/document.rb +1 -0
- data/lib/hydra/works/models/concerns/file_set/virus_check.rb +2 -1
- data/lib/hydra/works/version.rb +1 -1
- data/solr/config/schema.xml +34 -34
- data/spec/fixtures/eicar.txt +1 -0
- data/spec/hydra/works/models/concerns/file_set/virus_check_spec.rb +14 -2
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e1d3bbe7957645b6170f8bc00a7084fa94e670b
|
4
|
+
data.tar.gz: 901fcd09d4e40f5a97114e2f070ee36dffd231d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9b4ff1445474ab473dd55a97fa0de5d3e29a5879614ec0fea840929f959c9b8a8e6d424c1d7224b925863b8f157d20d8cebcce4bdf1abc1f3bb38b8f91752f2
|
7
|
+
data.tar.gz: b2cbefad14f81c691c5129fe0c6e7895a6f1a6b3392bd6a129490e2556b42ff4e796836de751752068d4c5c984b675dfdee7b832c2e272649cf62d5ac7d3c01f
|
data/README.md
CHANGED
@@ -15,6 +15,8 @@ The Hydra::Works gem implements the [PCDM](https://github.com/duraspace/pcdm/wik
|
|
15
15
|
* **Work**: a *pcdm:Object* that holds zero or more **FileSets** and zero or more **Works**
|
16
16
|
* **FileSet**: a *pcdm:Object* that groups one or more related *pcdm:Files*, such as an original file (e.g., PDF document), its derivatives (e.g., a thumbnail), and extracted full-text
|
17
17
|
|
18
|
+
View [a diagram of the Hydra::Works domain model](https://docs.google.com/drawings/d/1if47TYgEhqDLPh3D0026B_cBLa0BEAOpWPs8AqoQMZE/edit).
|
19
|
+
|
18
20
|
Behaviors included in the model include:
|
19
21
|
|
20
22
|
* Characterization of original files within FileSets
|
data/hydra-works.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'hydra-pcdm', '
|
21
|
+
spec.add_dependency 'hydra-pcdm', '>= 0.6'
|
22
22
|
spec.add_dependency 'hydra-derivatives', '~> 3.0'
|
23
23
|
spec.add_dependency 'hydra-file_characterization', '~> 0.3', '>= 0.3.3'
|
24
24
|
|
data/lib/hydra/works.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module Hydra::Works::Characterization
|
2
2
|
class DocumentSchema < ActiveTriples::Schema
|
3
3
|
property :file_title, predicate: RDF::Vocab::DC11.title
|
4
|
-
property :
|
4
|
+
property :creator, predicate: RDF::Vocab::DC11.creator
|
5
5
|
property :page_count, predicate: RDF::Vocab::NFO.pageCount
|
6
|
-
property :
|
6
|
+
property :language, predicate: RDF::Vocab::DC11.language
|
7
7
|
property :word_count, predicate: RDF::Vocab::NFO.wordCount
|
8
8
|
property :character_count, predicate: RDF::Vocab::NFO.characterCount
|
9
9
|
property :line_count, predicate: RDF::Vocab::NFO.lineCount
|
@@ -5,6 +5,7 @@ module Hydra::Works::Characterization
|
|
5
5
|
included do
|
6
6
|
# Apply the document schema. This will add properties defined in the schema.
|
7
7
|
apply_schema DocumentSchema, AlreadyThereStrategy
|
8
|
+
parser_mapping.merge!(file_author: :creator, file_language: :language)
|
8
9
|
end
|
9
10
|
end
|
10
11
|
end
|
data/lib/hydra/works/version.rb
CHANGED
data/solr/config/schema.xml
CHANGED
@@ -59,32 +59,32 @@
|
|
59
59
|
|
60
60
|
<types>
|
61
61
|
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
|
62
|
-
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
|
62
|
+
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
|
63
63
|
<fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
|
64
|
-
|
64
|
+
|
65
65
|
<!-- Default numeric field types. -->
|
66
66
|
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
|
67
67
|
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
|
68
68
|
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
|
69
69
|
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
|
70
|
-
|
70
|
+
|
71
71
|
<!-- trie numeric field types for faster range queries -->
|
72
72
|
<fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
|
73
73
|
<fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
|
74
74
|
<fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
|
75
75
|
<fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
|
76
|
-
|
76
|
+
|
77
77
|
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z
|
78
78
|
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
|
79
79
|
-->
|
80
80
|
<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
|
81
81
|
<!-- A Trie based date field for faster date range queries and date faceting. -->
|
82
82
|
<fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
|
83
|
-
|
84
|
-
|
83
|
+
|
84
|
+
|
85
85
|
<!-- This point type indexes the coordinates as separate fields (subFields)
|
86
86
|
If subFieldType is defined, it references a type, and a dynamic field
|
87
|
-
definition is created matching *___<typename>. Alternately, if
|
87
|
+
definition is created matching *___<typename>. Alternately, if
|
88
88
|
subFieldSuffix is defined, that is used to create the subFields.
|
89
89
|
Example: if subFieldType="double", then the coordinates would be
|
90
90
|
indexed in fields myloc_0___double,myloc_1___double.
|
@@ -94,17 +94,17 @@
|
|
94
94
|
users normally should not need to know about them.
|
95
95
|
-->
|
96
96
|
<fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
|
97
|
-
|
97
|
+
|
98
98
|
<!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
|
99
99
|
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
|
100
|
-
|
100
|
+
|
101
101
|
<!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
|
102
102
|
For more information about this and other Spatial fields new to Solr 4, see:
|
103
103
|
http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
|
104
104
|
-->
|
105
105
|
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
|
106
|
-
geo="true" distErrPct="0.025" maxDistErr="0.000009"
|
107
|
-
|
106
|
+
geo="true" distErrPct="0.025" maxDistErr="0.000009" distanceUnits="degrees" />
|
107
|
+
|
108
108
|
<fieldType name="text" class="solr.TextField" omitNorms="false">
|
109
109
|
<analyzer>
|
110
110
|
<tokenizer class="solr.ICUTokenizerFactory"/>
|
@@ -112,7 +112,7 @@
|
|
112
112
|
<filter class="solr.TrimFilterFactory"/>
|
113
113
|
</analyzer>
|
114
114
|
</fieldType>
|
115
|
-
|
115
|
+
|
116
116
|
<!-- A text field that only splits on whitespace for exact matching of words -->
|
117
117
|
<fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
|
118
118
|
<analyzer>
|
@@ -120,7 +120,7 @@
|
|
120
120
|
<filter class="solr.TrimFilterFactory"/>
|
121
121
|
</analyzer>
|
122
122
|
</fieldType>
|
123
|
-
|
123
|
+
|
124
124
|
<!-- single token analyzed text, for sorting. Punctuation is significant. -->
|
125
125
|
<fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
|
126
126
|
<analyzer>
|
@@ -129,7 +129,7 @@
|
|
129
129
|
<filter class="solr.TrimFilterFactory" />
|
130
130
|
</analyzer>
|
131
131
|
</fieldtype>
|
132
|
-
|
132
|
+
|
133
133
|
<!-- A text field with defaults appropriate for English -->
|
134
134
|
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
|
135
135
|
<analyzer>
|
@@ -144,7 +144,7 @@
|
|
144
144
|
<filter class="solr.TrimFilterFactory"/>
|
145
145
|
</analyzer>
|
146
146
|
</fieldType>
|
147
|
-
|
147
|
+
|
148
148
|
<!-- queries for paths match documents at that path, or in descendent paths -->
|
149
149
|
<fieldType name="descendent_path" class="solr.TextField">
|
150
150
|
<analyzer type="index">
|
@@ -154,7 +154,7 @@
|
|
154
154
|
<tokenizer class="solr.KeywordTokenizerFactory" />
|
155
155
|
</analyzer>
|
156
156
|
</fieldType>
|
157
|
-
|
157
|
+
|
158
158
|
<!-- queries for paths match documents at that path, or in ancestor paths -->
|
159
159
|
<fieldType name="ancestor_path" class="solr.TextField">
|
160
160
|
<analyzer type="index">
|
@@ -179,12 +179,12 @@
|
|
179
179
|
<fields>
|
180
180
|
<!-- If you remove this field, you must _also_ disable the update log in solrconfig.xml
|
181
181
|
or Solr won't start. _version_ and update log are required for SolrCloud
|
182
|
-
-->
|
182
|
+
-->
|
183
183
|
<field name="_version_" type="long" indexed="true" stored="true"/>
|
184
|
-
|
184
|
+
|
185
185
|
<field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
|
186
186
|
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
|
187
|
-
|
187
|
+
|
188
188
|
<field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
189
189
|
<field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
190
190
|
|
@@ -201,7 +201,7 @@
|
|
201
201
|
<dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
202
202
|
<dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
|
203
203
|
<dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
204
|
-
|
204
|
+
|
205
205
|
<!-- English text (_te...) -->
|
206
206
|
<dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
|
207
207
|
<dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/>
|
@@ -213,7 +213,7 @@
|
|
213
213
|
<dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
214
214
|
<dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
|
215
215
|
<dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
216
|
-
|
216
|
+
|
217
217
|
<!-- string (_s...) -->
|
218
218
|
<dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
|
219
219
|
<dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/>
|
@@ -222,7 +222,7 @@
|
|
222
222
|
<dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/>
|
223
223
|
<dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/>
|
224
224
|
<dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/>
|
225
|
-
|
225
|
+
|
226
226
|
<!-- integer (_i...) -->
|
227
227
|
<dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
|
228
228
|
<dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/>
|
@@ -230,7 +230,7 @@
|
|
230
230
|
<dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
|
231
231
|
<dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
|
232
232
|
<dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
|
233
|
-
|
233
|
+
|
234
234
|
<!-- trie integer (_it...) (for faster range queries) -->
|
235
235
|
<dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
|
236
236
|
<dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/>
|
@@ -238,7 +238,7 @@
|
|
238
238
|
<dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
|
239
239
|
<dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
|
240
240
|
<dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
|
241
|
-
|
241
|
+
|
242
242
|
<!-- date (_dt...) -->
|
243
243
|
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z
|
244
244
|
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
|
@@ -248,7 +248,7 @@
|
|
248
248
|
<dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
|
249
249
|
<dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
|
250
250
|
<dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
|
251
|
-
|
251
|
+
|
252
252
|
<!-- trie date (_dtt...) (for faster range queries) -->
|
253
253
|
<dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
|
254
254
|
<dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/>
|
@@ -256,7 +256,7 @@
|
|
256
256
|
<dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
|
257
257
|
<dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
|
258
258
|
<dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
|
259
|
-
|
259
|
+
|
260
260
|
<!-- long (_l...) -->
|
261
261
|
<dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
|
262
262
|
<dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/>
|
@@ -264,7 +264,7 @@
|
|
264
264
|
<dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
|
265
265
|
<dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
|
266
266
|
<dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
|
267
|
-
|
267
|
+
|
268
268
|
<!-- trie long (_lt...) (for faster range queries) -->
|
269
269
|
<dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
|
270
270
|
<dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/>
|
@@ -272,7 +272,7 @@
|
|
272
272
|
<dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
|
273
273
|
<dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
|
274
274
|
<dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
|
275
|
-
|
275
|
+
|
276
276
|
<!-- double (_db...) -->
|
277
277
|
<dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
|
278
278
|
<dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/>
|
@@ -280,7 +280,7 @@
|
|
280
280
|
<dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
|
281
281
|
<dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
|
282
282
|
<dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
|
283
|
-
|
283
|
+
|
284
284
|
<!-- trie double (_dbt...) (for faster range queries) -->
|
285
285
|
<dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
|
286
286
|
<dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/>
|
@@ -288,7 +288,7 @@
|
|
288
288
|
<dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
|
289
289
|
<dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
290
290
|
<dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
|
291
|
-
|
291
|
+
|
292
292
|
<!-- float (_f...) -->
|
293
293
|
<dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
|
294
294
|
<dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/>
|
@@ -296,7 +296,7 @@
|
|
296
296
|
<dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
|
297
297
|
<dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
|
298
298
|
<dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
|
299
|
-
|
299
|
+
|
300
300
|
<!-- trie float (_ft...) (for faster range queries) -->
|
301
301
|
<dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
|
302
302
|
<dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/>
|
@@ -304,12 +304,12 @@
|
|
304
304
|
<dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
|
305
305
|
<dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
|
306
306
|
<dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
|
307
|
-
|
307
|
+
|
308
308
|
<!-- boolean (_b...) -->
|
309
309
|
<dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
|
310
310
|
<dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
|
311
311
|
<dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
|
312
|
-
|
312
|
+
|
313
313
|
<!-- Type used to index the lat and lon components for the "location" FieldType -->
|
314
314
|
<dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
|
315
315
|
|
@@ -329,7 +329,7 @@
|
|
329
329
|
|
330
330
|
</fields>
|
331
331
|
|
332
|
-
<!-- Field to use to determine and enforce document uniqueness.
|
332
|
+
<!-- Field to use to determine and enforce document uniqueness.
|
333
333
|
Unless this field is marked with required="false", it will be a required field
|
334
334
|
-->
|
335
335
|
<uniqueKey>id</uniqueKey>
|
@@ -0,0 +1 @@
|
|
1
|
+
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
|
@@ -23,7 +23,7 @@ describe Hydra::Works::VirusCheck do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
subject { FileWithVirusCheck.new }
|
26
|
-
let(:file) { Hydra::PCDM::File.new File.join(fixture_path, 'sample-file.pdf') }
|
26
|
+
let(:file) { Hydra::PCDM::File.new { |f| f.content = File.new(File.join(fixture_path, 'sample-file.pdf')) } }
|
27
27
|
|
28
28
|
before do
|
29
29
|
allow(subject).to receive(:original_file) { file }
|
@@ -61,6 +61,18 @@ describe Hydra::Works::VirusCheck do
|
|
61
61
|
expect(subject.send(:local_path_for_file, file)).to eq('/tmp/file.pdf')
|
62
62
|
end
|
63
63
|
end
|
64
|
+
|
65
|
+
context 'original file does not respond to path' do
|
66
|
+
before do
|
67
|
+
allow(file).to receive(:respond_to?).and_call_original
|
68
|
+
allow(file).to receive(:respond_to?).with(:path).and_return(false)
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'reads the content of the original_file' do
|
72
|
+
expect(file.content).to receive(:read)
|
73
|
+
subject.detect_viruses
|
74
|
+
end
|
75
|
+
end
|
64
76
|
end
|
65
77
|
|
66
78
|
context "Without ClamAV" do
|
@@ -73,7 +85,7 @@ describe Hydra::Works::VirusCheck do
|
|
73
85
|
end
|
74
86
|
|
75
87
|
subject { FileWithVirusCheck.new }
|
76
|
-
let(:file) { Hydra::PCDM::File.new File.join(fixture_path, 'sample-file.pdf') }
|
88
|
+
let(:file) { Hydra::PCDM::File.new { |f| f.content = File.new(File.join(fixture_path, 'sample-file.pdf')) } }
|
77
89
|
|
78
90
|
before do
|
79
91
|
allow(subject).to receive(:original_file) { file }
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-works
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hydra-pcdm
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hydra-derivatives
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,6 +241,7 @@ files:
|
|
241
241
|
- spec/fixtures/Example.ogg
|
242
242
|
- spec/fixtures/charter.docx
|
243
243
|
- spec/fixtures/countdown.avi
|
244
|
+
- spec/fixtures/eicar.txt
|
244
245
|
- spec/fixtures/fits_0.6.2_avi.xml
|
245
246
|
- spec/fixtures/fits_0.6.2_jp2.xml
|
246
247
|
- spec/fixtures/fits_0.6.2_jpg.xml
|
@@ -303,7 +304,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
303
304
|
version: '0'
|
304
305
|
requirements: []
|
305
306
|
rubyforge_project:
|
306
|
-
rubygems_version: 2.4.
|
307
|
+
rubygems_version: 2.4.8
|
307
308
|
signing_key:
|
308
309
|
specification_version: 4
|
309
310
|
summary: Fundamental repository data model for hydra
|
@@ -311,6 +312,7 @@ test_files:
|
|
311
312
|
- spec/fixtures/Example.ogg
|
312
313
|
- spec/fixtures/charter.docx
|
313
314
|
- spec/fixtures/countdown.avi
|
315
|
+
- spec/fixtures/eicar.txt
|
314
316
|
- spec/fixtures/fits_0.6.2_avi.xml
|
315
317
|
- spec/fixtures/fits_0.6.2_jp2.xml
|
316
318
|
- spec/fixtures/fits_0.6.2_jpg.xml
|