Class: MintPurl

Inherits:
Object
  • Object
show all
Extended by:
MethodDecorators
Defined in:
app/models/mint_purl.rb

Defined Under Namespace

Classes: PurlError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(fedora_object) ⇒ MintPurl

Returns a new instance of MintPurl.



14
15
16
# File 'app/models/mint_purl.rb', line 14

def initialize(fedora_object)
  @fedora_object = fedora_object
end

Instance Attribute Details

#fedora_objectObject (readonly)

Returns the value of attribute fedora_object.



11
12
13
# File 'app/models/mint_purl.rb', line 11

def fedora_object
  @fedora_object
end

Instance Method Details

#create_or_retreive_purlObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/models/mint_purl.rb', line 18

def create_or_retreive_purl
  repo_object = RepoObject.where(:filename => fedora_object.to_param).first
  if repo_object
    purl = Purl.where(:repo_object_id => repo_object.repo_object_id).first
    return purl_url(purl.purl_id)
  end

  Purl.transaction do
    @repo_object = RepoObject.create_from_fedora_object(fedora_object)
    @purl = Purl.create_from_repo_object(@repo_object)
  end
  return purl_url(@purl.purl_id) if @purl
rescue => e
  raise PurlError.new("Could not create Purl for the following reasons: #{e.backtrace.inspect}")
end