hydra-core 9.10.0 → 10.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +5 -0
- data/app/controllers/concerns/hydra/controller/download_behavior.rb +0 -38
- data/lib/hydra-core.rb +1 -5
- data/lib/hydra-head/version.rb +1 -1
- data/spec/.gitignore +0 -1
- data/spec/controllers/downloads_controller_spec.rb +4 -13
- data/spec/search_builders/search_builder_spec.rb +2 -19
- data/spec/spec_helper.rb +4 -4
- metadata +7 -22
- data/app/controllers/concerns/hydra/controller/search_builder.rb +0 -8
- data/app/models/concerns/hydra/model_methods.rb +0 -66
- data/app/models/hydra/datastream/properties.rb +0 -31
- data/app/search_builders/hydra/search_builder.rb +0 -12
- data/lib/mods_asset.rb +0 -15
- data/lib/railties/hydra_jetty.rake +0 -26
- data/spec/lib/model_methods_spec.rb +0 -78
- data/spec/support/app/controllers/downloads_controller.rb +0 -3
- data/spec/support/lib/generators/test_app_generator.rb +0 -30
- data/spec/support/lib/tasks/rspec.rake +0 -8
- data/tasks/rspec.rake +0 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7909e0bdec3dbba0591ceb4204e1ca6afaffb50
|
4
|
+
data.tar.gz: 18593bc5376cf62b90f4e0ed5da2b7ce12f4138e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d75dcabf8cc6510523dcab0a7a7dc51224716d0ce9da12fa147c2eaefba0a339fdf2307d2131330b427fa6d816f08481b5c9590c554e4bf049c2850aab64d36d
|
7
|
+
data.tar.gz: 379c8cc1b8ec7e1db064e50b65d3ce881ed8f5c976022c1be50d50e41d6085654e9477392a9fc7675d6cfad67e0b627b5660c4c67c85edee1d41fbceca8aa312
|
data/Rakefile
CHANGED
@@ -2,7 +2,6 @@ module Hydra
|
|
2
2
|
module Controller
|
3
3
|
module DownloadBehavior
|
4
4
|
extend ActiveSupport::Concern
|
5
|
-
extend Deprecation
|
6
5
|
|
7
6
|
included do
|
8
7
|
include Hydra::Controller::ControllerBehavior
|
@@ -42,11 +41,6 @@ module Hydra
|
|
42
41
|
@asset ||= ActiveFedora::Base.find(params[asset_param_key])
|
43
42
|
end
|
44
43
|
|
45
|
-
def datastream
|
46
|
-
Deprecation.warn(DownloadBehavior, "datastream is deprecated and will be removed in hydra-head 10.0. Use `file` instead.")
|
47
|
-
file
|
48
|
-
end
|
49
|
-
|
50
44
|
def file
|
51
45
|
@file ||= load_file
|
52
46
|
end
|
@@ -58,21 +52,12 @@ module Hydra
|
|
58
52
|
# @return [ActiveFedora::File] the file
|
59
53
|
def load_file
|
60
54
|
file_path = params[:file]
|
61
|
-
if !file_path && params[:datastream_id]
|
62
|
-
Deprecation.warn(DownloadBehavior, "Parameter `datastream_id` is deprecated and will be removed in hydra-head 10.0. Use `file` instead.")
|
63
|
-
file_path = params[:datastream_id]
|
64
|
-
end
|
65
55
|
f = asset.attached_files[file_path] if file_path
|
66
56
|
f ||= default_file
|
67
57
|
raise "Unable to find a file for #{asset}" if f.nil?
|
68
58
|
f
|
69
59
|
end
|
70
60
|
|
71
|
-
def datastream_to_show
|
72
|
-
Deprecation.warn(DownloadBehavior, "datastream_to_show is deprecated and will be removed in hydra-head 10.0")
|
73
|
-
load_file
|
74
|
-
end
|
75
|
-
|
76
61
|
# Handle the HTTP show request
|
77
62
|
def send_content
|
78
63
|
|
@@ -92,13 +77,6 @@ module Hydra
|
|
92
77
|
{ disposition: 'inline', type: file.mime_type, filename: file_name }
|
93
78
|
end
|
94
79
|
|
95
|
-
# Override this if you'd like a different filename
|
96
|
-
# @return [String] the filename
|
97
|
-
def datastream_name
|
98
|
-
Deprecation.warn(DownloadBehavior, "datastream_name is deprecated and will be removed in hydra-head 10.0, use file_name instead")
|
99
|
-
file_name
|
100
|
-
end
|
101
|
-
|
102
80
|
# Override this if you'd like a different filename
|
103
81
|
# @return [String] the filename
|
104
82
|
def file_name
|
@@ -151,31 +129,15 @@ module Hydra
|
|
151
129
|
response.stream.close
|
152
130
|
end
|
153
131
|
|
154
|
-
def default_content_ds
|
155
|
-
Deprecation.warn(DownloadBehavior, "default_content_ds is deprecated and will be removed in hydra-head 10.0, use default_file instead")
|
156
|
-
default_file
|
157
|
-
end
|
158
|
-
|
159
132
|
def default_file
|
160
133
|
if asset.class.respond_to?(:default_file_path)
|
161
134
|
asset.attached_files[asset.class.default_file_path]
|
162
|
-
elsif asset.class.respond_to?(:default_content_ds)
|
163
|
-
Deprecation.warn(DownloadBehavior, "default_content_ds is deprecated and will be removed in hydra-head 10.0, use default_file_path instead")
|
164
|
-
asset.attached_files[asset.class.default_content_ds]
|
165
135
|
elsif asset.attached_files.key?(DownloadsController.default_file_path)
|
166
136
|
asset.attached_files[DownloadsController.default_file_path]
|
167
|
-
elsif asset.attached_files.key?(DownloadsController.default_content_dsid)
|
168
|
-
Deprecation.warn(DownloadBehavior, "DownloadsController.default_content_dsid is deprecated and will be removed in hydra-head 10.0, use default_file_path instead")
|
169
|
-
asset.attached_files[DownloadsController.default_content_dsid]
|
170
137
|
end
|
171
138
|
end
|
172
139
|
|
173
140
|
module ClassMethods
|
174
|
-
def default_content_dsid
|
175
|
-
Deprecation.warn(DownloadBehavior, "default_content_dsid is deprecated and will be removed in hydra-head 10.0, use default_file_path instead")
|
176
|
-
default_file_path
|
177
|
-
end
|
178
|
-
|
179
141
|
def default_file_path
|
180
142
|
"content"
|
181
143
|
end
|
data/lib/hydra-core.rb
CHANGED
@@ -1,11 +1,7 @@
|
|
1
1
|
require 'hydra-access-controls'
|
2
2
|
require 'deprecation'
|
3
3
|
|
4
|
-
module HydraHead
|
5
|
-
extend Deprecation
|
4
|
+
module HydraHead
|
6
5
|
require 'hydra-head/engine' if defined?(Rails)
|
7
|
-
def self.add_routes(router, options = {})
|
8
|
-
Deprecation.warn HydraHead, "add_routes has been removed." # remove this warning in hydra-head 8
|
9
|
-
end
|
10
6
|
end
|
11
7
|
|
data/lib/hydra-head/version.rb
CHANGED
data/spec/.gitignore
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
internal
|
@@ -19,7 +19,7 @@ describe DownloadsController do
|
|
19
19
|
before do
|
20
20
|
class ContentHolder < ActiveFedora::Base
|
21
21
|
include Hydra::AccessControls::Permissions
|
22
|
-
|
22
|
+
has_subresource 'thumbnail'
|
23
23
|
end
|
24
24
|
@user = User.new.tap {|u| u.email = 'email@example.com'; u.password = 'password'; u.save}
|
25
25
|
end
|
@@ -68,18 +68,9 @@ describe DownloadsController do
|
|
68
68
|
sign_in @user
|
69
69
|
allow_any_instance_of(User).to receive(:groups).and_return([])
|
70
70
|
end
|
71
|
-
describe "#show" do
|
72
|
-
it "should default to returning default download configured by object" do
|
73
|
-
allow(ContentHolder).to receive(:default_content_ds).and_return('buzz')
|
74
|
-
expect(Deprecation).to receive(:warn)
|
75
|
-
get :show, id: obj
|
76
|
-
expect(response).to be_successful
|
77
|
-
expect(response.headers['Content-Type']).to eq "image/png"
|
78
|
-
expect(response.headers["Content-Disposition"]).to eq "inline; filename=\"buzz.png\""
|
79
|
-
expect(response.body).to eq 'fizz'
|
80
|
-
end
|
81
71
|
|
82
|
-
|
72
|
+
describe "#show" do
|
73
|
+
it "defaults to returning default download configured by object" do
|
83
74
|
allow(ContentHolder).to receive(:default_file_path).and_return('buzz')
|
84
75
|
get :show, id: obj
|
85
76
|
expect(response).to be_successful
|
@@ -88,7 +79,7 @@ describe DownloadsController do
|
|
88
79
|
expect(response.body).to eq 'fizz'
|
89
80
|
end
|
90
81
|
|
91
|
-
it "
|
82
|
+
it "defaults to returning default download configured by controller" do
|
92
83
|
expect(DownloadsController.default_file_path).to eq "content"
|
93
84
|
get :show, id: obj
|
94
85
|
expect(response).to be_successful
|
@@ -8,14 +8,12 @@ describe SearchBuilder do
|
|
8
8
|
let(:search_builder) { described_class }
|
9
9
|
|
10
10
|
subject do
|
11
|
-
|
12
|
-
search_builder.new(processor_chain, context)
|
13
|
-
end
|
11
|
+
search_builder.new(processor_chain, context)
|
14
12
|
end
|
15
13
|
before { subject.current_ability = current_ability }
|
16
14
|
|
17
15
|
it "extends classes with the necessary Hydra modules" do
|
18
|
-
expect(
|
16
|
+
expect(described_class.included_modules).to include(Hydra::AccessControlsEnforcement)
|
19
17
|
end
|
20
18
|
|
21
19
|
context "when a query is generated" do
|
@@ -24,19 +22,4 @@ describe SearchBuilder do
|
|
24
22
|
subject.query
|
25
23
|
end
|
26
24
|
end
|
27
|
-
|
28
|
-
context "the deprecated Hydra::SearchBuilder" do
|
29
|
-
let(:search_builder) { Hydra::SearchBuilder }
|
30
|
-
|
31
|
-
it "extends classes with the necessary Hydra modules" do
|
32
|
-
expect(Hydra::SearchBuilder.included_modules).to include(Hydra::AccessControlsEnforcement)
|
33
|
-
end
|
34
|
-
|
35
|
-
context "when a query is generated" do
|
36
|
-
it "triggers add_access_controls_to_solr_params" do
|
37
|
-
expect(subject).to receive(:add_access_controls_to_solr_params)
|
38
|
-
subject.query
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
25
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
-
|
4
1
|
ENV["RAILS_ENV"] ||= "test"
|
5
2
|
|
6
|
-
require
|
3
|
+
require 'engine_cart'
|
4
|
+
path = File.expand_path(File.join('..', '..', '..', '.internal_test_app'), __FILE__)
|
5
|
+
EngineCart.load_application! path
|
6
|
+
|
7
7
|
require 'bundler/setup'
|
8
8
|
require 'rspec/rails'
|
9
9
|
require 'hydra-core'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 10.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt, Bess Sadler, Julie Meloni, Naomi Dushay, Jessie Keck, John Scofield,
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-05-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - '='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 10.0.0.beta1
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - '='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 10.0.0.beta1
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: sqlite3
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,19 +111,15 @@ files:
|
|
111
111
|
- app/controllers/concerns/hydra/controller/controller_behavior.rb
|
112
112
|
- app/controllers/concerns/hydra/controller/download_behavior.rb
|
113
113
|
- app/controllers/concerns/hydra/controller/ip_based_ability.rb
|
114
|
-
- app/controllers/concerns/hydra/controller/search_builder.rb
|
115
114
|
- app/helpers/blacklight_helper.rb
|
116
115
|
- app/helpers/hydra/blacklight_helper_behavior.rb
|
117
116
|
- app/models/concerns/hydra/content_negotiation.rb
|
118
|
-
- app/models/concerns/hydra/model_methods.rb
|
119
117
|
- app/models/concerns/hydra/models.rb
|
120
118
|
- app/models/concerns/hydra/solr.rb
|
121
119
|
- app/models/hydra/content_negotiation/clean_graph_repository.rb
|
122
120
|
- app/models/hydra/content_negotiation/fedora_uri_replacer.rb
|
123
121
|
- app/models/hydra/content_negotiation/graph_finder.rb
|
124
122
|
- app/models/hydra/content_negotiation/replacing_graph_finder.rb
|
125
|
-
- app/models/hydra/datastream/properties.rb
|
126
|
-
- app/search_builders/hydra/search_builder.rb
|
127
123
|
- config/locales/hydra.en.yml
|
128
124
|
- hydra-core.gemspec
|
129
125
|
- lib/application_helper.rb
|
@@ -136,9 +132,7 @@ files:
|
|
136
132
|
- lib/hydra-core.rb
|
137
133
|
- lib/hydra-head/engine.rb
|
138
134
|
- lib/hydra-head/version.rb
|
139
|
-
- lib/mods_asset.rb
|
140
135
|
- lib/railties/active-fedora.rake
|
141
|
-
- lib/railties/hydra_jetty.rake
|
142
136
|
- lib/tasks/hydra.rake
|
143
137
|
- spec/.gitignore
|
144
138
|
- spec/controllers/catalog_controller_spec.rb
|
@@ -146,25 +140,20 @@ files:
|
|
146
140
|
- spec/controllers/ip_based_ability_spec.rb
|
147
141
|
- spec/factories.rb
|
148
142
|
- spec/helpers/blacklight_helper_spec.rb
|
149
|
-
- spec/lib/model_methods_spec.rb
|
150
143
|
- spec/models/solr_document_spec.rb
|
151
144
|
- spec/models/user_spec.rb
|
152
145
|
- spec/rcov.opts
|
153
146
|
- spec/search_builders/search_builder_spec.rb
|
154
147
|
- spec/spec.opts
|
155
148
|
- spec/spec_helper.rb
|
156
|
-
- spec/support/app/controllers/downloads_controller.rb
|
157
149
|
- spec/support/app/models/sample.rb
|
158
150
|
- spec/support/app/models/solr_document.rb
|
159
151
|
- spec/support/db/migrate/20111101221803_create_searches.rb
|
160
|
-
- spec/support/lib/generators/test_app_generator.rb
|
161
|
-
- spec/support/lib/tasks/rspec.rake
|
162
152
|
- spec/support/matchers/helper_matcher.rb
|
163
153
|
- spec/support/matchers/solr_matchers.rb
|
164
154
|
- spec/test_app_templates/Gemfile.extra
|
165
155
|
- spec/unit/hydra-head-engine_spec.rb
|
166
156
|
- spec/unit/hydra-head_spec.rb
|
167
|
-
- tasks/rspec.rake
|
168
157
|
homepage: http://projecthydra.org
|
169
158
|
licenses:
|
170
159
|
- APACHE2
|
@@ -180,12 +169,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
180
169
|
version: 1.9.3
|
181
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
171
|
requirements:
|
183
|
-
- - "
|
172
|
+
- - ">"
|
184
173
|
- !ruby/object:Gem::Version
|
185
|
-
version:
|
174
|
+
version: 1.3.1
|
186
175
|
requirements: []
|
187
176
|
rubyforge_project:
|
188
|
-
rubygems_version: 2.
|
177
|
+
rubygems_version: 2.5.1
|
189
178
|
signing_key:
|
190
179
|
specification_version: 4
|
191
180
|
summary: Hydra-Head Rails Engine (requires Rails3)
|
@@ -196,19 +185,15 @@ test_files:
|
|
196
185
|
- spec/controllers/ip_based_ability_spec.rb
|
197
186
|
- spec/factories.rb
|
198
187
|
- spec/helpers/blacklight_helper_spec.rb
|
199
|
-
- spec/lib/model_methods_spec.rb
|
200
188
|
- spec/models/solr_document_spec.rb
|
201
189
|
- spec/models/user_spec.rb
|
202
190
|
- spec/rcov.opts
|
203
191
|
- spec/search_builders/search_builder_spec.rb
|
204
192
|
- spec/spec.opts
|
205
193
|
- spec/spec_helper.rb
|
206
|
-
- spec/support/app/controllers/downloads_controller.rb
|
207
194
|
- spec/support/app/models/sample.rb
|
208
195
|
- spec/support/app/models/solr_document.rb
|
209
196
|
- spec/support/db/migrate/20111101221803_create_searches.rb
|
210
|
-
- spec/support/lib/generators/test_app_generator.rb
|
211
|
-
- spec/support/lib/tasks/rspec.rake
|
212
197
|
- spec/support/matchers/helper_matcher.rb
|
213
198
|
- spec/support/matchers/solr_matchers.rb
|
214
199
|
- spec/test_app_templates/Gemfile.extra
|
@@ -1,8 +0,0 @@
|
|
1
|
-
module Hydra::Controller::SearchBuilder
|
2
|
-
extend ActiveSupport::Concern
|
3
|
-
|
4
|
-
included do
|
5
|
-
Deprecation.warn Hydra::Controller::SearchBuilder, "Hydra::Controller::SearchBuilder no longer does anything. It will be removed in Hydra version 10. The code that used to be in this module was moved to Blacklight::AccessControls::Catalog in the blacklight-access_controls gem."
|
6
|
-
end
|
7
|
-
|
8
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
require 'mime/types'
|
2
|
-
|
3
|
-
module Hydra::ModelMethods
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
included do
|
7
|
-
Deprecation.warn self, "Hydra::ModelMethods is deprecated and will be remove in hydra-head 10.0.0", caller(3)
|
8
|
-
include Hydra::WithDepositor
|
9
|
-
end
|
10
|
-
|
11
|
-
# Puts the contents of file (posted blob) into a datastream and sets the title and label
|
12
|
-
# Sets asset label and title to filename if they're empty
|
13
|
-
#
|
14
|
-
# @param [#read] file the IO object that is the blob
|
15
|
-
# @param [String] file the IO object that is the blob
|
16
|
-
def add_file(file, path, file_name, mime_type=nil)
|
17
|
-
mime_type ||= best_mime_for_filename(file_name)
|
18
|
-
options = { mime_type: mime_type, original_name: file_name }
|
19
|
-
options[:path] = path if path
|
20
|
-
super(file, options)
|
21
|
-
set_title_and_label(file_name, only_if_blank: true)
|
22
|
-
end
|
23
|
-
|
24
|
-
def best_mime_for_filename(file_name)
|
25
|
-
mime_types = MIME::Types.of(file_name)
|
26
|
-
mime_types.empty? ? "application/octet-stream" : mime_types.first.content_type
|
27
|
-
end
|
28
|
-
|
29
|
-
|
30
|
-
# Set the title and label on the current object
|
31
|
-
#
|
32
|
-
# @param [String] new_title
|
33
|
-
# @param [Hash] opts (optional) hash of configuration options
|
34
|
-
#
|
35
|
-
# @example Use :only_if_blank option to only update the values when the label is empty
|
36
|
-
# obj.set_title_and_label("My Title", :only_if_blank=> true)
|
37
|
-
def set_title_and_label(new_title, opts={})
|
38
|
-
if opts[:only_if_blank]
|
39
|
-
if respond_to?(:label) && label.blank?
|
40
|
-
self.label = new_title
|
41
|
-
set_title new_title
|
42
|
-
end
|
43
|
-
else
|
44
|
-
self.label = new_title if respond_to? :label
|
45
|
-
set_title new_title
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
# Set the title and label on the current object
|
50
|
-
#
|
51
|
-
# @param [String] new_title
|
52
|
-
# @param [Hash] opts (optional) hash of configuration options
|
53
|
-
def set_title(new_title, opts={})
|
54
|
-
if respond_to? :title=
|
55
|
-
self.title = self.class.multiple?(:title) ? Array(new_title) : new_title
|
56
|
-
elsif attached_files.has_key?("descMetadata")
|
57
|
-
Deprecation.warn ModelMethods, 'setting title in descMetadata is deprecated and will be remove in hydra-head 10.0. If you need this behavior declare `has_attribute :title`'
|
58
|
-
if descMetadata.respond_to?(:title_values)
|
59
|
-
descMetadata.title_values = new_title
|
60
|
-
else
|
61
|
-
descMetadata.title = new_title
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# properties datastream: catch-all for info that didn't have another home. Particularly depositor.
|
2
|
-
module Hydra::Datastream
|
3
|
-
class Properties < ActiveFedora::OmDatastream
|
4
|
-
extend Deprecation
|
5
|
-
|
6
|
-
def initialize(*)
|
7
|
-
super
|
8
|
-
Deprecation.warn(Properties, "Hydra::Datastream::Properties is deprecated and will be removed in hydra-head 10.0")
|
9
|
-
end
|
10
|
-
|
11
|
-
set_terminology do |t|
|
12
|
-
t.root(:path=>"fields", :xmlns => '', :namespace_prefix => nil)
|
13
|
-
|
14
|
-
# This is where we put the user id of the object depositor -- impacts permissions/access controls
|
15
|
-
t.depositor :xmlns => '', :namespace_prefix => nil
|
16
|
-
|
17
|
-
# @deprecated Collection should be tracked in RELS-EXT RDF. collection term will be removed no later than release 6.x
|
18
|
-
t.collection :xmlns => '', :namespace_prefix => nil
|
19
|
-
# @deprecated Title should be tracked in descMetadata. title term will be removed no later than release 6.x
|
20
|
-
t.title :xmlns => '', :namespace_prefix => nil
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.xml_template
|
24
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
25
|
-
xml.fields
|
26
|
-
end
|
27
|
-
|
28
|
-
builder.doc
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
module Hydra
|
2
|
-
class SearchBuilder < Blacklight::SearchBuilder
|
3
|
-
include Blacklight::Solr::SearchBuilderBehavior
|
4
|
-
include Hydra::AccessControlsEnforcement
|
5
|
-
extend Deprecation
|
6
|
-
|
7
|
-
def initialize(*)
|
8
|
-
Deprecation.warn SearchBuilder, "Hydra::SearchBuilder is deprecated and will be removed in hydra-head 10.0. Instead add include Hydra::AccessControlsEnforcement to app/models/search_builder.rb"
|
9
|
-
super
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
data/lib/mods_asset.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# An EXAMPLE Basic Model for Assets that conform to Hydra commonMetadata cModel and have basic MODS metadata (currently "Article" is the MODS exemplar)
|
2
|
-
class ModsAsset < ActiveFedora::Base
|
3
|
-
extend Deprecation
|
4
|
-
|
5
|
-
def initialize(*)
|
6
|
-
Deprecation.warn(ModsAsset, "ModsAsset is deprecated and will be removed in hydra-head 10")
|
7
|
-
super
|
8
|
-
end
|
9
|
-
|
10
|
-
## Convenience methods for manipulating the rights metadata datastream
|
11
|
-
include Hydra::AccessControls::Permissions
|
12
|
-
|
13
|
-
# adds helpful methods for basic hydra objects
|
14
|
-
include Hydra::ModelMethods
|
15
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
namespace :jetty do
|
2
|
-
desc "Apply all configs to Testing Server (relies on hydra:jetty:config tasks unless you override it)"
|
3
|
-
task :config do
|
4
|
-
Rake::Task["hydra:jetty:config"].invoke
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
namespace :hydra do
|
9
|
-
namespace :jetty do
|
10
|
-
desc "Copies the default Solr config into the bundled Hydra Testing Server"
|
11
|
-
task :config do
|
12
|
-
Rake::Task["hydra:jetty:config_solr"].invoke
|
13
|
-
end
|
14
|
-
|
15
|
-
desc "Copies the contents of solr_conf into the Solr development-core and test-core of Testing Server"
|
16
|
-
task :config_solr do
|
17
|
-
FileList['solr_conf/conf/*'].each do |f|
|
18
|
-
cp("#{f}", 'jetty/solr/development-core/conf/', :verbose => true)
|
19
|
-
cp("#{f}", 'jetty/solr/test-core/conf/', :verbose => true)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
desc "Copies the default SOLR config files and starts up the fedora instance."
|
24
|
-
task :load => [:config, 'jetty:start']
|
25
|
-
end
|
26
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Hydra::ModelMethods do
|
4
|
-
|
5
|
-
before do
|
6
|
-
allow(Deprecation).to receive(:warn)
|
7
|
-
class TestModel < ActiveFedora::Base
|
8
|
-
include Hydra::AccessControls::Permissions
|
9
|
-
include Hydra::ModelMethods
|
10
|
-
property :depositor, predicate: ::RDF::URI.new("http://id.loc.gov/vocabulary/relators/dpt"), multiple: false
|
11
|
-
attr_accessor :label
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
after { Object.send(:remove_const, :TestModel) }
|
16
|
-
|
17
|
-
subject { TestModel.new }
|
18
|
-
|
19
|
-
describe 'add_file' do
|
20
|
-
let(:file_name) { "my_file.foo" }
|
21
|
-
let(:mock_file) { "File contents" }
|
22
|
-
|
23
|
-
it "should set the dsid, mimetype and content" do
|
24
|
-
expect(subject).to receive(:set_title_and_label).with(file_name, only_if_blank: true )
|
25
|
-
expect(MIME::Types).to receive(:of).with(file_name).and_return([double(content_type: "mymimetype")])
|
26
|
-
subject.add_file(mock_file, 'bar', file_name)
|
27
|
-
expect(subject.bar.content).to eq mock_file
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should accept a supplied mime_type and content" do
|
31
|
-
expect(subject).to receive(:set_title_and_label).with(file_name, only_if_blank: true )
|
32
|
-
subject.add_file(mock_file, 'bar', file_name, 'image/png')
|
33
|
-
expect(subject.bar.content).to eq mock_file
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe '#set_title_and_label' do
|
38
|
-
context 'when only_if_blank is true' do
|
39
|
-
before do
|
40
|
-
subject.label = initial_label
|
41
|
-
subject.set_title_and_label('second', only_if_blank: true)
|
42
|
-
end
|
43
|
-
|
44
|
-
context 'and label is already set' do
|
45
|
-
let(:initial_label) { 'first' }
|
46
|
-
it "should not update the label" do
|
47
|
-
expect(subject.label).to eq 'first'
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
context 'and label is not already set' do
|
52
|
-
let(:initial_label) { nil }
|
53
|
-
it "should not update the label" do
|
54
|
-
expect(subject.label).to eq 'second'
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe '#set_title' do
|
61
|
-
context "on a class with a title property" do
|
62
|
-
before do
|
63
|
-
expect(Deprecation).to receive(:warn)
|
64
|
-
class WithProperty < ActiveFedora::Base
|
65
|
-
include Hydra::ModelMethods
|
66
|
-
property :title, predicate: ::RDF::DC.title
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
subject { WithProperty.new }
|
71
|
-
|
72
|
-
it "should set the property" do
|
73
|
-
subject.set_title('foo')
|
74
|
-
expect(subject.title).to eq ['foo']
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
|
3
|
-
class TestAppGenerator < Rails::Generators::Base
|
4
|
-
source_root File.expand_path("../../../../support", __FILE__)
|
5
|
-
|
6
|
-
def copy_test_classes
|
7
|
-
# Download controller
|
8
|
-
copy_file "app/controllers/downloads_controller.rb"
|
9
|
-
end
|
10
|
-
|
11
|
-
def copy_rspec_rake_task
|
12
|
-
copy_file "lib/tasks/rspec.rake"
|
13
|
-
end
|
14
|
-
|
15
|
-
def run_blacklight_generator
|
16
|
-
say_status("warning", "GENERATING BL", :yellow)
|
17
|
-
|
18
|
-
generate 'blacklight:install', '--devise'
|
19
|
-
end
|
20
|
-
|
21
|
-
def run_hydra_head_generator
|
22
|
-
say_status("warning", "GENERATING HH", :yellow)
|
23
|
-
|
24
|
-
generate 'hydra:head', '-f --skip-rspec'
|
25
|
-
end
|
26
|
-
|
27
|
-
def remove_generated_user_spec
|
28
|
-
remove_file 'spec/models/user_spec.rb'
|
29
|
-
end
|
30
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require 'rspec/core/rake_task'
|
2
|
-
desc "run the hydra-core gem spec"
|
3
|
-
gem_home = File.expand_path('../../../../..', __FILE__)
|
4
|
-
RSpec::Core::RakeTask.new(:myspec) do |t|
|
5
|
-
t.pattern = gem_home + '/spec/**/*_spec.rb'
|
6
|
-
t.rspec_opts = ["--colour", '--backtrace']
|
7
|
-
t.ruby_opts = "-I#{gem_home}/spec"
|
8
|
-
end
|
data/tasks/rspec.rake
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
ENV["RAILS_ROOT"] ||= 'spec/internal'
|
2
|
-
|
3
|
-
GEM_ROOT= File.expand_path(File.join(File.dirname(__FILE__),".."))
|
4
|
-
|
5
|
-
desc "Run specs"
|
6
|
-
task spec: :generate do |t|
|
7
|
-
focused_spec = ENV['SPEC'] ? " SPEC=#{File.join(GEM_ROOT, ENV['SPEC'])}" : ''
|
8
|
-
within_test_app do
|
9
|
-
system "rake myspec#{focused_spec}"
|
10
|
-
abort "Error running hydra-core" unless $?.success?
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
desc "Create the test rails app"
|
16
|
-
task :generate do
|
17
|
-
unless File.exists?('spec/internal/Rakefile')
|
18
|
-
puts "Generating rails app"
|
19
|
-
`rails new spec/internal`
|
20
|
-
puts "Updating gemfile"
|
21
|
-
`echo " gem 'hydra-access-controls', :path=>'../../../hydra-access-controls'" >> spec/internal/Gemfile`
|
22
|
-
`echo " gem 'hydra-core', :path=>'../../', :require=>'hydra-core'" >> spec/internal/Gemfile`
|
23
|
-
`echo " eval File.read('../test_app_templates/Gemfile.extra'), nil, '../test_app_templates/Gemfile.extra'" >> spec/internal/Gemfile`
|
24
|
-
`echo " gem 'factory_girl_rails'" >> spec/internal/Gemfile`
|
25
|
-
puts "Copying generator"
|
26
|
-
`cp -r spec/support/lib/generators spec/internal/lib`
|
27
|
-
within_test_app do
|
28
|
-
puts "Bundle install"
|
29
|
-
`bundle install`
|
30
|
-
puts "running test_app_generator"
|
31
|
-
system "rails generate test_app"
|
32
|
-
|
33
|
-
puts "running migrations"
|
34
|
-
puts `rake db:migrate db:test:prepare`
|
35
|
-
end
|
36
|
-
end
|
37
|
-
puts "Running specs"
|
38
|
-
end
|
39
|
-
|
40
|
-
desc "Clean out the test rails app"
|
41
|
-
task :clean do
|
42
|
-
puts "Removing sample rails app"
|
43
|
-
`rm -rf spec/internal`
|
44
|
-
end
|
45
|
-
|
46
|
-
def within_test_app
|
47
|
-
FileUtils.cd('spec/internal')
|
48
|
-
Bundler.with_clean_env do
|
49
|
-
yield
|
50
|
-
end
|
51
|
-
FileUtils.cd('../..')
|
52
|
-
end
|