<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta name="Content-Type" content="text/html; charset=UTF-8" /> <title>Documentation by YARD 0.5.3</title> <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" /> <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" /> <script type="text/javascript" charset="utf-8"> relpath = ''; if (relpath != '') relpath += '/'; </script> <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script> <script type="text/javascript" charset="utf-8" src="js/app.js"></script> </head> <body> <script type="text/javascript" charset="utf-8"> if (window.top.frames.main) document.body.className = 'frames'; </script> <div id="header"> <div id="menu"> <a href="_index.html" title="Index">Index</a> » <span class="title">File: README</span> <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div> </div> <div id="search"> <a id="class_list_link" href="#">Class List</a> <a id="method_list_link" href="#">Method List</a> <a id ="file_list_link" href="#">File List</a> </div> <div class="clear"></div> </div> <iframe id="search_frame"></iframe> <div id="content"><div id='filecontents'><h1>marc4j4r -- work with marc4j in JRuby</h1> <p>marc4j4r is some simple syntactic sugar on top of the java libary <a href="http://marc4j.tigris.org/">marc4j</a>. It allows iteration via #each and implements many of the same convenience functions as <a href="http://marc.rubyforge.org/">ruby-marc</a>.</p> <p>Most of the good stuff is in RecordImpl and DataFieldImpl. They, along with the *Reader classes, now implement #each for their subparts as well as #[] where it makes sense. See the examples in <a href="">the documentation</a> for more information.</p> <p>There's also a convenience module method, MARC4J4R.reader, to get a reader, as shown below.</p> <p>Full documentation can be generated via the 'rake yard' command and is online at http://rdoc.info/projects/billdueber/marc4j4r</p> <h2>Example</h2> <pre class="code"><span class='require identifier id'>require</span> <span class='string val'>'rubygems'</span> <span class='require identifier id'>require</span> <span class='string val'>'marc4j4r'</span> <span class='reader identifier id'>reader</span> <span class='assign token'>=</span> <span class='MARC4J4R constant id'>MARC4J4R</span><span class='dot token'>.</span><span class='reader identifier id'>reader</span><span class='lparen token'>(</span><span class='string val'>'test.mrc'</span><span class='rparen token'>)</span> <span class='comment val'>#reader = MARC4J4R.reader('test.mrc', :strictmarc) # be explicit</span> <span class='comment val'>#preader = MARC4J4R.reader('test.mrc', :permissivemarc)</span> <span class='comment val'>#xmlreader = MARC4J4R.reader('test.xml', :marcxml)</span> <span class='comment val'># </span> <span class='comment val'># Can also use an IO object</span> <span class='comment val'># reader = MARC4J4R.reader(File.new('test.mrc'))</span> <span class='reader identifier id'>reader</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='r identifier id'>r</span><span class='bitor op'>|</span> <span class='lccn identifier id'>lccn</span> <span class='assign token'>=</span> <span class='r identifier id'>r</span><span class='lbrack token'>[</span><span class='string val'>'010'</span><span class='rbrack token'>]</span><span class='lbrack token'>[</span><span class='string val'>'a'</span><span class='rbrack token'>]</span> <span class='if if_mod kw'>if</span> <span class='r identifier id'>r</span><span class='lbrack token'>[</span><span class='string val'>'010'</span><span class='rbrack token'>]</span> <span class='isSBns identifier id'>isSBns</span> <span class='assign token'>=</span> <span class='r identifier id'>r</span><span class='dot token'>.</span><span class='find_by_tag identifier id'>find_by_tag</span><span class='lparen token'>(</span><span class='lbrack token'>[</span><span class='string val'>'020'</span><span class='comma token'>,</span> <span class='string val'>'022'</span><span class='rbrack token'>]</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='map identifier id'>map</span> <span class='lbrace token'>{</span><span class='bitor op'>|</span><span class='f identifier id'>f</span><span class='bitor op'>|</span> <span class='f identifier id'>f</span><span class='lbrack token'>[</span><span class='string val'>'a'</span><span class='rbrack token'>]</span><span class='rbrace token'>}</span> <span class='first035 identifier id'>first035</span> <span class='assign token'>=</span> <span class='r identifier id'>r</span><span class='lbrack token'>[</span><span class='string val'>'035'</span><span class='rbrack token'>]</span> <span class='fullTitle identifier id'>fullTitle</span> <span class='assign token'>=</span> <span class='r identifier id'>r</span><span class='lbrack token'>[</span><span class='string val'>'245'</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='sub_values identifier id'>sub_values</span><span class='lparen token'>(</span><span class='lbrack token'>[</span><span class='string val'>'a'</span><span class='comma token'>,</span> <span class='string val'>'b'</span><span class='comma token'>,</span> <span class='string val'>'d'</span><span class='comma token'>,</span> <span class='string val'>'f'</span><span class='comma token'>,</span> <span class='string val'>'h'</span><span class='rbrack token'>]</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='join identifier id'>join</span><span class='lparen token'>(</span><span class='string val'>' '</span><span class='rparen token'>)</span> <span class='r identifier id'>r</span><span class='lbrack token'>[</span><span class='string val'>'300'</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='subfield identifier id'>subfield</span><span class='bitor op'>|</span> <span class='puts identifier id'>puts</span> <span class='subfield identifier id'>subfield</span><span class='dot token'>.</span><span class='code identifier id'>code</span> <span class='plus op'>+</span> <span class='string val'>' '</span> <span class='plus op'>+</span> <span class='subfield identifier id'>subfield</span><span class='dot token'>.</span><span class='value identifier id'>value</span> <span class='end end kw'>end</span> <span class='end end kw'>end</span> </pre> <p>== Copyright</p> <p>Copyright (c) 2010 BillDueber. See LICENSE for details.</p> </div></div> <div id="footer"> Generated on Sat Apr 3 22:01:06 2010 by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool">yard</a> 0.5.3 (ruby-1.8.7). </div> </body> </html>