hydra-works 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|