Module: ActiveFedora::Common

Extended by:
ActiveSupport::Concern
Includes:
Pathing
Included in:
Core, File
Defined in:
lib/active_fedora/common.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

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

#etagString

Returns the etag from the response headers.

Returns:

  • (String)

    the etag from the response headers

Raises:

  • (RuntimeError)

    when the resource is new and has no etag

  • (Ldp::Gone)

    when the resource is deleted



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

#freezeObject

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

Returns:

  • (Boolean)


63
64
65
# File 'lib/active_fedora/common.rb', line 63

def frozen?
  @frozen.present?
end

#ldp_sourceObject



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.

Returns:

  • (Boolean)


69
70
71
# File 'lib/active_fedora/common.rb', line 69

def readonly?
  @readonly
end