Module: ActiveFedora::Core
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #==(comparison_object) ⇒ Object
- #freeze ⇒ Object
- #frozen? ⇒ Boolean
-
#init_with_resource(rdf_resource) ⇒ Object
Initialize an empty model object and set its
resource
example:. -
#initialize(attributes_or_id = nil) {|_self| ... } ⇒ Object
Constructor.
- #ldp_source ⇒ Object
-
#readonly! ⇒ Object
Marks this record as read only.
-
#readonly? ⇒ Boolean
Returns
true
if the record is read only. -
#reload ⇒ Object
Reloads the object from Fedora.
Instance Method Details
#==(comparison_object) ⇒ Object
77 78 79 80 81 82 |
# File 'lib/active_fedora/core.rb', line 77 def ==(comparison_object) comparison_object.equal?(self) || (comparison_object.instance_of?(self.class) && comparison_object.id == id && !comparison_object.new_record?) end |
#freeze ⇒ Object
84 85 86 87 88 89 |
# File 'lib/active_fedora/core.rb', line 84 def freeze @resource.freeze #@attributes = @attributes.clone.freeze attached_files.freeze self end |
#frozen? ⇒ Boolean
91 92 93 |
# File 'lib/active_fedora/core.rb', line 91 def frozen? attached_files.frozen? end |
#init_with_resource(rdf_resource) ⇒ Object
Initialize an empty model object and set its resource
example:
class Post < ActiveFedora::Base
end
post = Post.allocate
post.init_with_resource(Ldp::Resource.new('http://example.com/post/1'))
post.title # => 'hello world'
68 69 70 71 72 73 74 75 |
# File 'lib/active_fedora/core.rb', line 68 def init_with_resource(rdf_resource) init_internals @ldp_source = rdf_resource load_attached_files run_callbacks :find run_callbacks :initialize self end |
#initialize(attributes_or_id = nil) {|_self| ... } ⇒ Object
Constructor. You may supply a custom :id
, or we call the Fedora Rest API for the next available Fedora id, and mark as new object. Also, if attrs
does not contain :id
but does contain :namespace
it will pass the :namespace
value to Fedora::Repository.nextid to generate the next id available within the given namespace.
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/active_fedora/core.rb', line 36 def initialize(attributes_or_id = nil, &block) init_internals attributes = initialize_attributes(attributes_or_id) @ldp_source = build_ldp_resource(attributes.delete(:id)) raise IllegalOperation, "Attempting to recreate existing ldp_source: `#{ldp_source.subject}'" unless ldp_source.new? assert_content_model load_attached_files self.attributes = attributes yield self if block_given? run_callbacks :initialize end |
#ldp_source ⇒ Object
27 28 29 |
# File 'lib/active_fedora/core.rb', line 27 def ldp_source @ldp_source end |
#readonly! ⇒ Object
Marks this record as read only.
102 103 104 |
# File 'lib/active_fedora/core.rb', line 102 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.
97 98 99 |
# File 'lib/active_fedora/core.rb', line 97 def readonly? @readonly end |
#reload ⇒ Object
Reloads the object from Fedora.
50 51 52 53 54 55 56 57 |
# File 'lib/active_fedora/core.rb', line 50 def reload check_persistence unless persisted? clear_association_cache clear_attached_files refresh load_attached_files self end |