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