Class: ActiveFedora::RubydoraConnection

Inherits:
Object
  • Object
show all
Defined in:
lib/active_fedora/rubydora_connection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ RubydoraConnection

Returns a new instance of RubydoraConnection.



8
9
10
11
12
# File 'lib/active_fedora/rubydora_connection.rb', line 8

def initialize(params={})
  params = params.dup
  self.options = params
  connect
end

Instance Attribute Details

#connectionObject

Returns the value of attribute connection.



6
7
8
# File 'lib/active_fedora/rubydora_connection.rb', line 6

def connection
  @connection
end

#optionsObject

Returns the value of attribute options.



6
7
8
# File 'lib/active_fedora/rubydora_connection.rb', line 6

def options
  @options
end

Instance Method Details

#connect(force = false) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/active_fedora/rubydora_connection.rb', line 14

def connect(force=false)
  return unless @connection.nil? or force
  allowable_options = [:url, :user, :password, :timeout, :open_timeout, :ssl_client_cert, :ssl_client_key, :validateChecksum]
  client_options = options.reject { |k,v| not allowable_options.include?(k) }
  #puts "CLIENT OPTS #{client_options.inspect}"
  @connection = Rubydora.connect client_options

  Rubydora::Transaction.after_rollback do |options|
    begin
      case options[:method]
        when :ingest
          solr = ActiveFedora::SolrService.instance.conn
          solr.delete_by_id(options[:pid])
          solr.commit
        else
          ActiveFedora::Base.find(options[:pid], :cast=>true).update_index
      end
    rescue
      # no-op
    end

  end
end