sufia-models 0.0.1
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 +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: []
|