Class: Libis::Services::Scope::Search

Inherits:
Object
  • Object
show all
Includes:
GenericSearch
Defined in:
lib/libis/services/scope/search.rb

Instance Attribute Summary

Attributes included from GenericSearch

#base, #host, #index, #num_records, #query, #record_pointer, #session_id, #set_number, #term

Instance Method Summary collapse

Constructor Details

#initializeSearch

Returns a new instance of Search.



13
14
15
# File 'lib/libis/services/scope/search.rb', line 13

def initialize
  @doc = nil
end

Instance Method Details

#each(_ = {}) {|@doc| ... } ⇒ Object

Yields:

  • (@doc)


34
35
36
# File 'lib/libis/services/scope/search.rb', line 34

def each(_ = {})
  yield @doc
end

#find(term, options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/libis/services/scope/search.rb', line 17

def find(term, options = {})
  super
  OracleClient.new('SCOPE01', 'APLKN_ARCHV_LIAS', 'archvsc').
      call('kul_packages.scope_xml_meta_file_ed', [term.upcase])
  err_file = "/nas/vol03/oracle/scope01/#{term}_err.XML"
  if File.exist? err_file
    doc = XmlDocument.open(err_file)
    msg = doc.xpath('/error/error_msg').first.content
    msg_detail = doc.xpath('/error/error_').first.content
    File.delete(err_file)
    @doc = nil
    raise RuntimeError, "Scope search failed: '#{msg}'. Details: '#{msg_detail}'"
  else
    @doc = XmlDocument.open("/nas/vol03/oracle/scope01/#{term}_md.XML").to_hash
  end
end

#next_record(_ = {}) {|@doc| ... } ⇒ Object

Yields:

  • (@doc)


38
39
40
# File 'lib/libis/services/scope/search.rb', line 38

def next_record(_ = {})
  yield @doc
end