sufia-models 3.4.0.rc1 → 3.4.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 864fcf836acb9a34187c342354bf943a736988f5
4
- data.tar.gz: 02fa325f9ec39f51169643e79d6ed0a5dc41de89
3
+ metadata.gz: 1b7a4b3cdaff9deeb0daf9a3187c248a84187e43
4
+ data.tar.gz: fb13bbf2f95b343425790369e7fe7274cd00aa5d
5
5
  SHA512:
6
- metadata.gz: fa522802062007fedff7c959cb3b1b5da39c2d61fab46fc81a86f982a5c67fa8c5267b0110fe50beec4f803266ac672ca5e69c041c02a061832bfc40f4e290f9
7
- data.tar.gz: 9f6713b40affc73f74b88140ac3755c8909a22ed88ac60647f28b4b009f502293a3602a67e8f06d243d52e6f4e0c4615e68753cc35e9f146239ed490ee0d908e
6
+ metadata.gz: 156794daad36670ca931d967e88351953a152654517ad278b006cbff3603b68cbb0d11d6f91684f74edf641df1a0e46397dd48b59ea4d67e8f62c2cffb73403b
7
+ data.tar.gz: fc3ed4678add11ee8f51c55c8d691b4984b835acf29d362ac7ec86d6adc7e23c4be2e8a5e22ad18b655a190b792a2eec49f85c9e335bfd6a423a062340e9f961
@@ -6,6 +6,9 @@ module Sufia
6
6
  autoload :Permissions, 'sufia/models/generic_file/permissions'
7
7
  autoload :WebForm, 'sufia/models/generic_file/web_form'
8
8
  autoload :AccessibleAttributes, 'sufia/models/generic_file/accessible_attributes'
9
+ autoload :Trophies, 'sufia/models/generic_file/trophies'
10
+ autoload :Metadata, 'sufia/models/generic_file/metadata'
11
+ autoload :Versions, 'sufia/models/generic_file/versions'
9
12
  include Sufia::ModelMethods
10
13
  include Sufia::Noid
11
14
  include Sufia::GenericFile::MimeTypes
@@ -16,55 +19,18 @@ module Sufia
16
19
  include Sufia::GenericFile::Permissions
17
20
  include Sufia::GenericFile::WebForm
18
21
  include Sufia::GenericFile::Derivatives
22
+ include Sufia::GenericFile::Trophies
23
+ include Sufia::GenericFile::Metadata
24
+ include Sufia::GenericFile::Versions
19
25
 
20
26
  included do
21
- has_metadata :name => "descMetadata", :type => GenericFileRdfDatastream
22
- has_metadata :name => "properties", :type => PropertiesDatastream
23
- has_file_datastream :name => "content", :type => FileContentDatastream
24
- has_file_datastream :name => "thumbnail"
25
-
26
27
  belongs_to :batch, :property => :is_part_of
27
28
 
28
- delegate_to :properties, [:relative_path, :depositor, :import_url], multiple: false
29
- delegate_to :descMetadata, [:date_uploaded, :date_modified], multiple: false
30
- delegate_to :descMetadata, [:related_url, :based_near, :part_of, :creator,
31
- :contributor, :title, :tag, :description, :rights,
32
- :publisher, :date_created, :subject,
33
- :resource_type, :identifier, :language], multiple: true
34
-
35
29
  around_save :characterize_if_changed, :retry_warming
36
- before_destroy :cleanup_trophies
37
30
 
38
31
  attr_accessible *(ds_specs['descMetadata'][:type].fields + [:permissions])
39
32
  end
40
33
 
41
-
42
- def record_version_committer(user)
43
- version = content.latest_version
44
- # content datastream not (yet?) present
45
- return if version.nil?
46
- VersionCommitter.create(:obj_id => version.pid,
47
- :datastream_id => version.dsid,
48
- :version_id => version.versionID,
49
- :committer_login => user.user_key)
50
- end
51
-
52
- def pdf?
53
- self.class.pdf_mime_types.include? self.mime_type
54
- end
55
-
56
- def image?
57
- self.class.image_mime_types.include? self.mime_type
58
- end
59
-
60
- def video?
61
- self.class.video_mime_types.include? self.mime_type
62
- end
63
-
64
- def audio?
65
- self.class.audio_mime_types.include? self.mime_type
66
- end
67
-
68
34
  def persistent_url
69
35
  "#{Sufia.config.persistent_hostpath}#{noid}"
70
36
  end
@@ -100,10 +66,6 @@ module Sufia
100
66
  end
101
67
  end
102
68
 
103
- def cleanup_trophies
104
- Trophy.destroy_all(generic_file_id: self.noid)
105
- end
106
-
107
69
  def related_files
108
70
  relateds = begin
109
71
  self.batch.generic_files
@@ -130,13 +92,6 @@ module Sufia
130
92
  return solr_doc
131
93
  end
132
94
 
