Module: ActiveFedora::Common
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Allows sort on objects.
-
#==(other) ⇒ Object
Returns true if
comparison_object
is the same exact object, orcomparison_object
is of the same type andself
has an ID and it is equal tocomparison_object.id
. -
#etag ⇒ String
The etag from the response headers.
-
#freeze ⇒ Object
Freeze datastreams such that they can be loaded from Fedora, but can’t be changed.
- #frozen? ⇒ Boolean
- #ldp_source ⇒ Object
-
#readonly! ⇒ Object
Marks this record as read only.
-
#readonly? ⇒ Boolean
Returns
true
if the record is read only.
Instance Method Details
#<=>(other) ⇒ Object
Allows sort on objects
50 51 52 53 54 55 56 |
# File 'lib/active_fedora/common.rb', line 50 def <=>(other) if other.is_a?(self.class) to_key <=> other.to_key else super end end |
#==(other) ⇒ Object
Returns true if comparison_object
is the same exact object, or comparison_object
is of the same type and self
has an ID and it is equal to comparison_object.id
.
Note that new records are different from any other record by definition, unless the other record is the receiver itself.
Note also that destroying a record preserves its ID in the model instance, so deleted models are still comparable.
42 43 44 45 46 47 |
# File 'lib/active_fedora/common.rb', line 42 def ==(other) other.equal?(self) || (other.instance_of?(self.class) && !id.nil? && other.id == id) end |
#etag ⇒ String
Returns the etag from the response headers.
25 26 27 28 |
# File 'lib/active_fedora/common.rb', line 25 def etag raise 'Unable to produce an etag for a unsaved object' if ldp_source.new? ldp_source.head.etag end |
#freeze ⇒ Object
Freeze datastreams such that they can be loaded from Fedora, but can’t be changed
59 60 61 |
# File 'lib/active_fedora/common.rb', line 59 def freeze @frozen = true end |
#frozen? ⇒ Boolean
63 64 65 |
# File 'lib/active_fedora/common.rb', line 63 def frozen? @frozen.present? end |
#ldp_source ⇒ Object
30 31 32 |
# File 'lib/active_fedora/common.rb', line 30 def ldp_source @ldp_source end |
#readonly! ⇒ Object
Marks this record as read only.
74 75 76 |
# File 'lib/active_fedora/common.rb', line 74 def readonly! @readonly = true end |
#readonly? ⇒ Boolean
Returns true
if the record is read only. Records loaded through joins with piggy-back attributes will be marked as read only since they cannot be saved.
69 70 71 |
# File 'lib/active_fedora/common.rb', line 69 def readonly? @readonly end |