hydra-works 0.1.0 → 0.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 +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +72 -0
- data/Gemfile +5 -4
- data/README.md +17 -11
- data/Rakefile +18 -8
- data/config/solrconfig.xml +223 -0
- data/hydra-works.gemspec +15 -15
- data/lib/hydra/works.rb +28 -17
- data/lib/hydra/works/errors/full_text_extraction_error.rb +5 -0
- data/lib/hydra/works/models/concerns/block_child_objects.rb +12 -6
- data/lib/hydra/works/models/concerns/collection_behavior.rb +44 -6
- data/lib/hydra/works/models/concerns/generic_file/contained_files.rb +3 -3
- data/lib/hydra/works/models/concerns/generic_file/derivatives.rb +2 -4
- data/lib/hydra/works/models/concerns/generic_file/mime_types.rb +1 -3
- data/lib/hydra/works/models/concerns/generic_file/versioned_content.rb +4 -6
- data/lib/hydra/works/models/concerns/generic_file/virus_check.rb +13 -14
- data/lib/hydra/works/models/concerns/generic_file_behavior.rb +13 -3
- data/lib/hydra/works/models/concerns/generic_work_behavior.rb +34 -9
- data/lib/hydra/works/models/generic_file.rb +0 -3
- data/lib/hydra/works/services/generic_file/add_file_to_generic_file.rb +14 -16
- data/lib/hydra/works/services/generic_file/full_text_extraction_service.rb +57 -0
- data/lib/hydra/works/services/generic_file/generate_thumbnail.rb +13 -0
- data/lib/hydra/works/services/generic_file/persist_derivative.rb +3 -5
- data/lib/hydra/works/services/generic_file/{upload_file.rb → upload_file_to_generic_file.rb} +1 -3
- data/lib/hydra/works/version.rb +1 -1
- data/lib/hydra/works/vocab/works_terms.rb +9 -9
- data/lib/tasks/hydra-works_tasks.rake +80 -0
- data/lib/tasks/jetty.rake +15 -0
- data/spec/hydra/works/models/collection_spec.rb +258 -246
- data/spec/hydra/works/models/concerns/block_child_objects_spec.rb +6 -8
- data/spec/hydra/works/models/concerns/generic_file/contained_files_spec.rb +40 -48
- data/spec/hydra/works/models/concerns/generic_file/mime_types_spec.rb +16 -18
- data/spec/hydra/works/models/concerns/generic_file/versioned_content_spec.rb +11 -11
- data/spec/hydra/works/models/concerns/generic_file/virus_check_spec.rb +11 -8
- data/spec/hydra/works/models/concerns/generic_file_behavior_spec.rb +1 -1
- data/spec/hydra/works/models/generic_file_spec.rb +87 -85
- data/spec/hydra/works/models/generic_work_spec.rb +167 -169
- data/spec/hydra/works/services/full_text_extraction_service_spec.rb +89 -0
- data/spec/hydra/works/services/generic_file/add_file_to_generic_file_spec.rb +36 -38
- data/spec/hydra/works/services/generic_file/generate/thumbnail_spec.rb +10 -12
- data/spec/hydra/works/services/generic_file/upload_file_spec.rb +39 -42
- data/spec/hydra/works/services/persist_derivatives_spec.rb +2 -3
- data/spec/hydra/works_spec.rb +57 -61
- data/spec/spec_helper.rb +2 -4
- metadata +23 -15
- data/lib/hydra/works/services/generic_file/generate/thumbnail.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28a2824769ab44dca4138961476455d25db0d016
|
4
|
+
data.tar.gz: 7e0c7dae7cc6873680eb07bf882a1cc1b008e13e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ea7c389ceaeffe31367dffe19490162932afa1abeb5f5016ea2842003c7f36cc00bbe25a7b6160766f684fcb6009817074532d0bfc936928c6b0f570f9767be
|
7
|
+
data.tar.gz: cc6825f4d60eed260531714eb646d512debcdb004feba0c81f80b253c7ba935289a614202efa225966f178d677ea99898b135cd8619f911d7401aaf0f9b802e0
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
require: rubocop-rspec
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
RunRailsCops: true
|
5
|
+
DisplayCopNames: true
|
6
|
+
Include:
|
7
|
+
- '**/Rakefile'
|
8
|
+
Exclude:
|
9
|
+
- 'vendor/**/*'
|
10
|
+
- 'spec/internal/bin/*'
|
11
|
+
- 'spec/internal/db/schema.rb'
|
12
|
+
|
13
|
+
Metrics/LineLength:
|
14
|
+
Enabled: false
|
15
|
+
|
16
|
+
Metrics/CyclomaticComplexity:
|
17
|
+
Exclude:
|
18
|
+
- lib/hydra/works/services/generic_file/add_file_to_generic_file.rb
|
19
|
+
|
20
|
+
Metrics/PerceivedComplexity:
|
21
|
+
Exclude:
|
22
|
+
- lib/hydra/works/services/generic_file/add_file_to_generic_file.rb
|
23
|
+
|
24
|
+
Metrics/MethodLength:
|
25
|
+
Exclude:
|
26
|
+
- lib/hydra/works/services/generic_file/add_file_to_generic_file.rb
|
27
|
+
- lib/hydra/works/models/concerns/generic_file/virus_check.rb
|
28
|
+
|
29
|
+
Metrics/AbcSize:
|
30
|
+
Exclude:
|
31
|
+
- lib/hydra/works/services/generic_file/add_file_to_generic_file.rb
|
32
|
+
- lib/hydra/works/services/generic_file/full_text_extraction_service.rb
|
33
|
+
- lib/hydra/works/models/concerns/generic_file/mime_types.rb
|
34
|
+
- lib/hydra/works/models/concerns/generic_file/virus_check.rb
|
35
|
+
|
36
|
+
Style/CollectionMethods:
|
37
|
+
PreferredMethods:
|
38
|
+
collect: 'map'
|
39
|
+
collect!: 'map!'
|
40
|
+
inject: 'reduce'
|
41
|
+
detect: 'find'
|
42
|
+
find_all: 'select'
|
43
|
+
|
44
|
+
Style/ClassAndModuleChildren:
|
45
|
+
Enabled: false
|
46
|
+
|
47
|
+
Style/Documentation:
|
48
|
+
Enabled: false
|
49
|
+
|
50
|
+
Style/StringLiterals:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
Style/SignalException:
|
54
|
+
Enabled: false
|
55
|
+
|
56
|
+
Style/IndentationConsistency:
|
57
|
+
EnforcedStyle: rails
|
58
|
+
|
59
|
+
RSpec/ExampleWording:
|
60
|
+
CustomTransform:
|
61
|
+
be: is
|
62
|
+
have: has
|
63
|
+
not: does not
|
64
|
+
NOT: does NOT
|
65
|
+
IgnoredWords:
|
66
|
+
- only
|
67
|
+
|
68
|
+
RSpec/FilePath:
|
69
|
+
Enabled: false
|
70
|
+
|
71
|
+
RSpec/InstanceVariable:
|
72
|
+
Enabled: false
|
data/Gemfile
CHANGED
@@ -5,8 +5,9 @@ gemspec
|
|
5
5
|
|
6
6
|
gem 'slop', '~> 3.6' # For byebug
|
7
7
|
|
8
|
-
|
9
|
-
gem '
|
10
|
-
gem '
|
11
|
-
gem '
|
8
|
+
group :development, :test do
|
9
|
+
gem 'rubocop', require: false
|
10
|
+
gem 'rubocop-rspec', require: false
|
11
|
+
gem 'pry' unless ENV['CI']
|
12
|
+
gem 'pry-byebug' unless ENV['CI']
|
12
13
|
end
|
data/README.md
CHANGED
@@ -1,23 +1,29 @@
|
|
1
1
|
# Hydra::Works
|
2
|
+
|
3
|
+
[](http://badge.fury.io/rb/hydra-works)
|
2
4
|
[](https://travis-ci.org/projecthydra-labs/hydra-works)
|
3
5
|
[](https://coveralls.io/r/projecthydra-labs/hydra-works?branch=master)
|
6
|
+
[](https://codeclimate.com/github/projecthydra-labs/hydra-works)
|
7
|
+
[](./LICENSE)
|
8
|
+
[](./CONTRIBUTING.md)
|
9
|
+
[](http://rubydoc.info/gems/hydra-works)
|
10
|
+
[](https://waffle.io/projecthydra-labs/hydra-works?source=projecthydra-labs%2Fhydra-works)
|
4
11
|
|
5
|
-
The Hydra::Works gem provides a set of [Portland Common Data Model](https://
|
12
|
+
The Hydra::Works gem provides a set of [Portland Common Data Model](https://github.com/duraspace/pcdm/wiki)-compliant ActiveFedora models and associated behaviors around the broad concept of multi-file "works", the need for which was expressed by a variety of [community use cases](https://github.com/projecthydra-labs/hydra-works/tree/master/use-cases). The Hydra::Works domain model includes:
|
6
13
|
|
7
|
-
* **GenericFile**: a *
|
8
|
-
* **GenericWork**: a *
|
9
|
-
* **Collection**: a *
|
14
|
+
* **GenericFile**: a *Hydra::PCDM::Object* that encapsulates one or more directly related *Hydra::PCDM::File*s, such as a PDF document, its derivatives, and extracted full-text
|
15
|
+
* **GenericWork**: a *Hydra::PCDM::Object* that holds zero or more **GenericFile**s and zero or more **GenericWork**s
|
16
|
+
* **Collection**: a *Hydra::PCDM::Collection* that indirectly contains zero or more **GenericWork**s and zero or more **Collection**s
|
10
17
|
|
11
18
|
View [a diagram of the domain model](https://docs.google.com/drawings/d/1-NkkRPpGpZGoTimEpYTaGM1uUPRaT0SamuWDITvtG_8/edit).
|
12
19
|
|
20
|
+
Checkout the readme for [hydra-derivatives](https://github.com/projecthydra/hydra-derivatives#dependencies) for additional dependencies.
|
21
|
+
|
13
22
|
## Installation
|
14
23
|
|
15
24
|
Add these lines to your application's Gemfile:
|
16
25
|
|
17
|
-
|
18
|
-
gem 'active-fedora', github: 'projecthydra/active_fedora'
|
19
|
-
gem 'hydra-pcdm', github: 'projecthydra-labs/hydra-pcdm'
|
20
|
-
gem 'hydra-works', github: 'projecthydra-labs/hydra-works'
|
26
|
+
gem 'hydra-works', '~> 0.1'
|
21
27
|
|
22
28
|
And then execute:
|
23
29
|
|
@@ -48,7 +54,7 @@ collection = Collection.create
|
|
48
54
|
book = BookWork.create
|
49
55
|
page = Page.create
|
50
56
|
|
51
|
-
collection.
|
57
|
+
collection.generic_works << book
|
52
58
|
collection.save
|
53
59
|
book.generic_files << page
|
54
60
|
book.save
|
@@ -73,20 +79,20 @@ class BookFiles < ActiveFedora::Base
|
|
73
79
|
end
|
74
80
|
```
|
75
81
|
|
76
|
-
|
77
82
|
## Access controls
|
78
83
|
|
79
84
|
We are using [Web ACL](http://www.w3.org/wiki/WebAccessControl) as implemented by [hydra-access-controls](https://github.com/projecthydra/hydra-head/tree/master/hydra-access-controls).
|
80
85
|
|
81
86
|
## How to contribute
|
82
87
|
|
83
|
-
If you'd like to contribute to this effort, please check out the [
|
88
|
+
If you'd like to contribute to this effort, please check out the [contributing guidelines](CONTRIBUTING.md)
|
84
89
|
|
85
90
|
## Development
|
86
91
|
|
87
92
|
To set up for running the test suite, you need a copy of jetty
|
88
93
|
|
89
94
|
$ rake jetty:clean
|
95
|
+
$ rake jetty:config
|
90
96
|
|
91
97
|
To run the test suite, generate the test app (which goes into spec/internal) and start jetty (if it's not already running)
|
92
98
|
|
data/Rakefile
CHANGED
@@ -1,23 +1,33 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
2
|
require 'jettywrapper'
|
3
3
|
require 'rspec/core'
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
require 'engine_cart/rake_task'
|
6
|
+
require 'rubocop/rake_task'
|
6
7
|
|
7
|
-
|
8
|
-
|
8
|
+
Dir.glob('lib/tasks/*.rake').each { |r| import r }
|
9
|
+
|
10
|
+
desc 'Run style checker'
|
11
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
12
|
+
task.requires << 'rubocop-rspec'
|
13
|
+
task.fail_on_error = true
|
14
|
+
end
|
15
|
+
|
16
|
+
desc 'Run test suite and style checker'
|
17
|
+
task :spec do
|
18
|
+
Rake::Task['rubocop'].invoke
|
19
|
+
RSpec::Core::RakeTask.new(:spec)
|
20
|
+
end
|
9
21
|
|
10
22
|
desc 'Spin up hydra-jetty and run specs'
|
11
|
-
task ci: ['jetty:clean'] do
|
23
|
+
task ci: ['jetty:clean', 'jetty:config'] do
|
12
24
|
puts 'running continuous integration'
|
13
25
|
jetty_params = Jettywrapper.load_config
|
14
|
-
jetty_params[:startup_wait]= 90
|
26
|
+
jetty_params[:startup_wait] = 90
|
15
27
|
error = Jettywrapper.wrap(jetty_params) do
|
16
28
|
Rake::Task['spec'].invoke
|
17
29
|
end
|
18
|
-
|
30
|
+
fail "test failures: #{error}" if error
|
19
31
|
end
|
20
32
|
|
21
33
|
task default: :ci
|
22
|
-
|
23
|
-
|
@@ -0,0 +1,223 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<config>
|
3
|
+
<!-- NOTE: various comments and unused configuration possibilities have been purged
|
4
|
+
from this file. Please refer to http://wiki.apache.org/solr/SolrConfigXml,
|
5
|
+
as well as the default solrconfig file included with Solr -->
|
6
|
+
|
7
|
+
<abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
|
8
|
+
|
9
|
+
<luceneMatchVersion>LUCENE_40</luceneMatchVersion>
|
10
|
+
|
11
|
+
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
|
12
|
+
|
13
|
+
<!-- solr lib dirs -->
|
14
|
+
<lib dir="../lib/contrib/analysis-extras/lib" />
|
15
|
+
<lib dir="../lib/contrib/analysis-extras/lucene-libs" />
|
16
|
+
<!-- for full-text indexing -->
|
17
|
+
<lib dir="../lib/contrib/extraction/lib" regex=".*\.jar" />
|
18
|
+
|
19
|
+
<dataDir>${solr.data.dir:}</dataDir>
|
20
|
+
|
21
|
+
<!-- The default high-performance update handler -->
|
22
|
+
<updateHandler class="solr.DirectUpdateHandler2">
|
23
|
+
|
24
|
+
<!-- Enables a transaction log, used for real-time get, durability, and
|
25
|
+
and solr cloud replica recovery. The log can grow as big as
|
26
|
+
uncommitted changes to the index, so use of a hard autoCommit
|
27
|
+
is recommended (see below).
|
28
|
+
"dir" - the target directory for transaction logs, defaults to the
|
29
|
+
solr data directory. -->
|
30
|
+
<updateLog>
|
31
|
+
<str name="dir">${solr.ulog.dir:}</str>
|
32
|
+
</updateLog>
|
33
|
+
|
34
|
+
<!-- AutoCommit
|
35
|
+
Perform a hard commit automatically under certain conditions.
|
36
|
+
Instead of enabling autoCommit, consider using "commitWithin"
|
37
|
+
when adding documents.
|
38
|
+
http://wiki.apache.org/solr/UpdateXmlMessages
|
39
|
+
maxDocs - Maximum number of documents to add since the last
|
40
|
+
commit before automatically triggering a new commit.
|
41
|
+
maxTime - Maximum amount of time in ms that is allowed to pass
|
42
|
+
since a document was added before automatically
|
43
|
+
triggering a new commit.
|
44
|
+
openSearcher - if false, the commit causes recent index changes
|
45
|
+
to be flushed to stable storage, but does not cause a new
|
46
|
+
searcher to be opened to make those changes visible.
|
47
|
+
If the updateLog is enabled, then it's highly recommended to
|
48
|
+
have some sort of hard autoCommit to limit the log size.
|
49
|
+
-->
|
50
|
+
<autoCommit>
|
51
|
+
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
|
52
|
+
<openSearcher>false</openSearcher>
|
53
|
+
</autoCommit>
|
54
|
+
|
55
|
+
<!-- softAutoCommit is like autoCommit except it causes a
|
56
|
+
'soft' commit which only ensures that changes are visible
|
57
|
+
but does not ensure that data is synced to disk. This is
|
58
|
+
faster and more near-realtime friendly than a hard commit.
|
59
|
+
-->
|
60
|
+
|
61
|
+
<autoSoftCommit>
|
62
|
+
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
|
63
|
+
</autoSoftCommit>
|
64
|
+
|
65
|
+
</updateHandler>
|
66
|
+
|
67
|
+
<requestHandler name="search" class="solr.SearchHandler" default="true">
|
68
|
+
<!-- default values for query parameters can be specified, these
|
69
|
+
will be overridden by parameters in the request
|
70
|
+
-->
|
71
|
+
<lst name="defaults">
|
72
|
+
<str name="defType">edismax</str>
|
73
|
+
<str name="echoParams">explicit</str>
|
74
|
+
<str name="q.alt">*:*</str>
|
75
|
+
<str name="mm">2<-1 5<-2 6<90%</str>
|
76
|
+
<int name="qs">1</int>
|
77
|
+
<int name="ps">2</int>
|
78
|
+
<float name="tie">0.01</float>
|
79
|
+
<!-- this qf and pf are used by default, if not otherwise specified by
|
80
|
+
client. The default blacklight_config will use these for the
|
81
|
+
"keywords" search. See the author_qf/author_pf, title_qf, etc
|
82
|
+
below, which the default blacklight_config will specify for
|
83
|
+
those searches. You may also be interested in:
|
84
|
+
http://wiki.apache.org/solr/LocalParams
|
85
|
+
-->
|
86
|
+
<str name="qf">
|
87
|
+
id
|
88
|
+
all_text_timv
|
89
|
+
active_fedora_model_ssi
|
90
|
+
object_type_si
|
91
|
+
</str>
|
92
|
+
<str name="pf">
|
93
|
+
all_text_timv^10
|
94
|
+
</str>
|
95
|
+
|
96
|
+
<str name="author_qf">
|
97
|
+
</str>
|
98
|
+
<str name="author_pf">
|
99
|
+
</str>
|
100
|
+
<str name="title_qf">
|
101
|
+
</str>
|
102
|
+
<str name="title_pf">
|
103
|
+
</str>
|
104
|
+
<str name="subject_qf">
|
105
|
+
</str>
|
106
|
+
<str name="subject_pf">
|
107
|
+
</str>
|
108
|
+
|
109
|
+
<str name="fl">
|
110
|
+
*,
|
111
|
+
score
|
112
|
+
</str>
|
113
|
+
|
114
|
+
<str name="facet">true</str>
|
115
|
+
<str name="facet.mincount">1</str>
|
116
|
+
<str name="facet.limit">10</str>
|
117
|
+
<str name="facet.field">active_fedora_model_ssi</str>
|
118
|
+
<str name="facet.field">object_type_si</str>
|
119
|
+
|
120
|
+
<str name="spellcheck">true</str>
|
121
|
+
<str name="spellcheck.dictionary">default</str>
|
122
|
+
<str name="spellcheck.onlyMorePopular">true</str>
|
123
|
+
<str name="spellcheck.extendedResults">true</str>
|
124
|
+
<str name="spellcheck.collate">false</str>
|
125
|
+
<str name="spellcheck.count">5</str>
|
126
|
+
|
127
|
+
</lst>
|
128
|
+
<arr name="last-components">
|
129
|
+
<str>spellcheck</str>
|
130
|
+
</arr>
|
131
|
+
</requestHandler>
|
132
|
+
|
133
|
+
<requestHandler name="permissions" class="solr.SearchHandler" >
|
134
|
+
<lst name="defaults">
|
135
|
+
<str name="facet">off</str>
|
136
|
+
<str name="echoParams">all</str>
|
137
|
+
<str name="rows">1</str>
|
138
|
+
<str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
|
139
|
+
<str name="fl">
|
140
|
+
id,
|
141
|
+
access_ssim,
|
142
|
+
discover_access_group_ssim,discover_access_person_ssim,
|
143
|
+
read_access_group_ssim,read_access_person_ssim,
|
144
|
+
edit_access_group_ssim,edit_access_person_ssim,
|
145
|
+
depositor_ti,
|
146
|
+
embargo_release_date_dtsi
|
147
|
+
inheritable_access_ssim,
|
148
|
+
inheritable_discover_access_group_ssim,inheritable_discover_access_person_ssim,
|
149
|
+
inheritable_read_access_group_ssim,inheritable_read_access_person_ssim,
|
150
|
+
inheritable_edit_access_group_ssim,inheritable_edit_access_person_ssim,
|
151
|
+
inheritable_embargo_release_date_dtsi
|
152
|
+
</str>
|
153
|
+
</lst>
|
154
|
+
</requestHandler>
|
155
|
+
|
156
|
+
<requestHandler name="/update/extract" startup="lazy" class="org.apache.solr.handler.extraction.ExtractingRequestHandler" >
|
157
|
+
<lst name="defaults">
|
158
|
+
<!-- All the main content goes into "text"... if you need to return the extracted text or do highlighting, use a stored field. -->
|
159
|
+
<str name="fmap.content">text</str>
|
160
|
+
<str name="lowernames">true</str>
|
161
|
+
<str name="uprefix">ignored_</str>
|
162
|
+
<!-- capture link hrefs but ignore div attributes -->
|
163
|
+
<str name="captureAttr">true</str>
|
164
|
+
<str name="fmap.a">links</str>
|
165
|
+
<str name="fmap.div">ignored_</str>
|
166
|
+
</lst>
|
167
|
+
</requestHandler>
|
168
|
+
|
169
|
+
<requestHandler name="standard" class="solr.SearchHandler">
|
170
|
+
<lst name="defaults">
|
171
|
+
<str name="echoParams">explicit</str>
|
172
|
+
<str name="defType">lucene</str>
|
173
|
+
</lst>
|
174
|
+
</requestHandler>
|
175
|
+
|
176
|
+
<!-- for requests to get a single document; use id=666 instead of q=id:666 -->
|
177
|
+
<requestHandler name="document" class="solr.SearchHandler" >
|
178
|
+
<lst name="defaults">
|
179
|
+
<str name="echoParams">all</str>
|
180
|
+
<str name="fl">*</str>
|
181
|
+
<str name="rows">1</str>
|
182
|
+
<str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
|
183
|
+
</lst>
|
184
|
+
</requestHandler>
|
185
|
+
|
186
|
+
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
|
187
|
+
<str name="queryAnalyzerFieldType">textSpell</str>
|
188
|
+
<!-- Multiple "Spell Checkers" can be declared and used by this component
|
189
|
+
(e.g. for title_spell field)
|
190
|
+
-->
|
191
|
+
<lst name="spellchecker">
|
192
|
+
<str name="name">default</str>
|
193
|
+
<str name="field">spell</str>
|
194
|
+
<str name="spellcheckIndexDir">./spell</str>
|
195
|
+
<str name="buildOnOptimize">true</str>
|
196
|
+
</lst>
|
197
|
+
</searchComponent>
|
198
|
+
|
199
|
+
<requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
|
200
|
+
|
201
|
+
<requestDispatcher handleSelect="true" >
|
202
|
+
<requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
|
203
|
+
</requestDispatcher>
|
204
|
+
|
205
|
+
<requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
|
206
|
+
<requestHandler name="/update" class="solr.UpdateRequestHandler" />
|
207
|
+
<requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
|
208
|
+
|
209
|
+
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
|
210
|
+
<lst name="invariants">
|
211
|
+
<str name="q">solrpingquery</str>
|
212
|
+
</lst>
|
213
|
+
<lst name="defaults">
|
214
|
+
<str name="echoParams">all</str>
|
215
|
+
</lst>
|
216
|
+
</requestHandler>
|
217
|
+
|
218
|
+
<!-- config for the admin interface -->
|
219
|
+
<admin>
|
220
|
+
<defaultQuery>search</defaultQuery>
|
221
|
+
</admin>
|
222
|
+
|
223
|
+
</config>
|
data/hydra-works.gemspec
CHANGED
@@ -4,30 +4,30 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'hydra/works/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'hydra-works'
|
8
8
|
spec.version = Hydra::Works::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Justin Coyne']
|
10
|
+
spec.email = ['justin@curationexperts.com']
|
11
11
|
spec.summary = %q{Fundamental repository data model for hydra}
|
12
12
|
spec.description = %q{Using this data model should enable easy collaboration amongst hydra projects.}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = ''
|
14
|
+
spec.license = 'APACHE2'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency
|
22
|
-
spec.add_dependency
|
23
|
-
spec.add_dependency
|
24
|
-
spec.add_dependency
|
21
|
+
spec.add_dependency 'hydra-pcdm', '~> 0.2'
|
22
|
+
spec.add_dependency 'hydra-derivatives', '~> 2.0'
|
23
|
+
spec.add_dependency 'active-fedora', '>= 9.4.1'
|
24
|
+
spec.add_dependency 'activefedora-aggregation', '~> 0.4'
|
25
25
|
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
26
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
27
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
28
|
+
spec.add_development_dependency 'rspec-rails', '~> 3.1'
|
29
|
+
spec.add_development_dependency 'engine_cart', '~> 0'
|
30
|
+
spec.add_development_dependency 'sqlite3'
|
31
31
|
spec.add_development_dependency 'jettywrapper', '>= 2.0.0'
|
32
32
|
spec.add_development_dependency 'coveralls'
|
33
33
|
spec.add_development_dependency 'rspec'
|