Sha256: ed3d61a8689f0a46b0e4af4e12e19a0a5b8a1b3e7e8b2a9b24504121f7de0b38
Contents?: true
Size: 946 Bytes
Versions: 20
Compression:
Stored size: 946 Bytes
Contents
require 'singleton' require 'rubydora' module ActiveFedora class RubydoraConnection include Singleton attr_reader :connection attr_accessor :options def self.connect(params={}) if params.kind_of? String u = URI.parse params params = {} params[:user] = u.user params[:password] = u.password params[:url] = "#{u.scheme}://#{u.host}:#{u.port}#{u.path}" end instance = self.instance instance.options = params instance.connect instance end def connect() return unless @connection.nil? @connection = Rubydora.connect :url => options[:url], :user => options[:user], :password => options[:password] end def nextid(attrs={}) d = REXML::Document.new(connection.next_pid(:namespace=>attrs[:namespace])) d.elements['//pid'].text end def find_model(pid, klass) klass.new(:pid=>pid) end end end
Version data entries
20 entries across 20 versions & 1 rubygems