sufia-models 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.md +177 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/app/models/batch.rb +46 -0
- data/app/models/checksum_audit_log.rb +35 -0
- data/app/models/contact_form.rb +42 -0
- data/app/models/datastreams/batch_rdf_datastream.rb +23 -0
- data/app/models/datastreams/file_content_datastream.rb +18 -0
- data/app/models/datastreams/fits_datastream.rb +188 -0
- data/app/models/datastreams/generic_file_rdf_datastream.rb +75 -0
- data/app/models/datastreams/paranoid_rights_datastream.rb +37 -0
- data/app/models/datastreams/properties_datastream.rb +33 -0
- data/app/models/domain_term.rb +18 -0
- data/app/models/follow.rb +28 -0
- data/app/models/generic_file.rb +16 -0
- data/app/models/geo_names_resource.rb +34 -0
- data/app/models/group.rb +8 -0
- data/app/models/local_authority.rb +93 -0
- data/app/models/local_authority_entry.rb +18 -0
- data/app/models/single_use_link.rb +26 -0
- data/app/models/subject_local_authority_entry.rb +16 -0
- data/app/models/trophy.rb +12 -0
- data/app/models/version_committer.rb +17 -0
- data/lib/sufia/models.rb +11 -0
- data/lib/sufia/models/active_fedora/redis.rb +49 -0
- data/lib/sufia/models/active_record/redis.rb +56 -0
- data/lib/sufia/models/engine.rb +34 -0
- data/lib/sufia/models/file_content.rb +9 -0
- data/lib/sufia/models/file_content/extract_metadata.rb +60 -0
- data/lib/sufia/models/file_content/versions.rb +23 -0
- data/lib/sufia/models/generic_file.rb +183 -0
- data/lib/sufia/models/generic_file/actions.rb +39 -0
- data/lib/sufia/models/generic_file/audit.rb +119 -0
- data/lib/sufia/models/generic_file/characterization.rb +81 -0
- data/lib/sufia/models/generic_file/export.rb +339 -0
- data/lib/sufia/models/generic_file/permissions.rb +64 -0
- data/lib/sufia/models/generic_file/thumbnail.rb +91 -0
- data/lib/sufia/models/id_service.rb +57 -0
- data/lib/sufia/models/jobs/audit_job.rb +65 -0
- data/lib/sufia/models/jobs/batch_update_job.rb +86 -0
- data/lib/sufia/models/jobs/characterize_job.rb +43 -0
- data/lib/sufia/models/jobs/content_delete_event_job.rb +31 -0
- data/lib/sufia/models/jobs/content_deposit_event_job.rb +32 -0
- data/lib/sufia/models/jobs/content_new_version_event_job.rb +32 -0
- data/lib/sufia/models/jobs/content_restored_version_event_job.rb +40 -0
- data/lib/sufia/models/jobs/content_update_event_job.rb +32 -0
- data/lib/sufia/models/jobs/event_job.rb +33 -0
- data/lib/sufia/models/jobs/ffmpeg_transcode_job.rb +61 -0
- data/lib/sufia/models/jobs/resolrize_job.rb +23 -0
- data/lib/sufia/models/jobs/transcode_audio_job.rb +40 -0
- data/lib/sufia/models/jobs/transcode_video_job.rb +39 -0
- data/lib/sufia/models/jobs/unzip_job.rb +54 -0
- data/lib/sufia/models/jobs/user_edit_profile_event_job.rb +35 -0
- data/lib/sufia/models/jobs/user_follow_event_job.rb +37 -0
- data/lib/sufia/models/jobs/user_unfollow_event_job.rb +38 -0
- data/lib/sufia/models/model_methods.rb +39 -0
- data/lib/sufia/models/noid.rb +42 -0
- data/lib/sufia/models/solr_document_behavior.rb +125 -0
- data/lib/sufia/models/user.rb +126 -0
- data/lib/sufia/models/utils.rb +36 -0
- data/lib/sufia/models/version.rb +5 -0
- data/lib/tasks/sufia-models_tasks.rake +4 -0
- data/sufia-models.gemspec +28 -0
- metadata +151 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
# Copyright © 2012 The Pennsylvania State University
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'hydra/model_methods'
|
16
|
+
module Sufia
|
17
|
+
module ModelMethods
|
18
|
+
extend ActiveSupport::Concern
|
19
|
+
|
20
|
+
included do
|
21
|
+
include Hydra::ModelMethods
|
22
|
+
end
|
23
|
+
|
24
|
+
# OVERRIDE to support Hydra::Datastream::Properties which does not
|
25
|
+
# respond to :depositor_values but :depositor
|
26
|
+
# Adds metadata about the depositor to the asset
|
27
|
+
# Most important behavior: if the asset has a rightsMetadata datastream, this method will add +depositor_id+ to its individual edit permissions.
|
28
|
+
|
29
|
+
def apply_depositor_metadata(depositor_id)
|
30
|
+
rights_ds = self.datastreams["rightsMetadata"]
|
31
|
+
prop_ds = self.datastreams["properties"]
|
32
|
+
|
33
|
+
rights_ds.update_indexed_attributes([:edit_access, :person]=>depositor_id) unless rights_ds.nil?
|
34
|
+
prop_ds.depositor = depositor_id unless prop_ds.nil?
|
35
|
+
|
36
|
+
return true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Copyright © 2012 The Pennsylvania State University
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Sufia
|
16
|
+
module Noid
|
17
|
+
def Noid.noidify(identifier)
|
18
|
+
identifier.split(":").last
|
19
|
+
end
|
20
|
+
|
21
|
+
def Noid.namespaceize(identifier)
|
22
|
+
if identifier.start_with?(Noid.namespace)
|
23
|
+
identifier
|
24
|
+
else
|
25
|
+
"#{Noid.namespace}:#{identifier}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def noid
|
30
|
+
Noid.noidify(self.pid)
|
31
|
+
end
|
32
|
+
|
33
|
+
def normalize_identifier
|
34
|
+
params[:id] = Noid.namespaceize(params[:id])
|
35
|
+
end
|
36
|
+
|
37
|
+
protected
|
38
|
+
def Noid.namespace
|
39
|
+
Sufia::Engine.config.id_namespace
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
# Copyright © 2012 The Pennsylvania State University
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
# -*- encoding : utf-8 -*-
|
16
|
+
module Sufia
|
17
|
+
module SolrDocumentBehavior
|
18
|
+
def title_or_label
|
19
|
+
title || label
|
20
|
+
end
|
21
|
+
|
22
|
+
##
|
23
|
+
# Give our SolrDocument an ActiveModel::Naming appropriate route_key
|
24
|
+
def route_key
|
25
|
+
get(Solrizer.solr_name('has_model', :symbol)).split(':').last.downcase
|
26
|
+
end
|
27
|
+
|
28
|
+
##
|
29
|
+
# Offer the source (ActiveFedora-based) model to Rails for some of the
|
30
|
+
# Rails methods (e.g. link_to).
|
31
|
+
# @example
|
32
|
+
# link_to '...', SolrDocument(:id => 'bXXXXXX5').new => <a href="/dams_object/bXXXXXX5">...</a>
|
33
|
+
def to_model
|
34
|
+
m = ActiveFedora::Base.load_instance_from_solr(id, self)
|
35
|
+
return self if m.class == ActiveFedora::Base
|
36
|
+
m
|
37
|
+
end
|
38
|
+
|
39
|
+
def noid
|
40
|
+
self[Solrizer.solr_name('noid', Sufia::GenericFile.noid_indexer)]
|
41
|
+
end
|
42
|
+
|
43
|
+
def date_uploaded
|
44
|
+
field = self[Solrizer.solr_name("desc_metadata__date_uploaded", :stored_sortable, type: :date)]
|
45
|
+
return unless field.present?
|
46
|
+
begin
|
47
|
+
Date.parse(field).to_formatted_s(:standard)
|
48
|
+
rescue
|
49
|
+
logger.info "Unable to parse date: #{field.first.inspect} for #{self['id']}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def depositor(default = '')
|
54
|
+
val = Array(self[Solrizer.solr_name("depositor")]).first
|
55
|
+
val.present? ? val : default
|
56
|
+
end
|
57
|
+
|
58
|
+
def title
|
59
|
+
Array(self[Solrizer.solr_name('desc_metadata__title')]).first
|
60
|
+
end
|
61
|
+
|
62
|
+
def description
|
63
|
+
Array(self[Solrizer.solr_name('desc_metadata__description')]).first
|
64
|
+
end
|
65
|
+
|
66
|
+
def label
|
67
|
+
Array(self[Solrizer.solr_name('label')]).first
|
68
|
+
end
|
69
|
+
|
70
|
+
def file_format
|
71
|
+
Array(self[Solrizer.solr_name('file_format')]).first
|
72
|
+
end
|
73
|
+
|
74
|
+
def creator
|
75
|
+
Array(self[Solrizer.solr_name("desc_metadata__creator")]).first
|
76
|
+
end
|
77
|
+
|
78
|
+
def tags
|
79
|
+
Array(self[Solrizer.solr_name("desc_metadata__tag")])
|
80
|
+
end
|
81
|
+
|
82
|
+
def mime_type
|
83
|
+
Array(self[Solrizer.solr_name("mime_type")]).first
|
84
|
+
end
|
85
|
+
|
86
|
+
def read_groups
|
87
|
+
Array(self[Ability.read_group_field])
|
88
|
+
end
|
89
|
+
|
90
|
+
def edit_groups
|
91
|
+
Array(self[Ability.edit_group_field])
|
92
|
+
end
|
93
|
+
|
94
|
+
def edit_people
|
95
|
+
Array(self[Ability.edit_person_field])
|
96
|
+
end
|
97
|
+
|
98
|
+
def public?
|
99
|
+
read_groups.include?('public')
|
100
|
+
end
|
101
|
+
|
102
|
+
def registered?
|
103
|
+
read_groups.include?('registered')
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
def pdf?
|
108
|
+
['application/pdf'].include? self.mime_type
|
109
|
+
end
|
110
|
+
|
111
|
+
def image?
|
112
|
+
['image/png','image/jpeg', 'image/jpg', 'image/jp2', 'image/bmp', 'image/gif'].include? self.mime_type
|
113
|
+
end
|
114
|
+
|
115
|
+
def video?
|
116
|
+
['video/mpeg', 'video/mp4', 'video/webm', 'video/x-msvideo', 'video/avi', 'video/quicktime', 'application/mxf'].include? self.mime_type
|
117
|
+
end
|
118
|
+
|
119
|
+
def audio?
|
120
|
+
# audio/x-wave is the mime type that fits 0.6.0 returns for a wav file.
|
121
|
+
# audio/mpeg is the mime type that fits 0.6.0 returns for an mp3 file.
|
122
|
+
['audio/mp3', 'audio/mpeg', 'audio/x-wave', 'audio/x-wav', 'audio/ogg'].include? self.mime_type
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# Copyright © 2012 The Pennsylvania State University
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Sufia::User
|
16
|
+
extend ActiveSupport::Concern
|
17
|
+
|
18
|
+
included do
|
19
|
+
# Adds acts_as_messageable for user mailboxes
|
20
|
+
include Mailboxer::Models::Messageable
|
21
|
+
# Connects this user object to Blacklight's Bookmarks and Folders.
|
22
|
+
include Blacklight::User
|
23
|
+
include Hydra::User
|
24
|
+
|
25
|
+
delegate :can?, :cannot?, :to => :ability
|
26
|
+
|
27
|
+
# set this up as a messageable object
|
28
|
+
acts_as_messageable
|
29
|
+
|
30
|
+
# Users should be able to follow things
|
31
|
+
acts_as_follower
|
32
|
+
# Users should be followable
|
33
|
+
acts_as_followable
|
34
|
+
|
35
|
+
# Setup accessible (or protected) attributes for your model
|
36
|
+
attr_accessible :email, :login, :display_name, :address, :admin_area, :department, :title, :office, :chat_id, :website, :affiliation, :telephone, :avatar,
|
37
|
+
:group_list, :groups_last_update, :facebook_handle, :twitter_handle, :googleplus_handle
|
38
|
+
|
39
|
+
# Add user avatar (via paperclip library)
|
40
|
+
has_attached_file :avatar, :styles => { medium: "300x300>", thumb: "100x100>" }, :default_url => '/assets/missing_:style.png'
|
41
|
+
validates :avatar, :attachment_content_type => { :content_type => /^image\/(jpg|jpeg|pjpeg|png|x-png|gif)$/ }, :if => Proc.new { |p| p.avatar.file? }
|
42
|
+
validates :avatar, :attachment_size => { :less_than => 2.megabytes }, :if => Proc.new { |p| p.avatar.file? }
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
# Format the json for select2 which requires just an id and a field called text.
|
47
|
+
# If we need an alternate format we should probably look at a json template gem
|
48
|
+
def as_json(opts = nil)
|
49
|
+
{id: user_key, text: display_name ? "#{display_name} (#{user_key})" : user_key}
|
50
|
+
end
|
51
|
+
|
52
|
+
def email_address
|
53
|
+
return self.email
|
54
|
+
end
|
55
|
+
|
56
|
+
def name
|
57
|
+
return self.display_name.titleize || self.user_key rescue self.user_key
|
58
|
+
end
|
59
|
+
|
60
|
+
# Redefine this for more intuitive keys in Redis
|
61
|
+
def to_param
|
62
|
+
# hack because rails doesn't like periods in urls.
|
63
|
+
user_key.gsub(/\./, '-dot-')
|
64
|
+
end
|
65
|
+
|
66
|
+
# method needed for trophies
|
67
|
+
def trophies
|
68
|
+
trophies = Trophy.where(:user_id => self.id)
|
69
|
+
return trophies
|
70
|
+
end
|
71
|
+
|
72
|
+
#method to get the trophy ids without the namespace included
|
73
|
+
def trophy_ids
|
74
|
+
trophies.map { |t| "#{Sufia::Engine.config.id_namespace}:#{t.generic_file_id}" }
|
75
|
+
end
|
76
|
+
|
77
|
+
# method needed for messaging
|
78
|
+
def mailboxer_email(obj=nil)
|
79
|
+
return nil
|
80
|
+
end
|
81
|
+
|
82
|
+
# The basic groups method, override or will fallback to Sufia::Ldap::User
|
83
|
+
def groups
|
84
|
+
return self.group_list ? self.group_list.split(";?;") : []
|
85
|
+
end
|
86
|
+
|
87
|
+
def ability
|
88
|
+
@ability ||= Ability.new(self)
|
89
|
+
end
|
90
|
+
|
91
|
+
module ClassMethods
|
92
|
+
def current
|
93
|
+
Thread.current[:user]
|
94
|
+
end
|
95
|
+
|
96
|
+
def current=(user)
|
97
|
+
Thread.current[:user] = user
|
98
|
+
end
|
99
|
+
|
100
|
+
# Override this method if you aren't using email/password
|
101
|
+
def audituser
|
102
|
+
User.find_by_user_key(audituser_key) || User.create!(Devise.authentication_keys.first => audituser_key, password: Devise.friendly_token[0,20])
|
103
|
+
end
|
104
|
+
|
105
|
+
# Override this method if you aren't using email as the userkey
|
106
|
+
def audituser_key
|
107
|
+
'audituser@example.com'
|
108
|
+
end
|
109
|
+
|
110
|
+
# Override this method if you aren't using email/password
|
111
|
+
def batchuser
|
112
|
+
User.find_by_user_key(batchuser_key) || User.create!(Devise.authentication_keys.first => batchuser_key, password: Devise.friendly_token[0,20])
|
113
|
+
end
|
114
|
+
|
115
|
+
# Override this method if you aren't using email as the userkey
|
116
|
+
def batchuser_key
|
117
|
+
'batchuser@example.com'
|
118
|
+
end
|
119
|
+
|
120
|
+
def from_url_component(component)
|
121
|
+
User.find_by_user_key(component.gsub(/-dot-/, '.'))
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Copyright © 2012 The Pennsylvania State University
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Sufia
|
16
|
+
module Utils
|
17
|
+
extend ActiveSupport::Concern
|
18
|
+
|
19
|
+
def retry_unless(number_of_tries, condition, &block)
|
20
|
+
self.class.retry_unless(number_of_tries, condition, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
module ClassMethods
|
24
|
+
def retry_unless(number_of_tries, condition, &block)
|
25
|
+
raise ArgumentError, "First argument must be an enumerator" unless number_of_tries.is_a? Enumerator
|
26
|
+
raise ArgumentError, "Second argument must be a lambda" unless condition.respond_to? :call
|
27
|
+
raise ArgumentError, "Must pass a block of code to retry" unless block_given?
|
28
|
+
number_of_tries.each do
|
29
|
+
result = block.call
|
30
|
+
return result unless condition.call
|
31
|
+
end
|
32
|
+
raise RuntimeError, "retry_unless could not complete successfully. Try upping the # of tries?"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'sufia/models/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "sufia-models"
|
8
|
+
spec.version = Sufia::Models::VERSION
|
9
|
+
spec.authors = [
|
10
|
+
"Jeremy Friesen",
|
11
|
+
]
|
12
|
+
spec.email = [
|
13
|
+
"jeremy.n.friesen@gmail.com",
|
14
|
+
]
|
15
|
+
spec.description = %q{Models and services for sufia}
|
16
|
+
spec.summary = %q{Models and services for sufia}
|
17
|
+
spec.homepage = "https://github.com/projecthydra/sufia-models"
|
18
|
+
spec.license = "Apache"
|
19
|
+
|
20
|
+
spec.files = `git ls-files`.split($/)
|
21
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
22
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
23
|
+
spec.require_paths = ["lib"]
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
26
|
+
spec.add_development_dependency "rake"
|
27
|
+
spec.add_dependency "rails", "~> 3.2.13"
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sufia-models
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeremy Friesen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.2.13
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.2.13
|
55
|
+
description: Models and services for sufia
|
56
|
+
email:
|
57
|
+
- jeremy.n.friesen@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- Gemfile
|
64
|
+
- LICENSE.md
|
65
|
+
- README.md
|
66
|
+
- Rakefile
|
67
|
+
- app/models/batch.rb
|
68
|
+
- app/models/checksum_audit_log.rb
|
69
|
+
- app/models/contact_form.rb
|
70
|
+
- app/models/datastreams/batch_rdf_datastream.rb
|
71
|
+
- app/models/datastreams/file_content_datastream.rb
|
72
|
+
- app/models/datastreams/fits_datastream.rb
|
73
|
+
- app/models/datastreams/generic_file_rdf_datastream.rb
|
74
|
+
- app/models/datastreams/paranoid_rights_datastream.rb
|
75
|
+
- app/models/datastreams/properties_datastream.rb
|
76
|
+
- app/models/domain_term.rb
|
77
|
+
- app/models/follow.rb
|
78
|
+
- app/models/generic_file.rb
|
79
|
+
- app/models/geo_names_resource.rb
|
80
|
+
- app/models/group.rb
|
81
|
+
- app/models/local_authority.rb
|
82
|
+
- app/models/local_authority_entry.rb
|
83
|
+
- app/models/single_use_link.rb
|
84
|
+
- app/models/subject_local_authority_entry.rb
|
85
|
+
- app/models/trophy.rb
|
86
|
+
- app/models/version_committer.rb
|
87
|
+
- lib/sufia/models.rb
|
88
|
+
- lib/sufia/models/active_fedora/redis.rb
|
89
|
+
- lib/sufia/models/active_record/redis.rb
|
90
|
+
- lib/sufia/models/engine.rb
|
91
|
+
- lib/sufia/models/file_content.rb
|
92
|
+
- lib/sufia/models/file_content/extract_metadata.rb
|
93
|
+
- lib/sufia/models/file_content/versions.rb
|
94
|
+
- lib/sufia/models/generic_file.rb
|
95
|
+
- lib/sufia/models/generic_file/actions.rb
|
96
|
+
- lib/sufia/models/generic_file/audit.rb
|
97
|
+
- lib/sufia/models/generic_file/characterization.rb
|
98
|
+
- lib/sufia/models/generic_file/export.rb
|
99
|
+
- lib/sufia/models/generic_file/permissions.rb
|
100
|
+
- lib/sufia/models/generic_file/thumbnail.rb
|
101
|
+
- lib/sufia/models/id_service.rb
|
102
|
+
- lib/sufia/models/jobs/audit_job.rb
|
103
|
+
- lib/sufia/models/jobs/batch_update_job.rb
|
104
|
+
- lib/sufia/models/jobs/characterize_job.rb
|
105
|
+
- lib/sufia/models/jobs/content_delete_event_job.rb
|
106
|
+
- lib/sufia/models/jobs/content_deposit_event_job.rb
|
107
|
+
- lib/sufia/models/jobs/content_new_version_event_job.rb
|
108
|
+
- lib/sufia/models/jobs/content_restored_version_event_job.rb
|
109
|
+
- lib/sufia/models/jobs/content_update_event_job.rb
|
110
|
+
- lib/sufia/models/jobs/event_job.rb
|
111
|
+
- lib/sufia/models/jobs/ffmpeg_transcode_job.rb
|
112
|
+
- lib/sufia/models/jobs/resolrize_job.rb
|
113
|
+
- lib/sufia/models/jobs/transcode_audio_job.rb
|
114
|
+
- lib/sufia/models/jobs/transcode_video_job.rb
|
115
|
+
- lib/sufia/models/jobs/unzip_job.rb
|
116
|
+
- lib/sufia/models/jobs/user_edit_profile_event_job.rb
|
117
|
+
- lib/sufia/models/jobs/user_follow_event_job.rb
|
118
|
+
- lib/sufia/models/jobs/user_unfollow_event_job.rb
|
119
|
+
- lib/sufia/models/model_methods.rb
|
120
|
+
- lib/sufia/models/noid.rb
|
121
|
+
- lib/sufia/models/solr_document_behavior.rb
|
122
|
+
- lib/sufia/models/user.rb
|
123
|
+
- lib/sufia/models/utils.rb
|
124
|
+
- lib/sufia/models/version.rb
|
125
|
+
- lib/tasks/sufia-models_tasks.rake
|
126
|
+
- sufia-models.gemspec
|
127
|
+
homepage: https://github.com/projecthydra/sufia-models
|
128
|
+
licenses:
|
129
|
+
- Apache
|
130
|
+
metadata: {}
|
131
|
+
post_install_message:
|
132
|
+
rdoc_options: []
|
133
|
+
require_paths:
|
134
|
+
- lib
|
135
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
requirements: []
|
146
|
+
rubyforge_project:
|
147
|
+
rubygems_version: 2.0.3
|
148
|
+
signing_key:
|
149
|
+
specification_version: 4
|
150
|
+
summary: Models and services for sufia
|
151
|
+
test_files: []
|