hydra-head 3.1.0.pre1 → 3.1.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +22 -22
- data/RELEASE_NOTES.textile +8 -0
- data/app/controllers/assets_controller.rb +6 -5
- data/hydra-head.gemspec +1 -1
- data/lib/generators/hydra/head_generator.rb +3 -1
- data/lib/generators/hydra/templates/config/initializers/blacklight_config.rb +7 -0
- data/lib/generators/hydra/templates/solr_conf/conf/schema.xml +7 -1
- data/lib/generators/hydra/templates/solr_conf/conf/solrconfig.xml +117 -55
- data/lib/hydra-head/version.rb +1 -1
- data/lib/hydra/access_controls_enforcement.rb +47 -5
- data/lib/railties/hydra-fixtures.rake +1 -1
- data/solr_conf/conf/schema.xml +2 -0
- data/solr_conf/conf/solrconfig.xml +116 -29
- data/test_support/features/absent_model_search_result.feature +2 -8
- data/test_support/spec/controllers/catalog_controller_spec.rb +6 -3
- data/test_support/spec/helpers/access_controls_enforcement_spec.rb +77 -0
- data/test_support/spec/models/hydra_rights_metadata_spec.rb +2 -1
- data/vendor/cache/{active-fedora-3.1.0.rc1.gem → active-fedora-3.1.1.gem} +0 -0
- data/vendor/cache/curb-0.7.16.gem +0 -0
- data/vendor/cache/factory_girl-2.1.2.gem +0 -0
- data/vendor/cache/ffi-1.0.9.gem +0 -0
- data/vendor/cache/gherkin-2.5.2.gem +0 -0
- data/vendor/cache/jettywrapper-1.0.2.gem +0 -0
- data/vendor/cache/polyglot-0.3.3.gem +0 -0
- data/vendor/cache/rdoc-3.10.gem +0 -0
- data/vendor/cache/rspec-2.6.0.gem +0 -0
- data/vendor/cache/rspec-core-2.6.4.gem +0 -0
- data/vendor/cache/rspec-expectations-2.6.0.gem +0 -0
- data/vendor/cache/rspec-mocks-2.6.0.gem +0 -0
- data/vendor/cache/rspec-rails-2.6.1.gem +0 -0
- data/vendor/cache/rubydora-0.2.3.gem +0 -0
- data/vendor/cache/stomp-1.1.10.gem +0 -0
- metadata +22 -23
- data/vendor/cache/curb-0.7.15.gem +0 -0
- data/vendor/cache/factory_girl-2.2.0.gem +0 -0
- data/vendor/cache/ffi-1.0.10.gem +0 -0
- data/vendor/cache/gherkin-2.5.4.gem +0 -0
- data/vendor/cache/jettywrapper-1.0.1.gem +0 -0
- data/vendor/cache/polyglot-0.3.2.gem +0 -0
- data/vendor/cache/rdoc-3.11.gem +0 -0
- data/vendor/cache/rspec-2.7.0.gem +0 -0
- data/vendor/cache/rspec-core-2.7.1.gem +0 -0
- data/vendor/cache/rspec-expectations-2.7.0.gem +0 -0
- data/vendor/cache/rspec-mocks-2.7.0.gem +0 -0
- data/vendor/cache/rspec-rails-2.7.0.gem +0 -0
- data/vendor/cache/rubydora-0.1.9.gem +0 -0
- data/vendor/cache/stomp-1.1.9.gem +0 -0
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hydra-head (3.
|
4
|
+
hydra-head (3.1.0.pre2)
|
5
5
|
RedCloth (= 4.2.3)
|
6
|
-
active-fedora (~> 3.1.
|
6
|
+
active-fedora (~> 3.1.1)
|
7
7
|
blacklight (= 3.0.0)
|
8
8
|
block_helpers
|
9
9
|
builder
|
@@ -55,7 +55,7 @@ GEM
|
|
55
55
|
rack-mount (~> 0.6.14)
|
56
56
|
rack-test (~> 0.5.7)
|
57
57
|
tzinfo (~> 0.3.23)
|
58
|
-
active-fedora (3.1.
|
58
|
+
active-fedora (3.1.1)
|
59
59
|
activeresource (~> 3.0.0)
|
60
60
|
activesupport (~> 3.0.0)
|
61
61
|
equivalent-xml
|
@@ -67,7 +67,7 @@ GEM
|
|
67
67
|
om (>= 1.4.3)
|
68
68
|
rdf
|
69
69
|
rdf-rdfxml
|
70
|
-
rubydora (
|
70
|
+
rubydora (= 0.2.3)
|
71
71
|
solr-ruby (>= 0.0.6)
|
72
72
|
solrizer (> 1.0.0)
|
73
73
|
xml-simple (>= 1.0.12)
|
@@ -120,7 +120,7 @@ GEM
|
|
120
120
|
capybara (>= 1.1.1)
|
121
121
|
cucumber (>= 1.1.0)
|
122
122
|
nokogiri (>= 1.5.0)
|
123
|
-
curb (0.7.
|
123
|
+
curb (0.7.16)
|
124
124
|
daemons (1.1.4)
|
125
125
|
database_cleaner (0.6.7)
|
126
126
|
diff-lcs (1.1.3)
|
@@ -129,11 +129,11 @@ GEM
|
|
129
129
|
erubis (2.6.6)
|
130
130
|
abstract (>= 1.0.0)
|
131
131
|
facets (2.8.4)
|
132
|
-
factory_girl (2.2
|
132
|
+
factory_girl (2.1.2)
|
133
133
|
activesupport
|
134
134
|
fastercsv (1.5.4)
|
135
|
-
ffi (1.0.
|
136
|
-
gherkin (2.5.
|
135
|
+
ffi (1.0.9)
|
136
|
+
gherkin (2.5.2)
|
137
137
|
json (>= 1.4.6)
|
138
138
|
gyoku (0.4.4)
|
139
139
|
builder (>= 2.1.2)
|
@@ -144,7 +144,7 @@ GEM
|
|
144
144
|
httpi (0.9.5)
|
145
145
|
rack
|
146
146
|
i18n (0.5.0)
|
147
|
-
jettywrapper (1.0.
|
147
|
+
jettywrapper (1.0.2)
|
148
148
|
activesupport (>= 3.0.0)
|
149
149
|
childprocess
|
150
150
|
i18n
|
@@ -178,7 +178,7 @@ GEM
|
|
178
178
|
om (1.4.3)
|
179
179
|
mediashelf-loggable
|
180
180
|
nokogiri (>= 1.4.2)
|
181
|
-
polyglot (0.3.
|
181
|
+
polyglot (0.3.3)
|
182
182
|
rack (1.2.4)
|
183
183
|
rack-mount (0.6.14)
|
184
184
|
rack (>= 1.0.0)
|
@@ -205,7 +205,7 @@ GEM
|
|
205
205
|
rdf-rdfxml (0.3.5)
|
206
206
|
nokogiri (>= 1.4.4)
|
207
207
|
rdf (>= 0.3.4)
|
208
|
-
rdoc (3.
|
208
|
+
rdoc (3.10)
|
209
209
|
json (~> 1.4)
|
210
210
|
rest-client (1.6.7)
|
211
211
|
mime-types (>= 1.16)
|
@@ -213,25 +213,25 @@ GEM
|
|
213
213
|
builder (>= 2.1.2)
|
214
214
|
rsolr-ext (1.0.3)
|
215
215
|
rsolr (>= 1.0.2)
|
216
|
-
rspec (2.
|
217
|
-
rspec-core (~> 2.
|
218
|
-
rspec-expectations (~> 2.
|
219
|
-
rspec-mocks (~> 2.
|
220
|
-
rspec-core (2.
|
221
|
-
rspec-expectations (2.
|
216
|
+
rspec (2.6.0)
|
217
|
+
rspec-core (~> 2.6.0)
|
218
|
+
rspec-expectations (~> 2.6.0)
|
219
|
+
rspec-mocks (~> 2.6.0)
|
220
|
+
rspec-core (2.6.4)
|
221
|
+
rspec-expectations (2.6.0)
|
222
222
|
diff-lcs (~> 1.1.2)
|
223
|
-
rspec-mocks (2.
|
224
|
-
rspec-rails (2.
|
223
|
+
rspec-mocks (2.6.0)
|
224
|
+
rspec-rails (2.6.1)
|
225
225
|
actionpack (~> 3.0)
|
226
226
|
activesupport (~> 3.0)
|
227
227
|
railties (~> 3.0)
|
228
|
-
rspec (~> 2.
|
228
|
+
rspec (~> 2.6.0)
|
229
229
|
ruby-debug (0.10.4)
|
230
230
|
columnize (>= 0.1)
|
231
231
|
ruby-debug-base (~> 0.10.4.0)
|
232
232
|
ruby-debug-base (0.10.4)
|
233
233
|
linecache (>= 0.3)
|
234
|
-
rubydora (0.
|
234
|
+
rubydora (0.2.3)
|
235
235
|
activemodel
|
236
236
|
activesupport
|
237
237
|
fastercsv
|
@@ -269,7 +269,7 @@ GEM
|
|
269
269
|
rsolr
|
270
270
|
solr-ruby (>= 0.0.6)
|
271
271
|
solrizer (>= 1.0.0)
|
272
|
-
stomp (1.1.
|
272
|
+
stomp (1.1.10)
|
273
273
|
term-ansicolor (1.0.7)
|
274
274
|
thor (0.14.6)
|
275
275
|
treetop (1.4.10)
|
@@ -0,0 +1,8 @@
|
|
1
|
+
h2. 3.0.0
|
2
|
+
|
3
|
+
If you have been testing out the Release Candidates, you need to add this line to your CatalogController:
|
4
|
+
|
5
|
+
<pre>
|
6
|
+
# This filters out objects that you want to exclude from search results. By default, it filters out FileAssets
|
7
|
+
CatalogController.solr_search_params_logic << :exclude_unwanted_models
|
8
|
+
</pre>
|
@@ -12,6 +12,7 @@ class AssetsController < ApplicationController
|
|
12
12
|
helper :hydra
|
13
13
|
|
14
14
|
before_filter :search_session, :history_session
|
15
|
+
before_filter :load_document, :only => :update # allows other filters to operate on the document before the update method is called
|
15
16
|
before_filter :require_solr
|
16
17
|
|
17
18
|
# need to include this after the :require_solr/fedora before filters because of the before filter that the workflow provides.
|
@@ -54,8 +55,6 @@ class AssetsController < ApplicationController
|
|
54
55
|
# @example Sets the 1st and 2nd "medium" values on the descMetadata datastream in the _PID_ document, overwriting any existing values.
|
55
56
|
# put :update, :id=>"_PID_", "asset"=>{"descMetadata"=>{"medium"=>{"0"=>"Paper Document", "1"=>"Image"}}
|
56
57
|
def update
|
57
|
-
@document = load_document_from_params
|
58
|
-
|
59
58
|
logger.debug("attributes submitted: #{@sanitized_params.inspect}")
|
60
59
|
|
61
60
|
@response = update_document(@document, @sanitized_params)
|
@@ -114,10 +113,12 @@ class AssetsController < ApplicationController
|
|
114
113
|
# This is a method to simply remove the item from SOLR but keep the object in fedora.
|
115
114
|
alias_method :withdraw, :destroy
|
116
115
|
|
117
|
-
#def withdraw
|
118
|
-
#
|
119
|
-
#end
|
120
116
|
protected
|
117
|
+
|
118
|
+
def load_document
|
119
|
+
@document = load_document_from_params
|
120
|
+
end
|
121
|
+
|
121
122
|
|
122
123
|
def mods_assets_update_validation
|
123
124
|
desc_metadata = params[:asset][:descMetadata]
|
data/hydra-head.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
|
15
15
|
s.add_dependency "rails", '~> 3.0.10'
|
16
16
|
s.add_dependency "blacklight", '3.0.0'
|
17
|
-
s.add_dependency "active-fedora", '~>3.1.
|
17
|
+
s.add_dependency "active-fedora", '~>3.1.1'
|
18
18
|
s.add_dependency 'builder'
|
19
19
|
s.add_dependency 'columnize'
|
20
20
|
s.add_dependency 'crack'
|
@@ -119,7 +119,9 @@ EOF
|
|
119
119
|
"\n before_filter :enforce_access_controls" +
|
120
120
|
"\n before_filter :enforce_viewing_context_for_show_requests, :only=>:show" +
|
121
121
|
"\n # This applies appropriate access controls to all solr queries" +
|
122
|
-
"\n CatalogController.solr_search_params_logic << :add_access_controls_to_solr_params"
|
122
|
+
"\n CatalogController.solr_search_params_logic << :add_access_controls_to_solr_params" +
|
123
|
+
"\n # This filters out objects that you want to exclude from search results, like FileAssets" +
|
124
|
+
"\n CatalogController.solr_search_params_logic << :exclude_unwanted_models"
|
123
125
|
end
|
124
126
|
else
|
125
127
|
puts " \e[31mFailure\e[0m Could not find #{model_name.underscore}.rb. To add Hydra behaviors to your Blacklight::Catalog Controllers, you must include the Hydra::Controller module in the Controller class definition. See the Hydra::Controller section in the Hydra API Docs for more info."
|
@@ -42,6 +42,13 @@ Blacklight.configure(:shared) do |config|
|
|
42
42
|
# TODO: Reorganize facet data structures supplied in config to make simpler
|
43
43
|
# for human reading/writing, kind of like search_fields. Eg,
|
44
44
|
# config[:facet] << {:field_name => "format", :label => "Format", :limit => 10}
|
45
|
+
#
|
46
|
+
# Hydra uses active_fedora_model_s by default for displaying Format because that field is automatically
|
47
|
+
# populated by active-fedora from your RELS-EXT. You can change this to anything you want to use though.
|
48
|
+
# for example, the sample Hydra::ModsAsset Datastream Class adds object_type_facet = "Article" in its to_solr method.\
|
49
|
+
# You could use that as the format field instead of active_fedora_model_s to have a more nicer value displayed.
|
50
|
+
#
|
51
|
+
#
|
45
52
|
config[:facet] = {
|
46
53
|
:field_names => (facet_fields = [
|
47
54
|
"object_type_facet",
|
@@ -1,4 +1,8 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<!--
|
3
|
+
IMPORTANT
|
4
|
+
This copy of the solr schema is only used in the context of testing hydra-head. If you want to make changes available to individual hydra heads, you must apply them to the template in lib/generators/hydra/templates/solr_config
|
5
|
+
-->
|
2
6
|
<schema name="Hydra" version="1.1">
|
3
7
|
<!-- For complete comments from the Solr project example schema.xml:
|
4
8
|
http://svn.apache.org/viewvc/lucene/dev/trunk/solr/example/solr/conf/schema.xml?view=markup
|
@@ -91,7 +95,7 @@
|
|
91
95
|
<field name="format" type="string" indexed="true" stored="true"/>
|
92
96
|
<!-- pub_date is assumed by Blacklight's default configuration, so we must define it here to avoid errors -->
|
93
97
|
<field name="pub_date" type="string" indexed="true" stored="true" multiValued="true"/>
|
94
|
-
|
98
|
+
|
95
99
|
<dynamicField name="*_i" type="sint" indexed="true" stored="true"/>
|
96
100
|
<dynamicField name="*_s" type="string" indexed="true" stored="true" multiValued="true"/>
|
97
101
|
<dynamicField name="*_l" type="slong" indexed="true" stored="true"/>
|
@@ -114,5 +118,7 @@
|
|
114
118
|
<defaultSearchField>text</defaultSearchField>
|
115
119
|
<solrQueryParser defaultOperator="AND" />
|
116
120
|
<copyField source="*_facet" dest="text" />
|
121
|
+
<copyField source="*_t" dest="text" />
|
122
|
+
<copyField source="*_s" dest="text" />
|
117
123
|
|
118
124
|
</schema>
|
@@ -82,51 +82,121 @@
|
|
82
82
|
</lst>
|
83
83
|
</requestHandler>
|
84
84
|
|
85
|
-
<!--
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
85
|
+
<!-- Searching ("All Fields") -->
|
86
|
+
<requestHandler name="search" class="solr.SearchHandler" default="true">
|
87
|
+
<lst name="defaults">
|
88
|
+
<str name="defType">dismax</str>
|
89
|
+
<str name="echoParams">explicit</str>
|
90
|
+
<str name="q.alt">*:*</str>
|
91
|
+
<str name="mm">2<-1 5<-2 6<90%</str>
|
92
|
+
<!-- this qf and pf are used by default, if not otherwise specified by
|
93
|
+
client. The default blacklight_config will use these for the
|
94
|
+
"keywords" search. See the author_qf/author_pf, title_qf, etc
|
95
|
+
below, which the default blacklight_config will specify for
|
96
|
+
those searches. You may also be interested in:
|
97
|
+
http://wiki.apache.org/solr/LocalParams
|
98
|
+
-->
|
99
|
+
<str name="qf">
|
100
|
+
id
|
101
|
+
title_t^25000
|
102
|
+
text
|
103
|
+
active_fedora_model_s
|
104
|
+
object_type_facet
|
105
|
+
</str>
|
106
|
+
<str name="pf">
|
107
|
+
id
|
108
|
+
title_t^250000
|
109
|
+
text^10
|
110
|
+
active_fedora_model_s
|
111
|
+
object_type_facet
|
112
|
+
</str>
|
113
|
+
<str name="author_qf">
|
114
|
+
author_unstem_search^200
|
115
|
+
author_addl_unstem_search^50
|
116
|
+
author_t^20
|
117
|
+
author_addl_t
|
118
|
+
</str>
|
119
|
+
<str name="author_pf">
|
120
|
+
author_unstem_search^2000
|
121
|
+
author_addl_unstem_search^500
|
122
|
+
author_t^200
|
123
|
+
author_addl_t^10
|
124
|
+
</str>
|
125
|
+
<str name="title_qf">
|
126
|
+
title_unstem_search^50000
|
127
|
+
subtitle_unstem_search^25000
|
128
|
+
title_addl_unstem_search^10000
|
129
|
+
title_t^5000
|
130
|
+
subtitle_t^2500
|
131
|
+
title_addl_t^100
|
132
|
+
title_added_entry_unstem_search^50
|
133
|
+
title_added_entry_t^10
|
134
|
+
title_series_unstem_search^5
|
135
|
+
title_series_t
|
136
|
+
</str>
|
137
|
+
<str name="title_pf">
|
138
|
+
title_unstem_search^500000
|
139
|
+
subtitle_unstem_search^250000
|
140
|
+
title_addl_unstem_search^100000
|
141
|
+
title_t^50000
|
142
|
+
subtitle_t^25000
|
143
|
+
title_addl_t^1000
|
144
|
+
title_added_entry_unstem_search^500
|
145
|
+
title_added_entry_t^100
|
146
|
+
title_series_t^50
|
147
|
+
title_series_unstem_search^10
|
148
|
+
</str>
|
149
|
+
<str name="subject_qf">
|
150
|
+
subject_topic_unstem_search^200
|
151
|
+
subject_unstem_search^125
|
152
|
+
subject_topic_facet^100
|
153
|
+
subject_t^50
|
154
|
+
subject_addl_unstem_search^10
|
155
|
+
subject_addl_t
|
156
|
+
</str>
|
157
|
+
<str name="subject_pf">
|
158
|
+
subject_topic_unstem_search^2000
|
159
|
+
subject_unstem_search^1250
|
160
|
+
subject_t^1000
|
161
|
+
subject_topic_facet^500
|
162
|
+
subject_addl_unstem_search^100
|
163
|
+
subject_addl_t^10
|
164
|
+
</str>
|
90
165
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
object_type_facet, department_facet, peer_reviewed_facet
|
126
|
-
</str>
|
127
|
-
</lst>
|
128
|
-
</requestHandler>
|
129
|
-
|
166
|
+
|
167
|
+
<int name="ps">3</int>
|
168
|
+
<float name="tie">0.01</float>
|
169
|
+
|
170
|
+
<!-- NOT using marc_display because it is large and will slow things down for search results -->
|
171
|
+
<str name="fl">
|
172
|
+
*,score
|
173
|
+
</str>
|
174
|
+
|
175
|
+
<str name="facet">true</str>
|
176
|
+
<str name="facet.mincount">1</str>
|
177
|
+
<str name="facet.limit">10</str>
|
178
|
+
<str name="facet.field">format</str>
|
179
|
+
<str name="facet.field">lc_1letter_facet</str>
|
180
|
+
<str name="facet.field">lc_alpha_facet</str>
|
181
|
+
<str name="facet.field">lc_b4cutter_facet</str>
|
182
|
+
<str name="facet.field">language_facet</str>
|
183
|
+
<str name="facet.field">pub_date</str>
|
184
|
+
<str name="facet.field">subject_era_facet</str>
|
185
|
+
<str name="facet.field">subject_geo_facet</str>
|
186
|
+
<str name="facet.field">subject_topic_facet</str>
|
187
|
+
|
188
|
+
<str name="spellcheck">true</str>
|
189
|
+
<str name="spellcheck.dictionary">default</str>
|
190
|
+
<str name="spellcheck.onlyMorePopular">true</str>
|
191
|
+
<str name="spellcheck.extendedResults">true</str>
|
192
|
+
<str name="spellcheck.collate">false</str>
|
193
|
+
<str name="spellcheck.count">5</str>
|
194
|
+
</lst>
|
195
|
+
<arr name="last-components">
|
196
|
+
<str>spellcheck</str>
|
197
|
+
</arr>
|
198
|
+
</requestHandler>
|
199
|
+
|
130
200
|
<requestHandler name="public_search" class="solr.SearchHandler" >
|
131
201
|
<lst name="defaults">
|
132
202
|
<!-- Making defType lucene to exclude file assets -->
|
@@ -137,6 +207,8 @@
|
|
137
207
|
<!-- dismax params -->
|
138
208
|
<str name="mm"> 2<-1 5<-2 6<90% </str>
|
139
209
|
<str name="q.alt">*:*</str>
|
210
|
+
<str name="qf">id^0.8 id_t^0.8 format text^0.3 journal_issn_t</str>
|
211
|
+
<str name="pf">id^0.9 id_t^0.9 text^0.5 journal_issn_t</str>
|
140
212
|
<str name="qf_dismax">id^0.8 id_t^0.8 format text^0.3</str>
|
141
213
|
<str name="pf_dismax">id^0.9 id_t^0.9 text^0.5</str>
|
142
214
|
<int name="ps">100</int>
|
@@ -146,17 +218,7 @@
|
|
146
218
|
<str name="facet.mincount">1</str>
|
147
219
|
<str name="echoParams">explicit</str>
|
148
220
|
<str name="fl">
|
149
|
-
|
150
|
-
person_0_role_t,person_1_role_t,person_2_role_t,person_3_role_t,person_4_role_t,person_5_role_t,person_6_role_t,person_7_role_t,person_8_role_t,person_9_role_t,
|
151
|
-
person_0_first_name_t,person_1_first_name_t,person_2_first_name_t,person_3_first_name_t,person_4_first_name_t,person_5_first_name_t,person_6_first_name_t,person_7_first_name_t,person_8_first_name_t,person_9_first_name_t,
|
152
|
-
person_0_last_name_t,person_1_last_name_t,person_2_last_name_t,person_3_last_name_t,person_4_last_name_t,person_5_last_name_t,person_6_last_name_t,person_7_last_name_t,person_8_last_name_t,person_9_last_name_t,depositor_t,
|
153
|
-
|
154
|
-
journal_title_info_t, journal_title_info_main_title_t, journal_issue_publication_date_t, journal_issue_pages_start_t, journal_issue_pages_end_t, journal_issue_volume_t, journal_issue_start_page_t, journal_issue_end_page_t, abstract_t,
|
155
|
-
person_0_institution_t,person_1_institution_t,person_2_institution_t,person_3_institution_t,person_4_institution_t,person_5_institution_t,person_institution_role_t,
|
156
|
-
person_7_institution_t,person_8_institution_t,person_9_institution_t,
|
157
|
-
mods_gps_t, mods_region_t, mods_site_t, mods_ecosystem_t,
|
158
|
-
mods_timespan_start_t, mods_timespan_end_t, description_t, mods_title_info_t,mods_0_title_info_0_main_title_t, embargo_release_date_dt, note_t,
|
159
|
-
object_type_facet, department_facet, peer_reviewed_facet
|
221
|
+
*,score
|
160
222
|
</str>
|
161
223
|
</lst>
|
162
224
|
</requestHandler>
|
data/lib/hydra-head/version.rb
CHANGED
@@ -172,13 +172,46 @@ module Hydra::AccessControlsEnforcement
|
|
172
172
|
# @param solr_parameters the current solr parameters
|
173
173
|
# @param user_parameters the current user-subitted parameters
|
174
174
|
def apply_gated_discovery(solr_parameters, user_parameters)
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
175
|
+
solr_parameters[:fq] ||= []
|
176
|
+
# Grant access to public content
|
177
|
+
permission_types = ["edit","discover","read"]
|
178
|
+
user_access_filters = []
|
179
|
+
|
180
|
+
permission_types.each do |type|
|
181
|
+
user_access_filters << "#{type}_access_group_t:public"
|
182
|
+
end
|
183
|
+
|
184
|
+
# Grant access based on user id & role
|
185
|
+
unless current_user.nil?
|
186
|
+
# for roles
|
187
|
+
RoleMapper.roles(current_user.login).each_with_index do |role, i|
|
188
|
+
permission_types.each do |type|
|
189
|
+
user_access_filters << "#{type}_access_group_t:#{role}"
|
190
|
+
end
|
191
|
+
end
|
192
|
+
# for individual person access
|
193
|
+
permission_types.each do |type|
|
194
|
+
user_access_filters << "#{type}_access_person_t:#{current_user.login}"
|
195
|
+
end
|
196
|
+
if current_user.is_being_superuser?(session)
|
197
|
+
permission_types.each do |type|
|
198
|
+
user_access_filters << "#{type}_access_person_t:[* TO *]"
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
# Enforcing Embargo at Query time has been disabled.
|
203
|
+
# If you want to do this, set up your own solr_search_params before_filter that injects the appropriate :fq constraints for a field that expresses your objects' embargo status.
|
204
|
+
#
|
205
|
+
# include docs in results if the embargo date is NOT in the future OR if the current user is depositor
|
206
|
+
# embargo_query = "(NOT embargo_release_date_dt:[NOW TO *]) OR depositor_t:#{current_user.login}"
|
207
|
+
# embargo_query = "(NOT embargo_release_date_dt:[NOW TO *]) OR (embargo_release_date_dt:[NOW TO *] AND depositor_t:#{current_user.login}) AND NOT (NOT depositor_t:#{current_user.login} AND embargo_release_date_dt:[NOW TO *])"
|
208
|
+
# solr_parameters[:fq] << embargo_query
|
209
|
+
end
|
210
|
+
solr_parameters[:fq] << user_access_filters.join(" OR ")
|
211
|
+
logger.debug("Solr parameters: #{ solr_parameters.inspect }")
|
180
212
|
end
|
181
213
|
|
214
|
+
|
182
215
|
# proxy for {enforce_index_permissions}
|
183
216
|
def enforce_search_permissions
|
184
217
|
enforce_index_permissions
|
@@ -188,10 +221,19 @@ module Hydra::AccessControlsEnforcement
|
|
188
221
|
def enforce_read_permissions
|
189
222
|
enforce_show_permissions
|
190
223
|
end
|
224
|
+
|
225
|
+
# This filters out objects that you want to exclude from search results. By default it only excludes FileAssets
|
226
|
+
# @param solr_parameters the current solr parameters
|
227
|
+
# @param user_parameters the current user-subitted parameters
|
228
|
+
def exclude_unwanted_models(solr_parameters, user_parameters)
|
229
|
+
solr_parameters[:fq] ||= []
|
230
|
+
solr_parameters[:fq] << "-has_model_s:\"info:fedora/afmodel:FileAsset\""
|
231
|
+
end
|
191
232
|
|
192
233
|
# Build the lucene query that performs gated discovery based on Hydra rightsMetadata information in Solr
|
193
234
|
# @param [String] user_query the user's original query request that will be wrapped in access controls
|
194
235
|
def build_lucene_query(user_query)
|
236
|
+
logger.warn("DEPRECATED: build_lucene_query has been deprecated. Recommended convention is to use blacklight's dismax search requestHandler (not lucene) and filter queries with :fq solr parameters. See Hydra::AccessControlsEnforcement#apply_gated_discovery and Hydra::AccessControlsEnforcement#exclude_unwanted_models")
|
195
237
|
q = ""
|
196
238
|
# start query of with user supplied query term
|
197
239
|
q << "_query_:\"{!dismax qf=$qf_dismax pf=$pf_dismax}#{user_query}\" AND " if user_query
|
@@ -25,7 +25,7 @@ namespace :hydra do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
desc "Delete the object identified by pid. Example: rake hydra:delete pid=demo:12"
|
28
|
-
task :delete => :
|
28
|
+
task :delete => :environment do
|
29
29
|
# If a destination url has been provided, attampt to export from the fedora repository there.
|
30
30
|
if ENV["destination"]
|
31
31
|
Fedora::Repository.register(ENV["destination"])
|
data/solr_conf/conf/schema.xml
CHANGED
@@ -118,5 +118,7 @@ This copy of the solr schema is only used in the context of testing hydra-head.
|
|
118
118
|
<defaultSearchField>text</defaultSearchField>
|
119
119
|
<solrQueryParser defaultOperator="AND" />
|
120
120
|
<copyField source="*_facet" dest="text" />
|
121
|
+
<copyField source="*_t" dest="text" />
|
122
|
+
<copyField source="*_s" dest="text" />
|
121
123
|
|
122
124
|
</schema>
|
@@ -82,36 +82,121 @@
|
|
82
82
|
</lst>
|
83
83
|
</requestHandler>
|
84
84
|
|
85
|
-
<!--
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
85
|
+
<!-- Searching ("All Fields") -->
|
86
|
+
<requestHandler name="search" class="solr.SearchHandler" default="true">
|
87
|
+
<lst name="defaults">
|
88
|
+
<str name="defType">dismax</str>
|
89
|
+
<str name="echoParams">explicit</str>
|
90
|
+
<str name="q.alt">*:*</str>
|
91
|
+
<str name="mm">2<-1 5<-2 6<90%</str>
|
92
|
+
<!-- this qf and pf are used by default, if not otherwise specified by
|
93
|
+
client. The default blacklight_config will use these for the
|
94
|
+
"keywords" search. See the author_qf/author_pf, title_qf, etc
|
95
|
+
below, which the default blacklight_config will specify for
|
96
|
+
those searches. You may also be interested in:
|
97
|
+
http://wiki.apache.org/solr/LocalParams
|
98
|
+
-->
|
99
|
+
<str name="qf">
|
100
|
+
id
|
101
|
+
title_t^25000
|
102
|
+
text
|
103
|
+
active_fedora_model_s
|
104
|
+
object_type_facet
|
105
|
+
</str>
|
106
|
+
<str name="pf">
|
107
|
+
id
|
108
|
+
title_t^250000
|
109
|
+
text^10
|
110
|
+
active_fedora_model_s
|
111
|
+
object_type_facet
|
112
|
+
</str>
|
113
|
+
<str name="author_qf">
|
114
|
+
author_unstem_search^200
|
115
|
+
author_addl_unstem_search^50
|
116
|
+
author_t^20
|
117
|
+
author_addl_t
|
118
|
+
</str>
|
119
|
+
<str name="author_pf">
|
120
|
+
author_unstem_search^2000
|
121
|
+
author_addl_unstem_search^500
|
122
|
+
author_t^200
|
123
|
+
author_addl_t^10
|
124
|
+
</str>
|
125
|
+
<str name="title_qf">
|
126
|
+
title_unstem_search^50000
|
127
|
+
subtitle_unstem_search^25000
|
128
|
+
title_addl_unstem_search^10000
|
129
|
+
title_t^5000
|
130
|
+
subtitle_t^2500
|
131
|
+
title_addl_t^100
|
132
|
+
title_added_entry_unstem_search^50
|
133
|
+
title_added_entry_t^10
|
134
|
+
title_series_unstem_search^5
|
135
|
+
title_series_t
|
136
|
+
</str>
|
137
|
+
<str name="title_pf">
|
138
|
+
title_unstem_search^500000
|
139
|
+
subtitle_unstem_search^250000
|
140
|
+
title_addl_unstem_search^100000
|
141
|
+
title_t^50000
|
142
|
+
subtitle_t^25000
|
143
|
+
title_addl_t^1000
|
144
|
+
title_added_entry_unstem_search^500
|
145
|
+
title_added_entry_t^100
|
146
|
+
title_series_t^50
|
147
|
+
title_series_unstem_search^10
|
148
|
+
</str>
|
149
|
+
<str name="subject_qf">
|
150
|
+
subject_topic_unstem_search^200
|
151
|
+
subject_unstem_search^125
|
152
|
+
subject_topic_facet^100
|
153
|
+
subject_t^50
|
154
|
+
subject_addl_unstem_search^10
|
155
|
+
subject_addl_t
|
156
|
+
</str>
|
157
|
+
<str name="subject_pf">
|
158
|
+
subject_topic_unstem_search^2000
|
159
|
+
subject_unstem_search^1250
|
160
|
+
subject_t^1000
|
161
|
+
subject_topic_facet^500
|
162
|
+
subject_addl_unstem_search^100
|
163
|
+
subject_addl_t^10
|
164
|
+
</str>
|
90
165
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
166
|
+
|
167
|
+
<int name="ps">3</int>
|
168
|
+
<float name="tie">0.01</float>
|
169
|
+
|
170
|
+
<!-- NOT using marc_display because it is large and will slow things down for search results -->
|
171
|
+
<str name="fl">
|
172
|
+
*,score
|
173
|
+
</str>
|
174
|
+
|
175
|
+
<str name="facet">true</str>
|
176
|
+
<str name="facet.mincount">1</str>
|
177
|
+
<str name="facet.limit">10</str>
|
178
|
+
<str name="facet.field">format</str>
|
179
|
+
<str name="facet.field">lc_1letter_facet</str>
|
180
|
+
<str name="facet.field">lc_alpha_facet</str>
|
181
|
+
<str name="facet.field">lc_b4cutter_facet</str>
|
182
|
+
<str name="facet.field">language_facet</str>
|
183
|
+
<str name="facet.field">pub_date</str>
|
184
|
+
<str name="facet.field">subject_era_facet</str>
|
185
|
+
<str name="facet.field">subject_geo_facet</str>
|
186
|
+
<str name="facet.field">subject_topic_facet</str>
|
187
|
+
|
188
|
+
<str name="spellcheck">true</str>
|
189
|
+
<str name="spellcheck.dictionary">default</str>
|
190
|
+
<str name="spellcheck.onlyMorePopular">true</str>
|
191
|
+
<str name="spellcheck.extendedResults">true</str>
|
192
|
+
<str name="spellcheck.collate">false</str>
|
193
|
+
<str name="spellcheck.count">5</str>
|
194
|
+
</lst>
|
195
|
+
<arr name="last-components">
|
196
|
+
<str>spellcheck</str>
|
197
|
+
</arr>
|
198
|
+
</requestHandler>
|
199
|
+
|
115
200
|
<requestHandler name="public_search" class="solr.SearchHandler" >
|
116
201
|
<lst name="defaults">
|
117
202
|
<!-- Making defType lucene to exclude file assets -->
|
@@ -122,6 +207,8 @@
|
|
122
207
|
<!-- dismax params -->
|
123
208
|
<str name="mm"> 2<-1 5<-2 6<90% </str>
|
124
209
|
<str name="q.alt">*:*</str>
|
210
|
+
<str name="qf">id^0.8 id_t^0.8 format text^0.3 journal_issn_t</str>
|
211
|
+
<str name="pf">id^0.9 id_t^0.9 text^0.5 journal_issn_t</str>
|
125
212
|
<str name="qf_dismax">id^0.8 id_t^0.8 format text^0.3</str>
|
126
213
|
<str name="pf_dismax">id^0.9 id_t^0.9 text^0.5</str>
|
127
214
|
<int name="ps">100</int>
|
@@ -1,14 +1,8 @@
|
|
1
1
|
Feature: Objects Without Models - Search Results
|
2
2
|
I want to see appropriate information in search results for objects without an (active)fedora model
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
And I am on the home page
|
7
|
-
And I fill in "q" with "test"
|
8
|
-
When I press "submit"
|
9
|
-
Then I should see a link to "the show document page for hydra:test_no_model"
|
10
|
-
|
11
|
-
# you can't see this object unless you are an editor
|
4
|
+
# Objects without a model, are not ever displayed because they don't have rightsMetadata
|
5
|
+
|
12
6
|
Scenario: html5 valid - unauthenticated
|
13
7
|
When I am on the home page
|
14
8
|
And I fill in "q" with "test"
|
@@ -60,8 +60,10 @@ describe CatalogController do
|
|
60
60
|
|
61
61
|
describe "access controls" do
|
62
62
|
before(:all) do
|
63
|
-
@public_only_results = Blacklight.solr.find Hash[:
|
64
|
-
@
|
63
|
+
@public_only_results = Blacklight.solr.find Hash[:fq=>"access_t:public"]
|
64
|
+
# @public_only_results = Blacklight.solr.find Hash[:phrases=>{:access_t=>"public"}]
|
65
|
+
# @private_only_results = Blacklight.solr.find Hash[:phrases=>{:access_t=>"private"}]
|
66
|
+
@private_only_results = Blacklight.solr.find Hash[:fq=>"access_t:private"]
|
65
67
|
end
|
66
68
|
|
67
69
|
it "should only return public documents if role does not have permissions" do
|
@@ -72,7 +74,8 @@ describe CatalogController do
|
|
72
74
|
it "should return all documents if role does have permissions" do
|
73
75
|
User.any_instance.stubs(:login).returns("BigWig")
|
74
76
|
mock_user = User.new
|
75
|
-
session[:superuser_mode] = true
|
77
|
+
# session[:superuser_mode] = true
|
78
|
+
mock_user.stubs(:is_being_superuser?).returns(true)
|
76
79
|
controller.stubs(:current_user).returns(mock_user)
|
77
80
|
get :index
|
78
81
|
assigns(:document_list).count.should > @public_only_results.docs.count
|
@@ -2,6 +2,83 @@
|
|
2
2
|
require File.expand_path( File.join( File.dirname(__FILE__),'..','spec_helper') )
|
3
3
|
|
4
4
|
describe Hydra::AccessControlsEnforcement do
|
5
|
+
|
6
|
+
describe "apply_gated_discovery" do
|
7
|
+
before(:each) do
|
8
|
+
@stub_user = User.new :email=>'archivist1@example.com'
|
9
|
+
@stub_user.stubs(:is_being_superuser?).returns false
|
10
|
+
@stub_user.stubs(:login).returns "fred"
|
11
|
+
RoleMapper.stubs(:roles).with(@stub_user.login).returns(["archivist","researcher"])
|
12
|
+
helper.stubs(:current_user).returns(@stub_user)
|
13
|
+
@solr_parameters = {}
|
14
|
+
@user_parameters = {}
|
15
|
+
end
|
16
|
+
it "should set query fields for the user id checking against the discover, access, read fields" do
|
17
|
+
helper.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
18
|
+
["discover","edit","read"].each do |type|
|
19
|
+
@solr_parameters[:fq].first.should match(/#{type}_access_person_t\:#{@stub_user.login}/)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
it "should set query fields for all roles the user is a member of checking against the discover, access, read fields" do
|
23
|
+
helper.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
24
|
+
["discover","edit","read"].each do |type|
|
25
|
+
@solr_parameters[:fq].first.should match(/#{type}_access_group_t\:archivist/)
|
26
|
+
@solr_parameters[:fq].first.should match(/#{type}_access_group_t\:researcher/)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
# it "should filter out any content whose embargo date is in the future" do
|
30
|
+
# helper.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
31
|
+
# @solr_parameters[:fq].should include("-embargo_release_date_dt:[NOW TO *]")
|
32
|
+
# end
|
33
|
+
it "should allow content owners access to their embargoed content" do
|
34
|
+
pending
|
35
|
+
helper.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
36
|
+
@solr_parameters[:fq].should include("(NOT embargo_release_date_dt:[NOW TO *]) OR depositor_t:#{@stub_user.login}")
|
37
|
+
|
38
|
+
# @solr_parameters[:fq].should include("embargo_release_date_dt:[NOW TO *] AND depositor_t:#{current_user.login}) AND NOT (NOT depositor_t:#{current_user.login} AND embargo_release_date_dt:[NOW TO *]")
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "for superusers" do
|
42
|
+
it "should return superuser access level" do
|
43
|
+
stub_user = User.new
|
44
|
+
stub_user.stubs(:login).returns "suzie"
|
45
|
+
stub_user.stubs(:is_being_superuser?).returns true
|
46
|
+
RoleMapper.stubs(:roles).with(stub_user.login).returns(["archivist","researcher"])
|
47
|
+
helper.stubs(:current_user).returns(stub_user)
|
48
|
+
helper.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
49
|
+
["discover","edit","read"].each do |type|
|
50
|
+
@solr_parameters[:fq].first.should match(/#{type}_access_person_t\:\[\* TO \*\]/)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
it "should not return superuser access to non-superusers" do
|
54
|
+
stub_user = User.new
|
55
|
+
stub_user.stubs(:login).returns "suzie"
|
56
|
+
stub_user.stubs(:is_being_superuser?).returns false
|
57
|
+
RoleMapper.stubs(:roles).with(stub_user.login).returns(["archivist","researcher"])
|
58
|
+
helper.stubs(:current_user).returns(stub_user)
|
59
|
+
helper.send(:apply_gated_discovery, @solr_parameters, @user_parameters)
|
60
|
+
["discover","edit","read"].each do |type|
|
61
|
+
@solr_parameters[:fq].should_not include("#{type}_access_person_t\:\[\* TO \*\]")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "exclude_unwanted_models" do
|
69
|
+
before(:each) do
|
70
|
+
stub_user = User.new :email=>'archivist1@example.com'
|
71
|
+
stub_user.stubs(:is_being_superuser?).returns false
|
72
|
+
helper.stubs(:current_user).returns(stub_user)
|
73
|
+
@solr_parameters = {}
|
74
|
+
@user_parameters = {}
|
75
|
+
end
|
76
|
+
it "should set solr query parameters to filter out FileAssets" do
|
77
|
+
helper.send(:exclude_unwanted_models, @solr_parameters, @user_parameters)
|
78
|
+
@solr_parameters[:fq].should include("-has_model_s:\"info:fedora/afmodel:FileAsset\"")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
5
82
|
describe "build_lucene_query" do
|
6
83
|
|
7
84
|
it "should return fields for all roles the user is a member of checking against the discover, access, read fields" do
|
@@ -5,7 +5,8 @@ require "nokogiri"
|
|
5
5
|
describe Hydra::RightsMetadata do
|
6
6
|
|
7
7
|
before(:each) do
|
8
|
-
|
8
|
+
# The way RubyDora loads objects prevents us from stubbing the fedora connection :(
|
9
|
+
# ActiveFedora::RubydoraConnection.stubs(:instance).returns(stub_everything())
|
9
10
|
obj = ActiveFedora::Base.new
|
10
11
|
@sample = Hydra::RightsMetadata.new(obj.inner_object, nil)
|
11
12
|
@sample.stubs(:content).returns('')
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-head
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1923832029
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 1
|
9
9
|
- 0
|
10
10
|
- pre
|
11
|
-
-
|
12
|
-
version: 3.1.0.
|
11
|
+
- 2
|
12
|
+
version: 3.1.0.pre2
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Matt Zumwalt, Bess Sadler, Julie Meloni, Naomi Dushay, Jessie Keck, John Scofield, Justin Coyne & many more. See https://github.com/projecthydra/hydra-head/contributors
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-10
|
20
|
+
date: 2011-11-10 00:00:00 -08:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -60,14 +60,12 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
hash:
|
63
|
+
hash: 1
|
64
64
|
segments:
|
65
65
|
- 3
|
66
66
|
- 1
|
67
|
-
- 0
|
68
|
-
- rc
|
69
67
|
- 1
|
70
|
-
version: 3.1.
|
68
|
+
version: 3.1.1
|
71
69
|
type: :runtime
|
72
70
|
version_requirements: *id003
|
73
71
|
- !ruby/object:Gem::Dependency
|
@@ -745,6 +743,7 @@ files:
|
|
745
743
|
- README_RAKE_TASKS.textile
|
746
744
|
- README_SUBTREE.textile
|
747
745
|
- README_TERSE.textile
|
746
|
+
- RELEASE_NOTES.textile
|
748
747
|
- Rakefile
|
749
748
|
- TESTING.textile
|
750
749
|
- TESTING_PLUGIN.textile
|
@@ -1166,7 +1165,7 @@ files:
|
|
1166
1165
|
- vendor/cache/abstract-1.0.0.gem
|
1167
1166
|
- vendor/cache/actionmailer-3.0.10.gem
|
1168
1167
|
- vendor/cache/actionpack-3.0.10.gem
|
1169
|
-
- vendor/cache/active-fedora-3.1.
|
1168
|
+
- vendor/cache/active-fedora-3.1.1.gem
|
1170
1169
|
- vendor/cache/activemodel-3.0.10.gem
|
1171
1170
|
- vendor/cache/activerecord-3.0.10.gem
|
1172
1171
|
- vendor/cache/activeresource-3.0.10.gem
|
@@ -1183,23 +1182,23 @@ files:
|
|
1183
1182
|
- vendor/cache/crack-0.3.1.gem
|
1184
1183
|
- vendor/cache/cucumber-1.1.0.gem
|
1185
1184
|
- vendor/cache/cucumber-rails-1.1.1.gem
|
1186
|
-
- vendor/cache/curb-0.7.
|
1185
|
+
- vendor/cache/curb-0.7.16.gem
|
1187
1186
|
- vendor/cache/daemons-1.1.4.gem
|
1188
1187
|
- vendor/cache/database_cleaner-0.6.7.gem
|
1189
1188
|
- vendor/cache/diff-lcs-1.1.3.gem
|
1190
1189
|
- vendor/cache/equivalent-xml-0.2.8.gem
|
1191
1190
|
- vendor/cache/erubis-2.6.6.gem
|
1192
1191
|
- vendor/cache/facets-2.8.4.gem
|
1193
|
-
- vendor/cache/factory_girl-2.2.
|
1192
|
+
- vendor/cache/factory_girl-2.1.2.gem
|
1194
1193
|
- vendor/cache/fastercsv-1.5.4.gem
|
1195
|
-
- vendor/cache/ffi-1.0.
|
1196
|
-
- vendor/cache/gherkin-2.5.
|
1194
|
+
- vendor/cache/ffi-1.0.9.gem
|
1195
|
+
- vendor/cache/gherkin-2.5.2.gem
|
1197
1196
|
- vendor/cache/gyoku-0.4.4.gem
|
1198
1197
|
- vendor/cache/haml-3.1.3.gem
|
1199
1198
|
- vendor/cache/httparty-0.8.1.gem
|
1200
1199
|
- vendor/cache/httpi-0.9.5.gem
|
1201
1200
|
- vendor/cache/i18n-0.5.0.gem
|
1202
|
-
- vendor/cache/jettywrapper-1.0.
|
1201
|
+
- vendor/cache/jettywrapper-1.0.2.gem
|
1203
1202
|
- vendor/cache/json-1.6.1.gem
|
1204
1203
|
- vendor/cache/json_pure-1.6.1.gem
|
1205
1204
|
- vendor/cache/kaminari-0.12.4.gem
|
@@ -1218,7 +1217,7 @@ files:
|
|
1218
1217
|
- vendor/cache/nokogiri-1.5.0.gem
|
1219
1218
|
- vendor/cache/nori-1.0.2.gem
|
1220
1219
|
- vendor/cache/om-1.4.3.gem
|
1221
|
-
- vendor/cache/polyglot-0.3.
|
1220
|
+
- vendor/cache/polyglot-0.3.3.gem
|
1222
1221
|
- vendor/cache/rack-1.2.4.gem
|
1223
1222
|
- vendor/cache/rack-mount-0.6.14.gem
|
1224
1223
|
- vendor/cache/rack-test-0.5.7.gem
|
@@ -1228,18 +1227,18 @@ files:
|
|
1228
1227
|
- vendor/cache/rbx-require-relative-0.0.5.gem
|
1229
1228
|
- vendor/cache/rdf-0.3.4.1.gem
|
1230
1229
|
- vendor/cache/rdf-rdfxml-0.3.5.gem
|
1231
|
-
- vendor/cache/rdoc-3.
|
1230
|
+
- vendor/cache/rdoc-3.10.gem
|
1232
1231
|
- vendor/cache/rest-client-1.6.7.gem
|
1233
1232
|
- vendor/cache/rsolr-1.0.2.gem
|
1234
1233
|
- vendor/cache/rsolr-ext-1.0.3.gem
|
1235
|
-
- vendor/cache/rspec-2.
|
1236
|
-
- vendor/cache/rspec-core-2.
|
1237
|
-
- vendor/cache/rspec-expectations-2.
|
1238
|
-
- vendor/cache/rspec-mocks-2.
|
1239
|
-
- vendor/cache/rspec-rails-2.
|
1234
|
+
- vendor/cache/rspec-2.6.0.gem
|
1235
|
+
- vendor/cache/rspec-core-2.6.4.gem
|
1236
|
+
- vendor/cache/rspec-expectations-2.6.0.gem
|
1237
|
+
- vendor/cache/rspec-mocks-2.6.0.gem
|
1238
|
+
- vendor/cache/rspec-rails-2.6.1.gem
|
1240
1239
|
- vendor/cache/ruby-debug-0.10.4.gem
|
1241
1240
|
- vendor/cache/ruby-debug-base-0.10.4.gem
|
1242
|
-
- vendor/cache/rubydora-0.
|
1241
|
+
- vendor/cache/rubydora-0.2.3.gem
|
1243
1242
|
- vendor/cache/rubyzip-0.9.4.gem
|
1244
1243
|
- vendor/cache/sanitize-2.0.3.gem
|
1245
1244
|
- vendor/cache/savon-0.9.7.gem
|
@@ -1247,7 +1246,7 @@ files:
|
|
1247
1246
|
- vendor/cache/solr-ruby-0.0.8.gem
|
1248
1247
|
- vendor/cache/solrizer-1.1.2.gem
|
1249
1248
|
- vendor/cache/solrizer-fedora-1.1.3.gem
|
1250
|
-
- vendor/cache/stomp-1.1.
|
1249
|
+
- vendor/cache/stomp-1.1.10.gem
|
1251
1250
|
- vendor/cache/term-ansicolor-1.0.7.gem
|
1252
1251
|
- vendor/cache/thor-0.14.6.gem
|
1253
1252
|
- vendor/cache/treetop-1.4.10.gem
|
Binary file
|
Binary file
|
data/vendor/cache/ffi-1.0.10.gem
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/vendor/cache/rdoc-3.11.gem
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|