<!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> &raquo; 
    <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>