README in zoom-0.4.0 vs README in zoom-0.4.1
- old
+ new
@@ -1,6 +1,6 @@
-Ruby/ZOOM
+= Ruby/ZOOM
=========
Ruby/ZOOM provides a Ruby binding to the Z39.50 Object-Orientation Model
(ZOOM), an abstract object-oriented programming interface to a subset of the
services specified by the Z39.50 standard, also known as the international
@@ -11,48 +11,79 @@
any ZOOM compliant implementation.
Ruby/ZOOM is free-software, covered by the GNU Lesser General Public License
and provided without any warranties of any kind.
-Requirements
-------------
+== Requirements
Ruby: http://www.ruby-lang.org/
YAZ (*): http://www.indexdata.dk/yaz/
* : Make sure you did pass the --enabled-shared option to the configure
script before building YAZ. Ruby/ZOOM requires a YAZ shared library
and YAZ does not build it by default.
-Install
--------
+== Install
0. install Ruby
1. install YAZ
2. gem install ruby-zoom
-Build from Source
------------------
+== Build from Source
- 0. checkout out code from cvs at rubyforge
+ 0. checkout out code from svn at rubyforge
1. install Rake
2. rake
- 5. gem install pkg/zoom-*.gem
+ 3. gem install pkg/zoom-*.gem
-Samples
--------
+== Samples
Some programming examples are available in the `sample' directory.
-Copying
--------
+== Canonical Sample Program
+ To give a flavour of the Ruby binding, here is ZOOM's equivalent of the
+ ``Hello World'' program: a tiny Z39.50 client that fetches and displays
+ the MARC record for Farlow & Brett Surman's The Complete Dinosaur from
+ the Library of Congress.
+
+
+ require 'zoom'
+
+ ZOOM::Connection.open('z3950.loc.gov', 7090) do |conn|
+ conn.database_name = 'Voyager'
+ conn.preferred_record_syntax = 'USMARC'
+ rset = conn.search('@attr 1=7 0253333490')
+ p rset[0]
+ end
+
+== ZOOM Extended Services
+
+ With release 0.4.1 extended services support has been added which allows
+ create, update and delete of records. This only works for XML.
+ Here's an example adapted from the test suite.
+
+ require 'zoom'
+
+ new_record = File.read('programming_ruby.xml')
+
+ ZOOM::Connection.open('localhost:99999/test') do |conn|
+ p = conn.package
+ p.wait_action = 'waitIfPossible'
+ p.action = 'specialUpdate'
+ p.record = new_record
+ p.send('update')
+ p.send('commit')
+ end
+
+
+== Copying
+
Copyright (c) 2005 Laurent Sansonetti <lrz@chopine.be>
This library is free software.
You can distribute/modify this program under the terms of
the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
-Project Website
----------------
+== Project Website
http://ruby-zoom.rubyforge.org