133
- def file_format
134
- return nil if self.mime_type.blank? and self.format_label.blank?
135
- return self.mime_type.split('/')[1]+ " ("+self.format_label.join(", ")+")" unless self.mime_type.blank? or self.format_label.blank?
136
- return self.mime_type.split('/')[1] unless self.mime_type.blank?
137
- return self.format_label
138
- end
139
-
140
95
  # Redefine this for more intuitive keys in Redis
141
96
  def to_param
142
97
  noid
@@ -0,0 +1,22 @@
1
+ module Sufia
2
+ module GenericFile
3
+ module Metadata
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ has_metadata "descMetadata", type: GenericFileRdfDatastream
8
+ has_metadata "properties", type: PropertiesDatastream
9
+ has_file_datastream "content", type: FileContentDatastream
10
+ has_file_datastream "thumbnail"
11
+
12
+
13
+ delegate_to :properties, [:relative_path, :depositor, :import_url], multiple: false
14
+ delegate_to :descMetadata, [:date_uploaded, :date_modified], multiple: false
15
+ delegate_to :descMetadata, [:related_url, :based_near, :part_of, :creator,
16
+ :contributor, :title, :tag, :description, :rights,
17
+ :publisher, :date_created, :subject,
18
+ :resource_type, :identifier, :language], multiple: true
19
+ end
20
+ end
21
+ end
22
+ end
@@ -3,6 +3,29 @@ module Sufia
3
3
  module MimeTypes
4
4
  extend ActiveSupport::Concern
5
5
 
6
+ def pdf?
7
+ self.class.pdf_mime_types.include? self.mime_type
8
+ end
9
+
10
+ def image?
11
+ self.class.image_mime_types.include? self.mime_type
12
+ end
13
+
14
+ def video?
15
+ self.class.video_mime_types.include? self.mime_type
16
+ end
17
+
18
+ def audio?
19
+ self.class.audio_mime_types.include? self.mime_type
20
+ end
21
+
22
+ def file_format
23
+ return nil if self.mime_type.blank? and self.format_label.blank?
24
+ return self.mime_type.split('/')[1]+ " ("+self.format_label.join(", ")+")" unless self.mime_type.blank? or self.format_label.blank?
25
+ return self.mime_type.split('/')[1] unless self.mime_type.blank?
26
+ return self.format_label
27
+ end
28
+
6
29
  module ClassMethods
7
30
  def image_mime_types
8
31
  ['image/png','image/jpeg', 'image/jpg', 'image/jp2', 'image/bmp', 'image/gif']
@@ -0,0 +1,15 @@
1
+ module Sufia
2
+ module GenericFile
3
+ module Trophies
4
+ extend ActiveSupport::Concern
5
+ included do
6
+ before_destroy :cleanup_trophies
7
+ end
8
+
9
+ def cleanup_trophies
10
+ Trophy.destroy_all(generic_file_id: self.noid)
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ module Sufia
2
+ module GenericFile
3
+ module Versions
4
+ def record_version_committer(user)
5
+ version = content.latest_version
6
+ # content datastream not (yet?) present
7
+ return if version.nil?
8
+ VersionCommitter.create(:obj_id => version.pid,
9
+ :datastream_id => version.dsid,
10
+ :version_id => version.versionID,
11
+ :committer_login => user.user_key)
12
+ end
13
+
14
+ end
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  module Sufia
2
2
  module Models
3
- VERSION = "3.4.0.rc1"
3
+ VERSION = "3.4.0.rc2"
4
4
  end
5
5
  end
data/sufia-models.gemspec CHANGED
@@ -30,10 +30,10 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'rails', '>= 3.2.13', '< 5.0'
31
31
  spec.add_dependency 'activeresource' # No longer a dependency of rails 4.0
32
32
 
33
- # spec.add_dependency "hydra", "6.1.0.rc1"
33
+ # spec.add_dependency "hydra", "6.1.0.rc2"
34
34
  # Since hydra 6.1 isn't out yet, we'll just build it so that it's compatible
35
35
  # without an explicit dependency
36
- spec.add_dependency "hydra-head", "~> 6.4.0.rc1"
36
+ spec.add_dependency "hydra-head", "~> 6.4.0.rc2"
37
37
  spec.add_dependency 'active-fedora', "~> 6.6.0.rc1"
38
38
 
39
39
  spec.add_dependency 'nest', '~> 1.1.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia-models
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0.rc1
4
+ version: 3.4.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Friesen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-01 00:00:00.000000000 Z
11
+ date: 2013-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - ~>
80
80
  - !ruby/object:Gem::Version
81
- version: 6.4.0.rc1
81
+ version: 6.4.0.rc2
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ~>
87
87
  - !ruby/object:Gem::Version
88
- version: 6.4.0.rc1
88
+ version: 6.4.0.rc2
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: active-fedora
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -246,8 +246,6 @@ files:
246
246
  - Rakefile
247
247
  - app/models/batch.rb
248
248
  - app/models/checksum_audit_log.rb
249
- - app/models/concerns/sufia/models/access_right.rb
250
- - app/models/concerns/sufia/models/with_access_right.rb
251
249
  - app/models/datastreams/batch_rdf_datastream.rb
