sru 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/sru/client.rb CHANGED
@@ -8,6 +8,21 @@ module SRU
8
8
  # A client for issuing requests to a particular SRU server.
9
9
  # SRU is a RESTlike information retrieval protocol detailed at
10
10
  # http://www.loc.gov/standards/sru/
11
+ #
12
+ # require 'sru'
13
+ #
14
+ # client = SRU::Client.new 'http://sru.example.com'
15
+ #
16
+ # # fetch a SRU::ExplainResponse object from the server
17
+ # explain = client.explain
18
+ #
19
+ # # issue a search and get back a SRU::SearchRetrieveResponse object
20
+ # # which serves as an iterator
21
+ # records = client.search_retrieve 'rosetta stone', :maximumRecords => 5
22
+ # records.each {|record| puts record}
23
+ #
24
+ # # issue a scan request and print out each term
25
+ # client.scan('king tut', :maximumTerms => 12).each {|term| puts term}
11
26
 
12
27
  class Client
13
28
 
@@ -41,11 +56,12 @@ module SRU
41
56
  # as an optional second argument.
42
57
  #
43
58
  # client = SRU::Client.new 'http://example.com/sru'
44
- # response = client.search_retrieve('mark twain', maximumRecords => 1)
59
+ # response = client.search_retrieve 'mark twain', maximumRecords => 1
45
60
 
46
61
  def search_retrieve(query, options={})
47
- options['query'] = query
48
- options['operation'] = 'searchRetrieve'
62
+ options[:query] = query
63
+ options[:operation] = 'searchRetrieve'
64
+ options[:maximumRecords] = 10 unless options.has_key? :maximumRecords
49
65
  doc = get_doc(options)
50
66
  return SearchResponse.new(doc)
51
67
  end
@@ -55,11 +71,12 @@ module SRU
55
71
  # object. You must supply the first parameter which is the searchClause.
56
72
  # Other SRU options can be sent in a hash as the seond argument.
57
73
  #
58
- # scan_response = client.scan 'title
74
+ # scan_response = client.scan 'title', :maximumTerms => 5
59
75
 
60
76
  def scan(clause, options={})
61
- options['scanClause'] = clause
62
- options['operation'] = 'scan'
77
+ options[:scanClause] = clause
78
+ options[:operation] = 'scan'
79
+ options[:maximumTerms] = 5 unless options.has_key? :maximumTerms
63
80
  doc = get_doc(options)
64
81
  return ScanResponse.new(doc)
65
82
  end
@@ -71,7 +88,7 @@ module SRU
71
88
 
72
89
  def get_doc(hash)
73
90
  # all requests get a version
74
- hash['version'] = @version
91
+ hash[:version] = @version
75
92
 
76
93
  # don't want to monkey with the original
77
94
  uri = @server.clone
@@ -1,9 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
- $LOAD_PATH.unshift 'lib'
4
- require 'test/unit'
5
- require 'sru'
6
-
7
1
  class ClientTests < Test::Unit::TestCase
8
2
 
9
3
  def test_explain
@@ -31,16 +25,23 @@ class ClientTests < Test::Unit::TestCase
31
25
  assert_equal 0, results.entries.size
32
26
  end
33
27
 
34
- def test_scan
35
- # this scan response appears to be canned might need to change
36
- client = SRU::Client.new 'http://tweed.lib.ed.ac.uk:8080/elf/search/copac'
37
- scan = client.scan('foobar')
38
- assert scan.entries.size > 0
39
- assert_equal SRU::Term, scan.entries[0].class
40
- assert_equal 'low', scan.entries[0].value
41
- assert_equal '1', scan.entries[0].number_of_records
28
+ def test_default_maximum_records
29
+ client = SRU::Client.new 'http://z3950.loc.gov:7090/voyager'
30
+ results = client.search_retrieve 'twain'
31
+ assert_equal 10, results.entries.size
42
32
  end
43
33
 
34
+ # need to find a target that supports scan so we can exercise it
35
+ #def test_scan
36
+ # # this scan response appears to be canned might need to change
37
+ # client = SRU::Client.new 'http://tweed.lib.ed.ac.uk:8080/elf/search/copac'
38
+ # scan = client.scan('foobar')
39
+ # assert scan.entries.size > 0
40
+ # assert_equal SRU::Term, scan.entries[0].class
41
+ # assert_equal 'low', scan.entries[0].value
42
+ # assert_equal '1', scan.entries[0].number_of_records
43
+ #end
44
+
44
45
  def test_xml_exception
45
46
  assert_raise(SRU::Exception) {SRU::Client.new 'http://www.google.com'}
46
47
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: sru
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.2
7
- date: 2006-04-17 00:00:00 -05:00
8
- summary: talk to sru servers with ruby
6
+ version: 0.0.3
7
+ date: 2006-10-25 00:00:00 -04:00
8
+ summary: a Ruby library for Search and Retrieve by URL
9
9
  require_paths:
10
- - lib
10
+ - lib
11
11
  email: ehs@pobox.com
12
12
  homepage: http://www.textualize.com/sruby
13
13
  rubyforge_project:
@@ -18,31 +18,38 @@ bindir: bin
18
18
  has_rdoc: true
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
- -
22
- - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
25
24
  version:
26
25
  platform: ruby
27
26
  signing_key:
28
27
  cert_chain:
28
+ post_install_message:
29
29
  authors:
30
- - Ed Summers
30
+ - Ed Summers
31
31
  files:
32
- - lib/sru
33
- - lib/sru.rb
34
- - lib/sru/client.rb
35
- - lib/sru/exception.rb
36
- - lib/sru/explain.rb
37
- - lib/sru/response.rb
38
- - lib/sru/scan.rb
39
- - lib/sru/search_retrieve.rb
40
- - lib/sru/term.rb
41
- test_files:
42
- - test.rb
32
+ - lib/sru
33
+ - lib/sru.rb
34
+ - lib/sru/client.rb
35
+ - lib/sru/exception.rb
36
+ - lib/sru/explain.rb
37
+ - lib/sru/response.rb
38
+ - lib/sru/scan.rb
39
+ - lib/sru/search_retrieve.rb
40
+ - lib/sru/term.rb
41
+ - test/client_test.rb
42
+ test_files: []
43
+
43
44
  rdoc_options: []
45
+
44
46
  extra_rdoc_files: []
47
+
45
48
  executables: []
49
+
46
50
  extensions: []
51
+
47
52
  requirements: []
48
- dependencies: []
53
+
54
+ dependencies: []
55
+