hydra-core 6.5.2 → 7.0.0.pre1
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/app/controllers/concerns/hydra/controller.rb +2 -0
- data/app/controllers/concerns/hydra/controller/download_behavior.rb +18 -19
- data/{lib → app/models/concerns}/hydra/model_methods.rb +0 -0
- data/app/models/concerns/hydra/models.rb +5 -0
- data/{lib → app/models/concerns}/hydra/models/file_asset.rb +0 -0
- data/{lib → app/models/concerns}/hydra/solr.rb +0 -0
- data/hydra-core.gemspec +3 -2
- data/lib/generators/hydra/head_generator.rb +4 -11
- data/lib/generators/hydra/templates/config/initializers/hydra_config.rb +17 -24
- data/lib/hydra-core.rb +3 -33
- data/lib/hydra-head/engine.rb +1 -0
- data/lib/hydra-head/version.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +1 -1
- data/spec/controllers/downloads_controller_spec.rb +24 -12
- data/spec/lib/model_methods_spec.rb +3 -3
- data/spec/support/app/models/generic_content.rb +21 -0
- data/spec/support/lib/generators/test_app_generator.rb +5 -8
- data/spec/support/spec/fixtures/hydra_test_generic_content.foxml.xml +138 -0
- data/spec/test_app_templates/Gemfile.extra +4 -0
- data/tasks/rspec.rake +1 -0
- metadata +24 -30
- data/app/helpers/facets_helper.rb +0 -4
- data/app/helpers/hydra/facets_helper_behavior.rb +0 -25
- data/lib/hydra-head/routes.rb +0 -46
- data/lib/hydra/controller.rb +0 -7
- data/lib/hydra/global_configurable.rb +0 -46
- data/lib/hydra/model_mixins/common_metadata.rb +0 -24
- data/lib/hydra/model_mixins/solr_document_extension.rb +0 -33
- data/lib/hydra/models.rb +0 -7
- data/spec/helpers/facets_helper_spec.rb +0 -26
- data/spec/lib/global_configurable_spec.rb +0 -98
- data/spec/lib/solr_document_extension_spec.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cf9361903147e9724ae37d21f4a890a84a031ff
|
4
|
+
data.tar.gz: afe9fc4f220f71e8148ab55ea68e920a31a19784
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 601bc533781382961b862b46f294b9c4dd13bb2a55ed4dc33fa4a5622d76323e914a2332df218bddecda4d662466c7bcb2c3e3ff2f14c39e5b7d2cf24f75e39b
|
7
|
+
data.tar.gz: e23f48c1de6975b59eda986938c83a06e7ee2e2b7a7a27bf35d2cca2c62e083e05c82bdbb22dea6baf4826d207c27df4598f8d6bf28fb8094998259f6f7faed6
|
@@ -2,24 +2,20 @@ module Hydra
|
|
2
2
|
module Controller
|
3
3
|
module DownloadBehavior
|
4
4
|
extend ActiveSupport::Concern
|
5
|
+
extend Deprecation
|
5
6
|
|
6
7
|
included do
|
7
8
|
before_filter :load_asset
|
8
9
|
before_filter :load_datastream
|
10
|
+
before_filter :authorize_download!
|
9
11
|
end
|
10
12
|
|
11
13
|
# Responds to http requests to show the datastream
|
12
14
|
def show
|
13
|
-
if
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
# we can now examine asset and determine if we should send_content, or some other action.
|
18
|
-
send_content (asset)
|
19
|
-
end
|
20
|
-
else
|
21
|
-
logger.info "Can not read #{params[asset_param_key]}"
|
22
|
-
raise Hydra::AccessDenied.new("You do not have sufficient access privileges to read this document, which has been marked private.", :read, params[asset_param_key])
|
15
|
+
if datastream.new?
|
16
|
+
render_404
|
17
|
+
else
|
18
|
+
send_content
|
23
19
|
end
|
24
20
|
end
|
25
21
|
|
@@ -46,6 +42,15 @@ module Hydra
|
|
46
42
|
@ds = datastream_to_show
|
47
43
|
end
|
48
44
|
|
45
|
+
# Customize the :download ability in your Ability class, or override this method
|
46
|
+
def authorize_download!
|
47
|
+
if self.respond_to?(:can_download?)
|
48
|
+
Deprecation.warn(DownloadBehavior, "The `can_download?' method is deprecated and will not be supported in hydra-head 8.0. Implement special authorization behavior by customizing the :download permission on ActiveFedora::Datastream in your Ability class.", caller)
|
49
|
+
current_ability.send(can_download? ? :can : :cannot, :download, ActiveFedora::Datastream, dsid: datastream.dsid, pid: datastream.pid)
|
50
|
+
end
|
51
|
+
authorize! :download, datastream
|
52
|
+
end
|
53
|
+
|
49
54
|
def asset
|
50
55
|
@asset
|
51
56
|
end
|
@@ -54,14 +59,6 @@ module Hydra
|
|
54
59
|
@ds
|
55
60
|
end
|
56
61
|
|
57
|
-
# Override this method to enforce access controls. By default it allows
|
58
|
-
# any datastream on an object the current user has read access to.
|
59
|
-
# @return [Boolean] can the curent user view this object/datastream
|
60
|
-
def can_download?
|
61
|
-
can? :read, datastream.pid
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
62
|
# Override this method to change which datastream is shown.
|
66
63
|
# Loads the datastream specified by the HTTP parameter `:datastream_id`.
|
67
64
|
# If this object does not have a datastream by that name, return the default datastream
|
@@ -75,7 +72,9 @@ module Hydra
|
|
75
72
|
end
|
76
73
|
|
77
74
|
# Handle the HTTP show request
|
78
|
-
def send_content(
|
75
|
+
def send_content(asset_ = nil)
|
76
|
+
Deprecation.warn(DownloadBehavior, "The `asset' parameter of the `send_content' method is deprecated and will be removed from Hydra::Controller::DownloadBehavior in hydra-head 8.0", caller) if asset_
|
77
|
+
|
79
78
|
response.headers['Accept-Ranges'] = 'bytes'
|
80
79
|
|
81
80
|
if request.head?
|
File without changes
|
File without changes
|
File without changes
|
data/hydra-core.gemspec
CHANGED
@@ -19,9 +19,10 @@ Gem::Specification.new do |gem|
|
|
19
19
|
|
20
20
|
gem.required_ruby_version = '>= 1.9.3'
|
21
21
|
|
22
|
+
|
22
23
|
gem.add_dependency "rails", '>= 3.2.3', '< 5'
|
23
|
-
gem.add_dependency "blacklight", '~> 4.
|
24
|
-
gem.add_dependency "active-fedora"
|
24
|
+
gem.add_dependency "blacklight", '~> 4.0'
|
25
|
+
gem.add_dependency "active-fedora"
|
25
26
|
gem.add_dependency 'block_helpers'
|
26
27
|
gem.add_dependency 'deprecation', ">= 0.0.5"
|
27
28
|
gem.add_dependency 'hydra-access-controls', version
|
@@ -48,8 +48,10 @@ class HeadGenerator < Rails::Generators::Base
|
|
48
48
|
# Initializers
|
49
49
|
file_path = "config/initializers/hydra_config.rb"
|
50
50
|
copy_file "config/initializers/hydra_config.rb", file_path
|
51
|
-
|
52
|
-
|
51
|
+
unless model_name == 'user'
|
52
|
+
insert_into_file file_path, :after => 'Hydra.configure do |config|' do
|
53
|
+
"\n config.user_model = '#{model_name.classify}'"
|
54
|
+
end
|
53
55
|
end
|
54
56
|
|
55
57
|
copy_file "config/initializers/action_dispatch_http_upload_monkey_patch.rb", "config/initializers/action_dispatch_http_upload_monkey_patch.rb"
|
@@ -79,14 +81,5 @@ class HeadGenerator < Rails::Generators::Base
|
|
79
81
|
puts " \e[31mFailure\e[0m Hydra requires a user object in order to apply access controls. This generators assumes that the model is defined in the file #{file_path}, which does not exist. If you used a different name, please re-run the generator and provide that name as an argument. Such as \b rails -g hydra:head client"
|
80
82
|
end
|
81
83
|
end
|
82
|
-
|
83
|
-
# Inject call to HydraHead.add_routes in config/routes.rb
|
84
|
-
def inject_hydra_routes
|
85
|
-
insert_into_file "config/routes.rb", :after => 'Blacklight.add_routes(self)' do
|
86
|
-
"\n # Add Hydra routes. For options, see API docs for HydraHead.routes"
|
87
|
-
"\n HydraHead.add_routes(self)"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
84
|
end # HeadGenerator
|
92
85
|
end # Hydra
|
@@ -1,28 +1,21 @@
|
|
1
|
-
# The following lines determine which user attributes your hydrangea app will use
|
2
|
-
# This configuration allows you to use the out of the box ActiveRecord associations between users and user_attributes
|
3
|
-
# It also allows you to specify your own user attributes
|
4
|
-
# The easiest way to override these methods would be to create your own module to include in User
|
5
|
-
# For example you could create a module for your local LDAP instance called MyLocalLDAPUserAttributes:
|
6
|
-
# User.send(:include, MyLocalLDAPAttributes)
|
7
|
-
# As long as your module includes methods for full_name, affiliation, and photo the personalization_helper should function correctly
|
8
|
-
#
|
9
|
-
|
10
1
|
# windows doesn't properly require hydra-head (from the gemfile), so we need to require it explicitly here:
|
11
2
|
require 'hydra/head' unless defined? Hydra
|
12
3
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
4
|
+
Hydra.configure do |config|
|
5
|
+
# This specifies the solr field names of permissions-related fields.
|
6
|
+
# You only need to change these values if you've indexed permissions by some means other than the Hydra's built-in tooling.
|
7
|
+
# If you change these, you must also update the permissions request handler in your solrconfig.xml to return those values
|
8
|
+
#
|
9
|
+
# config.permissions.discover.group = ActiveFedora::SolrService.solr_name("discover_access_group", :symbol)
|
10
|
+
# config.permissions.discover.individual = ActiveFedora::SolrService.solr_name("discover_access_person", :symbol)
|
11
|
+
# config.permissions.read.group = ActiveFedora::SolrService.solr_name("read_access_group", :symbol)
|
12
|
+
# config.permissions.read.individual = ActiveFedora::SolrService.solr_name("read_access_person", :symbol)
|
13
|
+
# config.permissions.edit.group = ActiveFedora::SolrService.solr_name("edit_access_group", :symbol)
|
14
|
+
# config.permissions.edit.individual = ActiveFedora::SolrService.solr_name("edit_access_person", :symbol)
|
15
|
+
#
|
16
|
+
# config.permissions.embargo_release_date = ActiveFedora::SolrService.solr_name("embargo_release_date", Solrizer::Descriptor.new(:date, :stored, :indexed))
|
17
|
+
# }
|
18
|
+
#
|
19
|
+
# specify the user model
|
20
|
+
# config.user_model = '#{model_name.classify}'
|
28
21
|
end
|
data/lib/hydra-core.rb
CHANGED
@@ -1,41 +1,11 @@
|
|
1
1
|
require 'hydra-access-controls'
|
2
|
-
|
3
|
-
module Hydra
|
4
|
-
extend ActiveSupport::Autoload
|
5
|
-
autoload :GlobalConfigurable
|
6
|
-
extend GlobalConfigurable
|
7
|
-
autoload :Controller
|
8
|
-
autoload :ModelMethods
|
9
|
-
autoload :RepositoryController
|
10
|
-
autoload :Solr
|
11
|
-
module ModelMixins
|
12
|
-
# ModelMixins already loaded by hydra-access-controls
|
13
|
-
autoload :SolrDocumentExtension
|
14
|
-
end
|
15
|
-
autoload :Models
|
16
|
-
end
|
2
|
+
require 'deprecation'
|
17
3
|
|
18
4
|
module HydraHead
|
5
|
+
extend Deprecation
|
19
6
|
require 'hydra-head/engine' if defined?(Rails)
|
20
|
-
require 'hydra-head/routes'
|
21
|
-
# If you put this in your application's routes.rb, it will add the Hydra Head routes to the app.
|
22
|
-
# The hydra:head generator puts this in routes.rb for you by default.
|
23
|
-
# See {HydraHead::Routes} for information about how to modify which routes are generated.
|
24
|
-
# @example
|
25
|
-
# # in config/routes.rb
|
26
|
-
# MyAppName::Application.routes.draw do
|
27
|
-
# Blacklight.add_routes(self)
|
28
|
-
# HydraHead.add_routes(self)
|
29
|
-
# end
|
30
7
|
def self.add_routes(router, options = {})
|
31
|
-
HydraHead
|
8
|
+
Deprecation.warn HydraHead, "add_routes has been removed." # remove this warning in hydra-head 8
|
32
9
|
end
|
33
10
|
end
|
34
11
|
|
35
|
-
ActiveSupport.on_load(:after_initialize) do
|
36
|
-
begin
|
37
|
-
SolrDocument.use_extension Hydra::ModelMixins::SolrDocumentExtension
|
38
|
-
rescue NameError
|
39
|
-
logger.warn "Couldn't find SolrDocument"
|
40
|
-
end
|
41
|
-
end
|
data/lib/hydra-head/engine.rb
CHANGED
data/lib/hydra-head/version.rb
CHANGED
@@ -56,7 +56,7 @@ describe CatalogController do
|
|
56
56
|
before(:all) do
|
57
57
|
fq = "read_access_group_ssim:public OR edit_access_group_ssim:public OR discover_access_group_ssim:public"
|
58
58
|
solr_opts = {:fq=>fq}
|
59
|
-
response =
|
59
|
+
response = Blacklight.solr.get('select', :params=> solr_opts)
|
60
60
|
@public_only_results = Blacklight::SolrResponse.new(response, solr_opts)
|
61
61
|
end
|
62
62
|
|
@@ -102,7 +102,7 @@ describe DownloadsController do
|
|
102
102
|
stub_ds.stub(:pid).and_return('changeme:test')
|
103
103
|
stub_file = double('stub object', datastreams: {'webm' => stub_ds}, pid:'changeme:test', label: "MyVideo.webm")
|
104
104
|
ActiveFedora::Base.should_receive(:load_instance_from_solr).with('changeme:test').and_return(stub_file)
|
105
|
-
controller.stub(:
|
105
|
+
controller.stub(:authorize!).with(:download, stub_ds).and_return(true)
|
106
106
|
controller.stub(:log_download)
|
107
107
|
end
|
108
108
|
it "head request" do
|
@@ -145,17 +145,6 @@ describe DownloadsController do
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
-
describe "when not logged in as reader" do
|
149
|
-
describe "show" do
|
150
|
-
before do
|
151
|
-
sign_in User.new.tap {|u| u.email = 'email2@example.com'; u.password = 'password'; u.save}
|
152
|
-
end
|
153
|
-
it "should deny access" do
|
154
|
-
lambda { get "show", :id =>@obj.pid }.should raise_error Hydra::AccessDenied
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
148
|
describe "overriding the default asset param key" do
|
160
149
|
before do
|
161
150
|
Rails.application.routes.draw do
|
@@ -172,5 +161,28 @@ describe DownloadsController do
|
|
172
161
|
end
|
173
162
|
end
|
174
163
|
|
164
|
+
describe "overriding the can_download? method" do
|
165
|
+
before { sign_in @user }
|
166
|
+
context "current_ability.can? returns true / can_download? returns false" do
|
167
|
+
it "should authorize according to can_download?" do
|
168
|
+
controller.current_ability.can?(:download, @obj.datastreams['buzz']).should be_true
|
169
|
+
controller.stub(:can_download?).and_return(false)
|
170
|
+
expect { get :show, id: @obj, datastream_id: 'buzz' }.to raise_error(CanCan::AccessDenied)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
context "current_ability.can? returns false / can_download? returns true" do
|
174
|
+
before do
|
175
|
+
@obj.rightsMetadata.clear_permissions!
|
176
|
+
@obj.save
|
177
|
+
end
|
178
|
+
it "should authorize according to can_download?" do
|
179
|
+
controller.current_ability.can?(:download, @obj.datastreams['buzz']).should be_false
|
180
|
+
controller.stub(:can_download?).and_return(true)
|
181
|
+
get :show, id: @obj, datastream_id: 'buzz'
|
182
|
+
response.should be_successful
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
175
187
|
end
|
176
188
|
end
|
@@ -6,7 +6,7 @@ describe Hydra::ModelMethods do
|
|
6
6
|
class TestModel < ActiveFedora::Base
|
7
7
|
include Hydra::AccessControls::Permissions
|
8
8
|
include Hydra::ModelMethods
|
9
|
-
has_metadata
|
9
|
+
has_metadata "properties", type: Hydra::Datastream::Properties
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -15,12 +15,12 @@ describe Hydra::ModelMethods do
|
|
15
15
|
describe "apply_depositor_metadata" do
|
16
16
|
it "should add edit access" do
|
17
17
|
subject.apply_depositor_metadata('naomi')
|
18
|
-
subject.rightsMetadata.
|
18
|
+
subject.rightsMetadata.users.should == {'naomi' => 'edit'}
|
19
19
|
end
|
20
20
|
it "should not overwrite people with edit access" do
|
21
21
|
subject.rightsMetadata.permissions({:person=>"jessie"}, 'edit')
|
22
22
|
subject.apply_depositor_metadata('naomi')
|
23
|
-
subject.rightsMetadata.
|
23
|
+
subject.rightsMetadata.users.should == {'naomi' => 'edit', 'jessie' =>'edit'}
|
24
24
|
end
|
25
25
|
it "should set depositor" do
|
26
26
|
subject.apply_depositor_metadata('chris')
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# GenericContent: EXAMPLE Model that conforms to the Hydra genericContent and genericMetadata cModels
|
2
|
+
require 'deprecation'
|
3
|
+
class GenericContent < ActiveFedora::Base
|
4
|
+
extend Deprecation
|
5
|
+
|
6
|
+
# Uses the Hydra Rights Metadata Schema for tracking access permissions & copyright
|
7
|
+
# FIXME: should this have "include Hydra::ModelMixins::CommonMetadata" instead?
|
8
|
+
has_metadata :name => "rightsMetadata", :type => Hydra::Datastream::RightsMetadata
|
9
|
+
|
10
|
+
# A place to put extra metadata values, e.g. the user id of the object depositor (for permissions)
|
11
|
+
has_metadata :name => "properties", :type => Hydra::Datastream::Properties
|
12
|
+
|
13
|
+
# adds helpful methods for basic hydra objects.
|
14
|
+
# FIXME: redundate with GenericContent include above??
|
15
|
+
include Hydra::ModelMethods
|
16
|
+
|
17
|
+
def initialize( attrs={} )
|
18
|
+
Deprecation.warn(GenericContent, "GenericContent is deprecated and will be removed in hydra-head 5.x")
|
19
|
+
super
|
20
|
+
end
|
21
|
+
end
|
@@ -3,19 +3,16 @@ require 'rails/generators'
|
|
3
3
|
class TestAppGenerator < Rails::Generators::Base
|
4
4
|
source_root File.expand_path("../../../../support", __FILE__)
|
5
5
|
|
6
|
-
# Inject call to Hydra::BatchEdit.add_routes in config/routes.rb
|
7
|
-
def inject_routes
|
8
|
-
insert_into_file "config/routes.rb", :after => '.draw do' do
|
9
|
-
"\n # Add HydraHead routes."
|
10
|
-
"\n HydraHead.add_routes(self)"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
6
|
def copy_test_fixtures
|
7
|
+
copy_file "app/models/generic_content.rb"
|
8
|
+
|
15
9
|
# Download controller
|
16
10
|
copy_file "app/controllers/downloads_controller.rb"
|
17
11
|
|
18
12
|
copy_file "spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml"
|
13
|
+
|
14
|
+
# For testing Hydra::SubmissionWorkflow
|
15
|
+
copy_file "spec/fixtures/hydra_test_generic_content.foxml.xml"
|
19
16
|
end
|
20
17
|
|
21
18
|
def copy_rspec_rake_task
|
@@ -0,0 +1,138 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<foxml:digitalObject VERSION="1.1" PID="hydra:test_generic_content" xmlns:foxml="info:fedora/fedora-system:def/foxml#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
3
|
+
<foxml:objectProperties>
|
4
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
5
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE=""/>
|
6
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
|
7
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#createdDate" VALUE="2011-07-14T01:28:47.221Z"/>
|
8
|
+
<foxml:property NAME="info:fedora/fedora-system:def/view#lastModifiedDate" VALUE="2011-07-14T01:30:56.432Z"/>
|
9
|
+
</foxml:objectProperties>
|
10
|
+
<foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
11
|
+
<foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2011-07-14T01:28:47.221Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="341">
|
12
|
+
<foxml:xmlContent>
|
13
|
+
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
14
|
+
<dc:identifier>hydra:test_generic_content</dc:identifier>
|
15
|
+
<dc:description>A test object using the GenericContent (active)fedora model</dc:description>
|
16
|
+
</oai_dc:dc>
|
17
|
+
</foxml:xmlContent>
|
18
|
+
</foxml:datastreamVersion>
|
19
|
+
</foxml:datastream>
|
20
|
+
<foxml:datastream ID="descMetadata" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
21
|
+
<foxml:datastreamVersion ID="descMetadata.1" LABEL="" CREATED="2011-07-14T01:30:13.169Z" MIMETYPE="text/xml" SIZE="1552">
|
22
|
+
<foxml:xmlContent>
|
23
|
+
<mods xmlns="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.3" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-3.xsd">
|
24
|
+
<titleInfo lang="">
|
25
|
+
<title>generic content</title>
|
26
|
+
</titleInfo>
|
27
|
+
<name type="personal">
|
28
|
+
<namePart type="given">Orlob</namePart>
|
29
|
+
<namePart type="family">Gryphon</namePart>
|
30
|
+
<affiliation>Fantasy</affiliation>
|
31
|
+
<role>
|
32
|
+
<roleTerm authority="marcrelator" type="text"/>
|
33
|
+
</role>
|
34
|
+
<description>Mythical Creatures</description>
|
35
|
+
</name>
|
36
|
+
<typeOfResource/>
|
37
|
+
<genre authority="marcgt"/>
|
38
|
+
<language>
|
39
|
+
<languageTerm authority="iso639-2b" type="code"/>
|
40
|
+
</language>
|
41
|
+
<physicalDescription>
|
42
|
+
<extent/>
|
43
|
+
</physicalDescription>
|
44
|
+
<abstract>A test object using the GenericContent (active)fedora model</abstract>
|
45
|
+
<subject>
|
46
|
+
<topic>flying creatures</topic>
|
47
|
+
</subject>
|
48
|
+
<relatedItem type="host">
|
49
|
+
<titleInfo>
|
50
|
+
<title/>
|
51
|
+
</titleInfo>
|
52
|
+
<identifier type="issn"/>
|
53
|
+
<originInfo>
|
54
|
+
<publisher/>
|
55
|
+
<dateIssued/>
|
56
|
+
</originInfo>
|
57
|
+
<part>
|
58
|
+
<detail type="volume">
|
59
|
+
<number/>
|
60
|
+
</detail>
|
61
|
+
<detail type="number">
|
62
|
+
<number/>
|
63
|
+
</detail>
|
64
|
+
<extent unit="pages">
|
65
|
+
<start/>
|
66
|
+
<end/>
|
67
|
+
</extent>
|
68
|
+
<date/>
|
69
|
+
</part>
|
70
|
+
</relatedItem>
|
71
|
+
<location>
|
72
|
+
<url/>
|
73
|
+
</location>
|
74
|
+
</mods>
|
75
|
+
</foxml:xmlContent>
|
76
|
+
</foxml:datastreamVersion>
|
77
|
+
</foxml:datastream>
|
78
|
+
<foxml:datastream ID="RELS-EXT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
79
|
+
<foxml:datastreamVersion ID="RELS-EXT.0" LABEL="" CREATED="2011-07-14T01:28:49.031Z" MIMETYPE="text/xml" SIZE="277">
|
80
|
+
<foxml:xmlContent>
|
81
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
82
|
+
<rdf:Description rdf:about="info:fedora/hydra:test_generic_content">
|
83
|
+
<hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/afmodel:GenericContent"/>
|
84
|
+
</rdf:Description>
|
85
|
+
</rdf:RDF>
|
86
|
+
</foxml:xmlContent>
|
87
|
+
</foxml:datastreamVersion>
|
88
|
+
</foxml:datastream>
|
89
|
+
<foxml:datastream ID="rightsMetadata" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
90
|
+
<foxml:datastreamVersion ID="rightsMetadata.1" LABEL="" CREATED="2011-07-14T01:30:56.432Z" MIMETYPE="text/xml" SIZE="777">
|
91
|
+
<foxml:xmlContent>
|
92
|
+
<rightsMetadata xmlns="http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1" version="0.1">
|
93
|
+
<copyright>
|
94
|
+
<human/>
|
95
|
+
<machine>
|
96
|
+
<uvalicense>no</uvalicense>
|
97
|
+
</machine>
|
98
|
+
</copyright>
|
99
|
+
<access type="discover">
|
100
|
+
<human/>
|
101
|
+
<machine/>
|
102
|
+
</access>
|
103
|
+
<access type="read">
|
104
|
+
<human/>
|
105
|
+
<machine>
|
106
|
+
<group>researcher</group>
|
107
|
+
<group>public</group>
|
108
|
+
<group>patron</group>
|
109
|
+
<group>donor</group>
|
110
|
+
</machine>
|
111
|
+
</access>
|
112
|
+
<access type="edit">
|
113
|
+
<human/>
|
114
|
+
<machine>
|
115
|
+
<person>archivist1</person>
|
116
|
+
<group>archivist</group>
|
117
|
+
<group>admin_policy_object_editor</group>
|
118
|
+
</machine>
|
119
|
+
</access>
|
120
|
+
<embargo>
|
121
|
+
<human/>
|
122
|
+
<machine/>
|
123
|
+
</embargo>
|
124
|
+
</rightsMetadata>
|
125
|
+
</foxml:xmlContent>
|
126
|
+
</foxml:datastreamVersion>
|
127
|
+
</foxml:datastream>
|
128
|
+
<foxml:datastream ID="properties" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
129
|
+
<foxml:datastreamVersion ID="properties.0" LABEL="" CREATED="2011-07-14T01:28:49.367Z" MIMETYPE="text/xml" SIZE="99">
|
130
|
+
<foxml:xmlContent>
|
131
|
+
<fields>
|
132
|
+
<collection>generic_content</collection>
|
133
|
+
<depositor>archivist1</depositor>
|
134
|
+
</fields>
|
135
|
+
</foxml:xmlContent>
|
136
|
+
</foxml:datastreamVersion>
|
137
|
+
</foxml:datastream>
|
138
|
+
</foxml:digitalObject>
|
data/tasks/rspec.rake
CHANGED
@@ -26,6 +26,7 @@ task :generate do
|
|
26
26
|
puts "Updating gemfile"
|
27
27
|
`echo " gem 'hydra-access-controls', :path=>'../../../hydra-access-controls'" >> spec/internal/Gemfile`
|
28
28
|
`echo " gem 'hydra-core', :path=>'../../', :require=>'hydra-core'" >> spec/internal/Gemfile`
|
29
|
+
`echo " eval File.read('../test_app_templates/Gemfile.extra'), nil, '../test_app_templates/Gemfile.extra'" >> spec/internal/Gemfile`
|
29
30
|
`echo " gem 'factory_girl_rails'" >> spec/internal/Gemfile`
|
30
31
|
puts "Copying generator"
|
31
32
|
`cp -r spec/support/lib/generators spec/internal/lib`
|
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: 7.0.0.pre1
|
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: 2014-
|
12
|
+
date: 2014-01-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -37,28 +37,28 @@ dependencies:
|
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '4.
|
40
|
+
version: '4.0'
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '4.
|
47
|
+
version: '4.0'
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: active-fedora
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: block_helpers
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,14 +93,14 @@ dependencies:
|
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 7.0.0.pre1
|
97
97
|
type: :runtime
|
98
98
|
prerelease: false
|
99
99
|
version_requirements: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - '='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 7.0.0.pre1
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: jettywrapper
|
106
106
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,13 +182,16 @@ extra_rdoc_files: []
|
|
182
182
|
files:
|
183
183
|
- .gitignore
|
184
184
|
- Rakefile
|
185
|
+
- app/controllers/concerns/hydra/controller.rb
|
185
186
|
- app/controllers/concerns/hydra/controller/controller_behavior.rb
|
186
187
|
- app/controllers/concerns/hydra/controller/download_behavior.rb
|
187
188
|
- app/controllers/concerns/hydra/controller/upload_behavior.rb
|
188
189
|
- app/helpers/blacklight_helper.rb
|
189
|
-
- app/helpers/facets_helper.rb
|
190
190
|
- app/helpers/hydra/blacklight_helper_behavior.rb
|
191
|
-
- app/
|
191
|
+
- app/models/concerns/hydra/model_methods.rb
|
192
|
+
- app/models/concerns/hydra/models.rb
|
193
|
+
- app/models/concerns/hydra/models/file_asset.rb
|
194
|
+
- app/models/concerns/hydra/solr.rb
|
192
195
|
- app/models/file_asset.rb
|
193
196
|
- app/models/hydra/datastream/properties.rb
|
194
197
|
- app/models/mods_asset.rb
|
@@ -212,16 +215,7 @@ files:
|
|
212
215
|
- lib/generators/hydra/templates/config/solr.yml
|
213
216
|
- lib/hydra-core.rb
|
214
217
|
- lib/hydra-head/engine.rb
|
215
|
-
- lib/hydra-head/routes.rb
|
216
218
|
- lib/hydra-head/version.rb
|
217
|
-
- lib/hydra/controller.rb
|
218
|
-
- lib/hydra/global_configurable.rb
|
219
|
-
- lib/hydra/model_methods.rb
|
220
|
-
- lib/hydra/model_mixins/common_metadata.rb
|
221
|
-
- lib/hydra/model_mixins/solr_document_extension.rb
|
222
|
-
- lib/hydra/models.rb
|
223
|
-
- lib/hydra/models/file_asset.rb
|
224
|
-
- lib/hydra/solr.rb
|
225
219
|
- lib/railties/active-fedora.rake
|
226
220
|
- lib/railties/hydra-fixtures.rake
|
227
221
|
- lib/railties/hydra_jetty.rake
|
@@ -231,12 +225,9 @@ files:
|
|
231
225
|
- spec/controllers/downloads_controller_spec.rb
|
232
226
|
- spec/factories.rb
|
233
227
|
- spec/helpers/blacklight_helper_spec.rb
|
234
|
-
- spec/helpers/facets_helper_spec.rb
|
235
228
|
- spec/helpers/upload_behavior_spec.rb
|
236
229
|
- spec/lib/catalog_spec.rb
|
237
|
-
- spec/lib/global_configurable_spec.rb
|
238
230
|
- spec/lib/model_methods_spec.rb
|
239
|
-
- spec/lib/solr_document_extension_spec.rb
|
240
231
|
- spec/models/file_asset_spec.rb
|
241
232
|
- spec/models/mods_asset_spec.rb
|
242
233
|
- spec/models/solr_document_spec.rb
|
@@ -245,6 +236,7 @@ files:
|
|
245
236
|
- spec/spec.opts
|
246
237
|
- spec/spec_helper.rb
|
247
238
|
- spec/support/app/controllers/downloads_controller.rb
|
239
|
+
- spec/support/app/models/generic_content.rb
|
248
240
|
- spec/support/app/models/sample.rb
|
249
241
|
- spec/support/app/models/solr_document.rb
|
250
242
|
- spec/support/db/migrate/20111101221803_create_searches.rb
|
@@ -252,7 +244,9 @@ files:
|
|
252
244
|
- spec/support/lib/tasks/rspec.rake
|
253
245
|
- spec/support/matchers/helper_matcher.rb
|
254
246
|
- spec/support/matchers/solr_matchers.rb
|
247
|
+
- spec/support/spec/fixtures/hydra_test_generic_content.foxml.xml
|
255
248
|
- spec/support/spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml
|
249
|
+
- spec/test_app_templates/Gemfile.extra
|
256
250
|
- spec/unit/hydra-head-engine_spec.rb
|
257
251
|
- spec/unit/hydra-head_spec.rb
|
258
252
|
- tasks/hydra-head-fixtures.rake
|
@@ -273,12 +267,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
273
267
|
version: 1.9.3
|
274
268
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
269
|
requirements:
|
276
|
-
- - '
|
270
|
+
- - '>'
|
277
271
|
- !ruby/object:Gem::Version
|
278
|
-
version:
|
272
|
+
version: 1.3.1
|
279
273
|
requirements: []
|
280
274
|
rubyforge_project:
|
281
|
-
rubygems_version: 2.
|
275
|
+
rubygems_version: 2.1.11
|
282
276
|
signing_key:
|
283
277
|
specification_version: 4
|
284
278
|
summary: Hydra-Head Rails Engine (requires Rails3)
|
@@ -289,12 +283,9 @@ test_files:
|
|
289
283
|
- spec/controllers/downloads_controller_spec.rb
|
290
284
|
- spec/factories.rb
|
291
285
|
- spec/helpers/blacklight_helper_spec.rb
|
292
|
-
- spec/helpers/facets_helper_spec.rb
|
293
286
|
- spec/helpers/upload_behavior_spec.rb
|
294
287
|
- spec/lib/catalog_spec.rb
|
295
|
-
- spec/lib/global_configurable_spec.rb
|
296
288
|
- spec/lib/model_methods_spec.rb
|
297
|
-
- spec/lib/solr_document_extension_spec.rb
|
298
289
|
- spec/models/file_asset_spec.rb
|
299
290
|
- spec/models/mods_asset_spec.rb
|
300
291
|
- spec/models/solr_document_spec.rb
|
@@ -303,6 +294,7 @@ test_files:
|
|
303
294
|
- spec/spec.opts
|
304
295
|
- spec/spec_helper.rb
|
305
296
|
- spec/support/app/controllers/downloads_controller.rb
|
297
|
+
- spec/support/app/models/generic_content.rb
|
306
298
|
- spec/support/app/models/sample.rb
|
307
299
|
- spec/support/app/models/solr_document.rb
|
308
300
|
- spec/support/db/migrate/20111101221803_create_searches.rb
|
@@ -310,7 +302,9 @@ test_files:
|
|
310
302
|
- spec/support/lib/tasks/rspec.rake
|
311
303
|
- spec/support/matchers/helper_matcher.rb
|
312
304
|
- spec/support/matchers/solr_matchers.rb
|
305
|
+
- spec/support/spec/fixtures/hydra_test_generic_content.foxml.xml
|
313
306
|
- spec/support/spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml
|
307
|
+
- spec/test_app_templates/Gemfile.extra
|
314
308
|
- spec/unit/hydra-head-engine_spec.rb
|
315
309
|
- spec/unit/hydra-head_spec.rb
|
316
310
|
has_rdoc:
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Hydra
|
2
|
-
module FacetsHelperBehavior
|
3
|
-
include Blacklight::FacetsHelperBehavior
|
4
|
-
|
5
|
-
# Removing the [remove] link and label class from the default selected facet display
|
6
|
-
def render_selected_facet_value(facet_solr_field, item)
|
7
|
-
content_tag(:span, render_facet_value(facet_solr_field, item, :suppress_link => true), :class => "selected")
|
8
|
-
end
|
9
|
-
|
10
|
-
# Override to remove the label class (easier integration with bootstrap)
|
11
|
-
# and handles arrays
|
12
|
-
def render_facet_value(facet_solr_field, item, options ={})
|
13
|
-
if item.is_a? Array
|
14
|
-
render_array_facet_value(facet_solr_field, item, options)
|
15
|
-
end
|
16
|
-
|
17
|
-
(link_to_unless(options[:suppress_link], facet_display_value(facet_solr_field, item), add_facet_params_and_redirect(facet_solr_field, item.value), :class=>"facet_select") + " " + render_facet_count(item.hits)).html_safe
|
18
|
-
end
|
19
|
-
|
20
|
-
def render_array_facet_value(facet_solr_field, item, options)
|
21
|
-
(link_to_unless(options[:suppress_link], facet_display_value(facet_solr_field, item[0]), add_facet_params_and_redirect(facet_solr_field, item[0]), :class=>"facet_select") + " (" + format_num(item[1]) + ")").html_safe
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
data/lib/hydra-head/routes.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
module HydraHead
|
3
|
-
class Routes
|
4
|
-
|
5
|
-
def initialize(router, options)
|
6
|
-
@router = router
|
7
|
-
@options = options
|
8
|
-
end
|
9
|
-
|
10
|
-
def draw
|
11
|
-
route_sets.each do |r|
|
12
|
-
self.send(r)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
protected
|
17
|
-
|
18
|
-
def add_routes &blk
|
19
|
-
@router.instance_exec(@options, &blk)
|
20
|
-
end
|
21
|
-
|
22
|
-
def route_sets
|
23
|
-
(@options[:only] || default_route_sets) - (@options[:except] || [])
|
24
|
-
end
|
25
|
-
|
26
|
-
def default_route_sets
|
27
|
-
[:assets_with_all_nested_routes]
|
28
|
-
end
|
29
|
-
|
30
|
-
module RouteSets
|
31
|
-
def assets_with_all_nested_routes
|
32
|
-
add_routes do |options|
|
33
|
-
namespace :hydra do
|
34
|
-
resources :file_assets
|
35
|
-
resources :assets do
|
36
|
-
resources :file_assets
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
include RouteSets
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
data/lib/hydra/controller.rb
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
module Hydra::Controller
|
2
|
-
autoload :AssetsControllerBehavior, 'hydra/controller/assets_controller_behavior'
|
3
|
-
autoload :ControllerBehavior, 'hydra/controller/controller_behavior'
|
4
|
-
autoload :UploadBehavior, 'hydra/controller/upload_behavior'
|
5
|
-
autoload :DownloadBehavior, 'hydra/controller/download_behavior'
|
6
|
-
autoload :FileAssetsBehavior, 'hydra/controller/file_assets_behavior'
|
7
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module Hydra::GlobalConfigurable
|
2
|
-
|
3
|
-
# The config environment name used by the #config method
|
4
|
-
#
|
5
|
-
# Example:
|
6
|
-
# class MyThing
|
7
|
-
# extend Hydra::GlobalConfigurable
|
8
|
-
# end
|
9
|
-
#
|
10
|
-
# Now MyThing.config will be the result of:
|
11
|
-
# MyThing.configure(:production) {|config|}
|
12
|
-
#
|
13
|
-
# You set shared attributes by leaving the first argument blank or passing the :shared value:
|
14
|
-
# MyThing.configure {|config|}
|
15
|
-
# or
|
16
|
-
# MyThing.configure(:shared) {|config|}
|
17
|
-
|
18
|
-
# sets the @configs variable to a new Hash with empty Hash for :shared key and @config to nil
|
19
|
-
def reset_configs!
|
20
|
-
@config = nil
|
21
|
-
@configs = {:shared=>{}}
|
22
|
-
end
|
23
|
-
|
24
|
-
# A hash of all environment configs
|
25
|
-
# The key is the environment name, the value a Hash
|
26
|
-
def configs
|
27
|
-
@configs ? @configs : (reset_configs! and @configs)
|
28
|
-
end
|
29
|
-
|
30
|
-
# The main config accessor. It merges the current configs[::Rails.env]
|
31
|
-
# with configs[:shared] and lazy-loads @config to the result.
|
32
|
-
def config
|
33
|
-
@config ||= configs[:shared].merge(configs[::Rails.env] ||= {})
|
34
|
-
end
|
35
|
-
alias_method :blacklight_config, :config
|
36
|
-
|
37
|
-
# Accepts a value for the environment to configure and a block
|
38
|
-
# A hash is yielded to the block
|
39
|
-
# If the "env" != :shared,
|
40
|
-
# the hash is created by deep cloning the :shared environment config.
|
41
|
-
# This makes it possible to create defaults in the :shared config
|
42
|
-
def configure(env = :shared, &blk)
|
43
|
-
configs[env] = {}
|
44
|
-
yield configs[env]
|
45
|
-
end
|
46
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# Include this into models that you want to conform to the Hydra commonMetadata cModel
|
2
|
-
# See https://wiki.duraspace.org/display/hydra/Hydra+objects%2C+content+models+%28cModels%29+and+disseminators#Hydraobjects%2Ccontentmodels%28cModels%29anddisseminators-models
|
3
|
-
#
|
4
|
-
# Explicitly declares:
|
5
|
-
# rightsMetadata datastream using Hydra::RightsMetadata Terminology
|
6
|
-
#
|
7
|
-
# Does not explicitly declare:
|
8
|
-
# descMetadata datastream -- should be declared by a more specific mixin like Hydra::ModelMixins::ModsObject
|
9
|
-
# DC datastream -- Handled by ActiveFedora::Base
|
10
|
-
# RELS-EXT datastream -- Handled by ActiveFedora::Base & ActiveFedora::RelsExtDatastream
|
11
|
-
# optional datastreams (contentMetadata, technicalMetadata, provenanceMetadata, sourceMetadata)
|
12
|
-
#
|
13
|
-
module Hydra::ModelMixins
|
14
|
-
module CommonMetadata
|
15
|
-
extend Deprecation
|
16
|
-
extend ActiveSupport::Concern
|
17
|
-
|
18
|
-
included do
|
19
|
-
# Uses the Hydra Rights Metadata Schema for tracking access permissions & copyright
|
20
|
-
has_metadata "rightsMetadata", type: Hydra::Datastream::RightsMetadata
|
21
|
-
Deprecation.warn(CommonMetadata, "Hydra::ModelMixins::CommonMetadata is deprecated and will be removed in hydra-head 7. Use Hydra::AccessControls::Permissions instead.", caller(1))
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module Hydra::ModelMixins
|
2
|
-
module SolrDocumentExtension
|
3
|
-
extend Deprecation
|
4
|
-
self.deprecation_horizon = 'hydra-head 7.0.0'
|
5
|
-
|
6
|
-
def document_type display_type = CatalogController.blacklight_config.show.display_type
|
7
|
-
type = self.fetch(:medium_t, nil)
|
8
|
-
|
9
|
-
type ||= self.fetch(display_type, nil) if display_type
|
10
|
-
|
11
|
-
type.first.to_s.gsub("info:fedora/afmodel:","").gsub("Hydrangea","").gsub(/^Generic/,"")
|
12
|
-
end
|
13
|
-
deprecation_deprecate :document_type
|
14
|
-
|
15
|
-
def get_person_from_role(role, opts={})
|
16
|
-
i = 0
|
17
|
-
while i < 10
|
18
|
-
persons_roles = self["person_#{i}_role_t"].map{|w|w.strip.downcase} unless self["person_#{i}_role_t"].nil?
|
19
|
-
if persons_roles and persons_roles.include?(role.downcase)
|
20
|
-
return {:first=>self["person_#{i}_first_name_t"], :last=>self["person_#{i}_last_name_t"]}
|
21
|
-
end
|
22
|
-
i += 1
|
23
|
-
end
|
24
|
-
end
|
25
|
-
deprecation_deprecate :get_person_from_role
|
26
|
-
|
27
|
-
def get_file_asset_count()
|
28
|
-
ActiveFedora::Base.count(:conditions=>"is_part_of_t:#{ActiveFedora::Base.quote_for_solr(id)}")
|
29
|
-
end
|
30
|
-
deprecation_deprecate :get_file_asset_count
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
data/lib/hydra/models.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe FacetsHelper do
|
4
|
-
let(:blacklight_config) { Blacklight::Configuration.new }
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
helper.stub(:blacklight_config).and_return blacklight_config
|
8
|
-
end
|
9
|
-
|
10
|
-
|
11
|
-
describe "render_selected_facet_value" do
|
12
|
-
it "should be html_safe and not have the remove link" do
|
13
|
-
item = double("item", :value=>'two', :hits=>9)
|
14
|
-
ret_val = helper.render_selected_facet_value("one", item)
|
15
|
-
ret_val.should == "<span class=\"selected\">two <span class=\"count\">9</span></span>"
|
16
|
-
ret_val.should be_html_safe
|
17
|
-
end
|
18
|
-
it "should use facet_display_value" do
|
19
|
-
item = double("item", :value=>'two', :hits=>9)
|
20
|
-
helper.stub(:facet_display_value).and_return('four')
|
21
|
-
ret_val = helper.render_selected_facet_value("one", item)
|
22
|
-
ret_val.should == "<span class=\"selected\">four <span class=\"count\">9</span></span>"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
@@ -1,98 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
3
|
-
|
4
|
-
describe Hydra::GlobalConfigurable do
|
5
|
-
|
6
|
-
class TestConfig
|
7
|
-
extend Hydra::GlobalConfigurable
|
8
|
-
end
|
9
|
-
|
10
|
-
before(:each) do
|
11
|
-
TestConfig.reset_configs!
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should respond to configure" do
|
15
|
-
TestConfig.respond_to? :configure
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "the default state" do
|
19
|
-
describe "config" do
|
20
|
-
it "should be a Hash" do
|
21
|
-
TestConfig.config.should be_a Hash
|
22
|
-
end
|
23
|
-
end
|
24
|
-
describe "configs[:shared]" do
|
25
|
-
it "should be a Hash" do
|
26
|
-
TestConfig.configs[:shared].should be_a Hash
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe "configs[:shared]" do
|
32
|
-
it "should not have the values of its members altered by other environments" do
|
33
|
-
TestConfig.configure do |config|
|
34
|
-
config[:key] = ":shared value"
|
35
|
-
end
|
36
|
-
TestConfig.configure(::Rails.env) do |config|
|
37
|
-
config[:key] = ":test value"
|
38
|
-
end
|
39
|
-
TestConfig.config[:key].should == ":test value"
|
40
|
-
TestConfig.configs[:shared][:key].should == ":shared value"
|
41
|
-
TestConfig.configs[::Rails.env][:key].should == ":test value"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "the #configure method behavior" do
|
46
|
-
it "requires a block" do
|
47
|
-
lambda{TestConfig.configure}.should raise_error(LocalJumpError)
|
48
|
-
end
|
49
|
-
it "yields a hash" do
|
50
|
-
TestConfig.configure{|config| config.should be_a(Hash) }
|
51
|
-
end
|
52
|
-
it "should clear the configs if reset_configs! is called" do
|
53
|
-
TestConfig.configure do |config|
|
54
|
-
config[:asdf] = 'asdf'
|
55
|
-
end
|
56
|
-
TestConfig.configs[:shared][:asdf].should == 'asdf'
|
57
|
-
TestConfig.reset_configs!
|
58
|
-
TestConfig.configs[:shared][:asdf].should == nil
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should merge settings from the :shared environment" do
|
62
|
-
TestConfig.configure do |config|
|
63
|
-
config[:app_id] = 'Blacklight'
|
64
|
-
config[:mode] = :shared!
|
65
|
-
end
|
66
|
-
TestConfig.configure(::Rails.env) do |config|
|
67
|
-
config[:mode] = ::Rails.env
|
68
|
-
end
|
69
|
-
TestConfig.config[:app_id].should == 'Blacklight'
|
70
|
-
TestConfig.config[:mode].should_not == :shared!
|
71
|
-
TestConfig.config[:mode].should == ::Rails.env
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
describe "config" do
|
76
|
-
it "should return an empty Hash if nothing was configured" do
|
77
|
-
TestConfig.config.should == {}
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should return only what is in configs[:shared] if no other environment was configured" do
|
81
|
-
TestConfig.configure(:shared) do |config|
|
82
|
-
config[:foo] = 'bar'
|
83
|
-
config[:baz] = 'dang'
|
84
|
-
end
|
85
|
-
TestConfig.config.should == {:foo => 'bar', :baz => 'dang'}
|
86
|
-
TestConfig.config.should == TestConfig.configs[:shared]
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should return a merge of configs[:shared] and configs[RAILS_ENV]" do
|
90
|
-
TestConfig.configure(:shared) do |config|
|
91
|
-
config[:foo] = 'bar'
|
92
|
-
config[:baz] = 'dang'
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
|
98
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Hydra::ModelMixins::SolrDocumentExtension do
|
4
|
-
before do
|
5
|
-
@doc = SolrDocument.new(:id=>'changeme:99')
|
6
|
-
end
|
7
|
-
|
8
|
-
it "should get_file_asset_count" do
|
9
|
-
Deprecation.stub(:warn).and_return(nil)
|
10
|
-
mock_result = {'response'=>{'numFound'=>0}}
|
11
|
-
ActiveFedora::SolrService.should_receive(:query).with("is_part_of_t:\"changeme\\:99\"", :rows=>0, :raw=>true).and_return(mock_result)
|
12
|
-
@doc.get_file_asset_count.should == 0
|
13
|
-
end
|
14
|
-
end
|