252
250
  - app/models/datastreams/file_content_datastream.rb
253
251
  - app/models/datastreams/fits_datastream.rb
@@ -300,9 +298,12 @@ files:
300
298
  - lib/sufia/models/generic_file/characterization.rb
301
299
  - lib/sufia/models/generic_file/derivatives.rb
302
300
  - lib/sufia/models/generic_file/export.rb
301
+ - lib/sufia/models/generic_file/metadata.rb
303
302
  - lib/sufia/models/generic_file/mime_types.rb
304
303
  - lib/sufia/models/generic_file/permissions.rb
305
304
  - lib/sufia/models/generic_file/thumbnail.rb
305
+ - lib/sufia/models/generic_file/trophies.rb
306
+ - lib/sufia/models/generic_file/versions.rb
306
307
  - lib/sufia/models/generic_file/web_form.rb
307
308
  - lib/sufia/models/id_service.rb
308
309
  - lib/sufia/models/jobs/active_fedora_pid_based_job.rb
@@ -1,79 +0,0 @@
1
- module Sufia
2
- module Models
3
- class AccessRight
4
- PERMISSION_TEXT_VALUE_PUBLIC = 'public'.freeze
5
- PERMISSION_TEXT_VALUE_AUTHENTICATED = 'registered'.freeze
6
- VISIBILITY_TEXT_VALUE_PUBLIC = 'open'.freeze
7
- VISIBILITY_TEXT_VALUE_EMBARGO = 'open_with_embargo_release_date'.freeze
8
- VISIBILITY_TEXT_VALUE_AUTHENTICATED = 'psu'.freeze
9
- VISIBILITY_TEXT_VALUE_PRIVATE = 'restricted'.freeze
10
-
11
- # @param permissionable [#visibility, #permissions]
12
- # @example
13
- # file = GenericFile.find('sufia:1234')
14
- # access = Sufia::AccessRight.new(file)
15
- def initialize(permissionable)
16
- @permissionable = permissionable
17
- end
18
-
19
- attr_reader :permissionable
20
- delegate :persisted?, :permissions, :visibility, to: :permissionable
21
- protected :persisted?, :permissions, :visibility
22
-
23
-
24
- def open_access?
25
- return true if has_visibility_text_for?(VISIBILITY_TEXT_VALUE_PUBLIC)
26
- # We don't want to know if its under embargo, simply does it have a date.
27
- # In this way, we can properly inform the label input
28
- persisted_open_access_permission? && !permissionable.embargo_release_date.present?
29
- end
30
-
31
- def open_access_with_embargo_release_date?
32
- return false unless permissionable_is_embargoable?
33
- return true if has_visibility_text_for?(VISIBILITY_TEXT_VALUE_EMBARGO)
34
- # We don't want to know if its under embargo, simply does it have a date.
35
- # In this way, we can properly inform the label input
36
- persisted_open_access_permission? && permissionable.embargo_release_date.present?
37
- end
38
-
39
- def authenticated_only?
40
- return false if open_access?
41
- has_permission_text_for?(PERMISSION_TEXT_VALUE_AUTHENTICATED) ||
42
- has_visibility_text_for?(VISIBILITY_TEXT_VALUE_AUTHENTICATED)
43
- end
44
-
45
- def private?
46
- return false if open_access?
47
- return false if authenticated_only?
48
- return false if open_access_with_embargo_release_date?
49
- true
50
- end
51
-
52
- private
53
-
54
- def persisted_open_access_permission?
55
- if persisted?
56
- has_permission_text_for?(PERMISSION_TEXT_VALUE_PUBLIC)
57
- else
58
- visibility.to_s == ''
59
- end
60
- end
61
-
62
- def on_or_after_any_embargo_release_date?
63
- return true unless permissionable.embargo_release_date
64
- permissionable.embargo_release_date.to_date < Date.today
65
- end
66
-
67
- def permissionable_is_embargoable?
68
- permissionable.respond_to?(:embargo_release_date)
69
- end
70
-
71
- def has_visibility_text_for?(text)
72
- visibility == text
73
- end
74
- def has_permission_text_for?(text)
75
- !!permissions.detect { |perm| perm[:name] == text }
76
- end
77
- end
78
- end
79
- end
@@ -1,33 +0,0 @@
1
- module Sufia
2
- module Models
3
- module WithAccessRight
4
- extend ActiveSupport::Concern
5
-
6
- def under_embargo?
7
- @under_embargo ||= rightsMetadata.under_embargo?
8
- end
9
-
10
- def open_access?
11
- access_rights.open_access?
12
- end
13
-
14
- def open_access_with_embargo_release_date?
15
- access_rights.open_access_with_embargo_release_date?
16
- end
17
-
18
- def authenticated_only_access?
19
- access_rights.authenticated_only?
20
- end
21
-
22
- def private_access?
23
- access_rights.private?
24
- end
25
-
26
- def access_rights
27
- @access_rights ||= AccessRight.new(self)
28
- end
29
- protected :access_rights
30
-
31
- end
32
- end
33
- end