marc4j4r 0.1.6 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +17 -0
- data/Rakefile +26 -13
- data/VERSION +1 -1
- data/jars/marc4j.jar +0 -0
- data/lib/marc4j4r/controlfield.rb +32 -0
- data/lib/marc4j4r/datafield.rb +196 -0
- data/lib/marc4j4r/reader.rb +71 -0
- data/lib/marc4j4r/record.rb +214 -0
- data/lib/marc4j4r/writer.rb +29 -0
- data/lib/marc4j4r.rb +26 -485
- data/lib/original_monolithic_file.rb +518 -0
- data/spec/batch.dat +1 -0
- data/spec/batch.txt +193 -0
- data/spec/batch.xml +13 -0
- data/spec/controlfield_spec.rb +40 -0
- data/spec/datafield_spec.rb +56 -0
- data/spec/one.dat +1 -0
- data/spec/one.txt +17 -0
- data/spec/one.xml +4 -0
- data/spec/reader_spec.rb +49 -0
- data/spec/record_spec.rb +101 -0
- data/{test/helper.rb → spec/spec_helper.rb} +9 -5
- metadata +74 -80
- data/.document +0 -5
- data/.gitignore +0 -21
- data/README.markdown +0 -41
- data/doc/ControlFieldImpl.html +0 -314
- data/doc/DataFieldImpl.html +0 -875
- data/doc/Java/OrgMarc4j/MarcReader.html +0 -184
- data/doc/MARC4J4R/Reader.html +0 -245
- data/doc/MARC4J4R.html +0 -281
- data/doc/RecordImpl.html +0 -686
- data/doc/SubfieldImpl.html +0 -252
- data/doc/_index.html +0 -153
- data/doc/class_list.html +0 -36
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -50
- data/doc/css/style.css +0 -268
- data/doc/file.README.html +0 -90
- data/doc/file_list.html +0 -38
- data/doc/frames.html +0 -13
- data/doc/index.html +0 -90
- data/doc/js/app.js +0 -99
- data/doc/js/full_list.js +0 -106
- data/doc/js/jquery.js +0 -19
- data/doc/method_list.html +0 -219
- data/doc/top-level-namespace.html +0 -87
- data/jars/MarcImporter.jar +0 -0
- data/test/batch.seq +0 -118
- data/test/bench.rb +0 -63
- data/test/one.dat +0 -1
- data/test/one.seq +0 -30
- data/test/one.xml +0 -55
- data/test/test_marc4j4r.rb +0 -76
data/spec/batch.txt
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
LEADER 00755cam 22002414a 4500
|
2
|
+
001 fol05731351
|
3
|
+
003 IMchF
|
4
|
+
005 20000613133448.0
|
5
|
+
008 000107s2000 nyua 001 0 eng
|
6
|
+
010 $a 00020737
|
7
|
+
020 $a 0471383147 (paper/cd-rom : alk. paper)
|
8
|
+
040 $a DLC $c DLC $d DLC
|
9
|
+
042 $a pcc
|
10
|
+
050 00 $a QA76.73.P22 $b M33 2000
|
11
|
+
082 00 $a 005.13/3 $2 21
|
12
|
+
100 1 $a Martinsson, Tobias, $d 1976-
|
13
|
+
245 10 $a ActivePerl with ASP and ADO / $c Tobias Martinsson.
|
14
|
+
260 $a New York : $b John Wiley & Sons, $c 2000.
|
15
|
+
300 $a xxi, 289 p. : $b ill. ; $c 23 cm. + $e 1 computer laser disc (4 3/4 in.)
|
16
|
+
500 $a "Wiley Computer Publishing."
|
17
|
+
630 00 $a Active server pages.
|
18
|
+
630 00 $a ActiveX.
|
19
|
+
650 0 $a Perl (Computer program language)
|
20
|
+
|
21
|
+
LEADER 00647pam 2200241 a 4500
|
22
|
+
001 fol05754809
|
23
|
+
003 IMchF
|
24
|
+
005 20000601115601.0
|
25
|
+
008 000203s2000 mau 001 0 eng
|
26
|
+
010 $a 00022023
|
27
|
+
020 $a 1565926994
|
28
|
+
040 $a DLC $c DLC $d DLC
|
29
|
+
042 $a pcc
|
30
|
+
050 00 $a QA76.73.P22 $b D47 2000
|
31
|
+
082 00 $a 005.74 $2 21
|
32
|
+
100 1 $a Descartes, Alligator.
|
33
|
+
245 10 $a Programming the Perl DBI / $c Alligator Descartes and Tim Bunce.
|
34
|
+
260 $a Cmabridge, MA : $b O'Reilly, $c 2000.
|
35
|
+
263 $a 1111
|
36
|
+
300 $a p. cm.
|
37
|
+
650 0 $a Perl (Computer program language)
|
38
|
+
650 0 $a Database management.
|
39
|
+
700 1 $a Bunce, Tim.
|
40
|
+
|
41
|
+
LEADER 00605cam 22002054a 4500
|
42
|
+
001 fol05843555
|
43
|
+
003 IMchF
|
44
|
+
005 20000525142739.0
|
45
|
+
008 000318s1999 cau b 001 0 eng
|
46
|
+
010 $a 00501349
|
47
|
+
040 $a DLC $c DLC $d DLC
|
48
|
+
042 $a pcc
|
49
|
+
050 00 $a QA76.73.P22 $b B763 1999
|
50
|
+
082 00 $a 005.13/3 $2 21
|
51
|
+
100 1 $a Brown, Martin C.
|
52
|
+
245 10 $a Perl : $b programmer's reference / $c Martin C. Brown.
|
53
|
+
260 $a Berkeley : $b Osborne/McGraw-Hill, $c c1999.
|
54
|
+
300 $a xix, 380 p. ; $c 22 cm.
|
55
|
+
504 $a Includes bibliographical references and index.
|
56
|
+
650 0 $a Perl (Computer program language)
|
57
|
+
|
58
|
+
LEADER 00579cam 22002054a 4500
|
59
|
+
001 fol05843579
|
60
|
+
003 IMchF
|
61
|
+
005 20000525142716.0
|
62
|
+
008 000318s1999 caua 001 0 eng
|
63
|
+
010 $a 00502116
|
64
|
+
020 $a 0072120002
|
65
|
+
040 $a DLC $c DLC $d DLC
|
66
|
+
042 $a pcc
|
67
|
+
050 00 $a QA76.73.P22 $b B762 1999
|
68
|
+
082 00 $a 005.13/3 $2 21
|
69
|
+
100 1 $a Brown, Martin C.
|
70
|
+
245 10 $a Perl : $b the complete reference / $c Martin C. Brown.
|
71
|
+
260 $a Berkeley : $b Osborne/McGraw-Hill, $c c1999.
|
72
|
+
300 $a xxxv, 1179 p. : $b ill. ; $c 24 cm.
|
73
|
+
650 0 $a Perl (Computer program language)
|
74
|
+
|
75
|
+
LEADER 00801nam 22002778a 4500
|
76
|
+
001 fol05848297
|
77
|
+
003 IMchF
|
78
|
+
005 20000524125727.0
|
79
|
+
008 000518s2000 mau 001 0 eng
|
80
|
+
010 $a 00041664
|
81
|
+
020 $a 1565924193
|
82
|
+
040 $a DLC $c DLC
|
83
|
+
042 $a pcc
|
84
|
+
050 00 $a QA76.73.P22 $b G84 2000
|
85
|
+
082 00 $a 005.2/762 $2 21
|
86
|
+
100 1 $a Guelich, Scott.
|
87
|
+
245 10 $a CGI programming with Perl / $c Scott Guelich, Shishir Gundavaram & Gunther Birznieks.
|
88
|
+
250 $a 2nd ed., expanded & updated
|
89
|
+
260 $a Cambridge, Mass. : $b O'Reilly, $c 2000.
|
90
|
+
263 $a 0006
|
91
|
+
300 $a p. cm.
|
92
|
+
650 0 $a Perl (Computer program language)
|
93
|
+
650 0 $a CGI (Computer network protocol)
|
94
|
+
650 0 $a Internet programming.
|
95
|
+
700 1 $a Gundavaram, Shishir.
|
96
|
+
700 1 $a Birznieks, Gunther.
|
97
|
+
|
98
|
+
LEADER 00665nam 22002298a 4500
|
99
|
+
001 fol05865950
|
100
|
+
003 IMchF
|
101
|
+
005 20000615103017.0
|
102
|
+
008 000612s2000 mau 100 0 eng
|
103
|
+
010 $a 00055759
|
104
|
+
020 $a 0596000138
|
105
|
+
040 $a DLC $c DLC
|
106
|
+
042 $a pcc
|
107
|
+
050 00 $a QA76.73.P22 $b P475 2000
|
108
|
+
082 00 $a 005.13/3 $2 21
|
109
|
+
111 2 $a Perl Conference 4.0 $d (2000 : $c Monterey, Calif.)
|
110
|
+
245 10 $a Proceedings of the Perl Conference 4.0 : $b July 17-20, 2000, Monterey, California.
|
111
|
+
250 $a 1st ed.
|
112
|
+
260 $a Cambridge, Mass. : $b O'Reilly, $c 2000.
|
113
|
+
263 $a 0006
|
114
|
+
300 $a p. cm.
|
115
|
+
650 0 $a Perl (Computer program language) $v Congresses.
|
116
|
+
|
117
|
+
LEADER 00579nam 22002178a 4500
|
118
|
+
001 fol05865956
|
119
|
+
003 IMchF
|
120
|
+
005 20000615102948.0
|
121
|
+
008 000612s2000 mau 000 0 eng
|
122
|
+
010 $a 00055770
|
123
|
+
020 $a 1565926099
|
124
|
+
040 $a DLC $c DLC
|
125
|
+
042 $a pcc
|
126
|
+
050 00 $a QA76.73.P22 $b B43 2000
|
127
|
+
082 00 $a 005.13/3 $2 21
|
128
|
+
100 1 $a Blank-Edelman, David N.
|
129
|
+
245 10 $a Perl for system administration / $c David N. Blank-Edelman.
|
130
|
+
260 $a Cambridge, Mass. : $b O'Reilly, $c 2000.
|
131
|
+
263 $a 0006
|
132
|
+
300 $a p. cm.
|
133
|
+
650 0 $a Perl (Computer program language)
|
134
|
+
|
135
|
+
LEADER 00661nam 22002538a 4500
|
136
|
+
001 fol05865967
|
137
|
+
003 IMchF
|
138
|
+
005 20000615102611.0
|
139
|
+
008 000614s2000 mau 000 0 eng
|
140
|
+
010 $a 00055799
|
141
|
+
020 $a 0596000278
|
142
|
+
040 $a DLC $c DLC
|
143
|
+
042 $a pcc
|
144
|
+
050 00 $a QA76.73.P22 $b W35 2000
|
145
|
+
082 00 $a 005.13/3 $2 21
|
146
|
+
100 1 $a Wall, Larry.
|
147
|
+
245 10 $a Programming Perl / $c Larry Wall, Tom Christiansen & Jon Orwant.
|
148
|
+
250 $a 3rd ed.
|
149
|
+
260 $a Cambridge, Mass. : $b O'Reilly, $c 2000.
|
150
|
+
263 $a 0007
|
151
|
+
300 $a p. cm.
|
152
|
+
650 0 $a Perl (Computer program language)
|
153
|
+
700 1 $a Christiansen, Tom.
|
154
|
+
700 1 $a Orwant, Jon.
|
155
|
+
|
156
|
+
LEADER 00603cam 22002054a 4500
|
157
|
+
001 fol05872355
|
158
|
+
003 IMchF
|
159
|
+
005 20000706095105.0
|
160
|
+
008 000315s1999 njua 001 0 eng
|
161
|
+
010 $a 00500678
|
162
|
+
020 $a 013020868X
|
163
|
+
040 $a DLC $c DLC $d DLC
|
164
|
+
042 $a pcc
|
165
|
+
050 00 $a QA76.73.P22 $b L69 1999
|
166
|
+
082 00 $a 005.13/3 $2 21
|
167
|
+
100 1 $a Lowe, Vincent $q (Vincent D.)
|
168
|
+
245 10 $a Perl programmer's interactive workbook / $c Vincent Lowe.
|
169
|
+
260 $a Upper Saddle River, NJ : $b Prentice Hall PTP, $c c1999.
|
170
|
+
300 $a xx, 633 p. : $b ill. ; $c 23 cm.
|
171
|
+
650 0 $a Perl (Computer program language)
|
172
|
+
|
173
|
+
LEADER 00696nam 22002538a 4500
|
174
|
+
001 fol05882032
|
175
|
+
003 IMchF
|
176
|
+
005 20000707091904.0
|
177
|
+
008 000630s2000 cau 001 0 eng
|
178
|
+
010 $a 00058174
|
179
|
+
020 $a 0764547291 (alk. paper)
|
180
|
+
040 $a DLC $c DLC
|
181
|
+
042 $a pcc
|
182
|
+
050 00 $a QA76.73.P22 $b F64 2000
|
183
|
+
082 00 $a 005.13/3 $2 21
|
184
|
+
100 2 $a Foster-Johnson, Eric.
|
185
|
+
245 10 $a Cross-platform Perl / $c Eric F. Johnson.
|
186
|
+
260 $a Foster City, CA : $b IDG Books Worldwide, $c 2000.
|
187
|
+
263 $a 0009
|
188
|
+
300 $a p. cm.
|
189
|
+
500 $a Includes index.
|
190
|
+
650 0 $a Perl (Computer program language)
|
191
|
+
650 0 $a Web servers.
|
192
|
+
650 0 $a Cross-platform software development.
|
193
|
+
|
data/spec/batch.xml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version='1.0'?>
|
2
|
+
<collection xmlns='http://www.loc.gov/MARC21/slim' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd'>
|
3
|
+
<record><leader>00755cam 22002414a 4500</leader><controlfield tag='001'>fol05731351 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000613133448.0</controlfield><controlfield tag='008'>000107s2000 nyua 001 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00020737 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>0471383147 (paper/cd-rom : alk. paper)</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield><subfield code='d'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>M33 2000</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Martinsson, Tobias,</subfield><subfield code='d'>1976-</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>ActivePerl with ASP and ADO /</subfield><subfield code='c'>Tobias Martinsson.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>New York :</subfield><subfield code='b'>John Wiley & Sons,</subfield><subfield code='c'>2000.</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>xxi, 289 p. :</subfield><subfield code='b'>ill. ;</subfield><subfield code='c'>23 cm. +</subfield><subfield code='e'>1 computer laser disc (4 3/4 in.)</subfield></datafield><datafield tag='500' ind1=' ' ind2=' '><subfield code='a'>"Wiley Computer Publishing."</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield><datafield tag='630' ind1='0' ind2='0'><subfield code='a'>Active server pages.</subfield></datafield><datafield tag='630' ind1='0' ind2='0'><subfield code='a'>ActiveX.</subfield></datafield></record>
|
4
|
+
<record><leader>00647pam 2200241 a 4500</leader><controlfield tag='001'>fol05754809 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000601115601.0</controlfield><controlfield tag='008'>000203s2000 mau 001 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00022023 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>1565926994</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield><subfield code='d'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>D47 2000</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.74</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Descartes, Alligator.</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Programming the Perl DBI /</subfield><subfield code='c'>Alligator Descartes and Tim Bunce.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Cmabridge, MA :</subfield><subfield code='b'>O'Reilly,</subfield><subfield code='c'>2000.</subfield></datafield><datafield tag='263' ind1=' ' ind2=' '><subfield code='a'>1111</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>p. cm.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Database management.</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Bunce, Tim.</subfield></datafield></record>
|
5
|
+
<record><leader>00605cam 22002054a 4500</leader><controlfield tag='001'>fol05843555 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000525142739.0</controlfield><controlfield tag='008'>000318s1999 cau b 001 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00501349 </subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield><subfield code='d'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>B763 1999</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Brown, Martin C.</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Perl :</subfield><subfield code='b'>programmer's reference /</subfield><subfield code='c'>Martin C. Brown.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Berkeley :</subfield><subfield code='b'>Osborne/McGraw-Hill,</subfield><subfield code='c'>c1999.</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>xix, 380 p. ;</subfield><subfield code='c'>22 cm.</subfield></datafield><datafield tag='504' ind1=' ' ind2=' '><subfield code='a'>Includes bibliographical references and index.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield></record>
|
6
|
+
<record><leader>00579cam 22002054a 4500</leader><controlfield tag='001'>fol05843579 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000525142716.0</controlfield><controlfield tag='008'>000318s1999 caua 001 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00502116 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>0072120002</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield><subfield code='d'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>B762 1999</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Brown, Martin C.</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Perl :</subfield><subfield code='b'>the complete reference /</subfield><subfield code='c'>Martin C. Brown.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Berkeley :</subfield><subfield code='b'>Osborne/McGraw-Hill,</subfield><subfield code='c'>c1999.</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>xxxv, 1179 p. :</subfield><subfield code='b'>ill. ;</subfield><subfield code='c'>24 cm.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield></record>
|
7
|
+
<record><leader>00801nam 22002778a 4500</leader><controlfield tag='001'>fol05848297 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000524125727.0</controlfield><controlfield tag='008'>000518s2000 mau 001 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00041664 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>1565924193</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>G84 2000</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.2/762</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Guelich, Scott.</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>CGI programming with Perl /</subfield><subfield code='c'>Scott Guelich, Shishir Gundavaram & Gunther Birznieks.</subfield></datafield><datafield tag='250' ind1=' ' ind2=' '><subfield code='a'>2nd ed., expanded & updated</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Cambridge, Mass. :</subfield><subfield code='b'>O'Reilly,</subfield><subfield code='c'>2000.</subfield></datafield><datafield tag='263' ind1=' ' ind2=' '><subfield code='a'>0006</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>p. cm.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>CGI (Computer network protocol)</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Internet programming.</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Gundavaram, Shishir.</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Birznieks, Gunther.</subfield></datafield></record>
|
8
|
+
<record><leader>00665nam 22002298a 4500</leader><controlfield tag='001'>fol05865950 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000615103017.0</controlfield><controlfield tag='008'>000612s2000 mau 100 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00055759 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>0596000138</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>P475 2000</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='111' ind1='2' ind2=' '><subfield code='a'>Perl Conference 4.0</subfield><subfield code='d'>(2000 :</subfield><subfield code='c'>Monterey, Calif.)</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Proceedings of the Perl Conference 4.0 :</subfield><subfield code='b'>July 17-20, 2000, Monterey, California.</subfield></datafield><datafield tag='250' ind1=' ' ind2=' '><subfield code='a'>1st ed.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Cambridge, Mass. :</subfield><subfield code='b'>O'Reilly,</subfield><subfield code='c'>2000.</subfield></datafield><datafield tag='263' ind1=' ' ind2=' '><subfield code='a'>0006</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>p. cm.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield><subfield code='v'>Congresses.</subfield></datafield></record>
|
9
|
+
<record><leader>00579nam 22002178a 4500</leader><controlfield tag='001'>fol05865956 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000615102948.0</controlfield><controlfield tag='008'>000612s2000 mau 000 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00055770 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>1565926099</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>B43 2000</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Blank-Edelman, David N.</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Perl for system administration /</subfield><subfield code='c'>David N. Blank-Edelman.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Cambridge, Mass. :</subfield><subfield code='b'>O'Reilly,</subfield><subfield code='c'>2000.</subfield></datafield><datafield tag='263' ind1=' ' ind2=' '><subfield code='a'>0006</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>p. cm.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield></record>
|
10
|
+
<record><leader>00661nam 22002538a 4500</leader><controlfield tag='001'>fol05865967 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000615102611.0</controlfield><controlfield tag='008'>000614s2000 mau 000 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00055799 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>0596000278</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>W35 2000</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Wall, Larry.</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Programming Perl /</subfield><subfield code='c'>Larry Wall, Tom Christiansen & Jon Orwant.</subfield></datafield><datafield tag='250' ind1=' ' ind2=' '><subfield code='a'>3rd ed.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Cambridge, Mass. :</subfield><subfield code='b'>O'Reilly,</subfield><subfield code='c'>2000.</subfield></datafield><datafield tag='263' ind1=' ' ind2=' '><subfield code='a'>0007</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>p. cm.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Christiansen, Tom.</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Orwant, Jon.</subfield></datafield></record>
|
11
|
+
<record><leader>00603cam 22002054a 4500</leader><controlfield tag='001'>fol05872355 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000706095105.0</controlfield><controlfield tag='008'>000315s1999 njua 001 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00500678 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>013020868X</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield><subfield code='d'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>L69 1999</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='1' ind2=' '><subfield code='a'>Lowe, Vincent</subfield><subfield code='q'>(Vincent D.)</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Perl programmer's interactive workbook /</subfield><subfield code='c'>Vincent Lowe.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Upper Saddle River, NJ :</subfield><subfield code='b'>Prentice Hall PTP,</subfield><subfield code='c'>c1999.</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>xx, 633 p. :</subfield><subfield code='b'>ill. ;</subfield><subfield code='c'>23 cm.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield></record>
|
12
|
+
<record><leader>00696nam 22002538a 4500</leader><controlfield tag='001'>fol05882032 </controlfield><controlfield tag='003'>IMchF</controlfield><controlfield tag='005'>20000707091904.0</controlfield><controlfield tag='008'>000630s2000 cau 001 0 eng </controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'> 00058174 </subfield></datafield><datafield tag='020' ind1=' ' ind2=' '><subfield code='a'>0764547291 (alk. paper)</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield></datafield><datafield tag='042' ind1=' ' ind2=' '><subfield code='a'>pcc</subfield></datafield><datafield tag='050' ind1='0' ind2='0'><subfield code='a'>QA76.73.P22</subfield><subfield code='b'>F64 2000</subfield></datafield><datafield tag='082' ind1='0' ind2='0'><subfield code='a'>005.13/3</subfield><subfield code='2'>21</subfield></datafield><datafield tag='100' ind1='2' ind2=' '><subfield code='a'>Foster-Johnson, Eric.</subfield></datafield><datafield tag='245' ind1='1' ind2='0'><subfield code='a'>Cross-platform Perl /</subfield><subfield code='c'>Eric F. Johnson.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Foster City, CA :</subfield><subfield code='b'>IDG Books Worldwide,</subfield><subfield code='c'>2000.</subfield></datafield><datafield tag='263' ind1=' ' ind2=' '><subfield code='a'>0009</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>p. cm.</subfield></datafield><datafield tag='500' ind1=' ' ind2=' '><subfield code='a'>Includes index.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Perl (Computer program language)</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Web servers.</subfield></datafield><datafield tag='650' ind1=' ' ind2='0'><subfield code='a'>Cross-platform software development.</subfield></datafield></record>
|
13
|
+
</collection>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "MARC4J4R::ControlField basics" do
|
4
|
+
it "can create a controlfield via the alias" do
|
5
|
+
cf = MARC4J4R::ControlField.new('001')
|
6
|
+
cf.tag.should.equal '001'
|
7
|
+
end
|
8
|
+
|
9
|
+
it "allows get/set of tag and value" do
|
10
|
+
cf = MARC4J4R::ControlField.new
|
11
|
+
cf.tag = '001'
|
12
|
+
cf.value = 'Value'
|
13
|
+
cf.tag.should.equal '001'
|
14
|
+
cf.value.should.equal 'Value'
|
15
|
+
end
|
16
|
+
|
17
|
+
it "can create a cf with both arguments" do
|
18
|
+
cf = MARC4J4R::ControlField.new('001', 'Test')
|
19
|
+
cf.value.should.equal 'Test'
|
20
|
+
cf.tag.should.equal '001'
|
21
|
+
end
|
22
|
+
|
23
|
+
it "can identify good/bad tags" do
|
24
|
+
MARC4J4R::ControlField.control_tag?('000').should.equal true
|
25
|
+
MARC4J4R::ControlField.control_tag?('001').should.equal true
|
26
|
+
MARC4J4R::ControlField.control_tag?('009').should.equal true
|
27
|
+
MARC4J4R::ControlField.control_tag?('010').should.equal false
|
28
|
+
MARC4J4R::ControlField.control_tag?('011').should.equal false
|
29
|
+
end
|
30
|
+
|
31
|
+
it "provides a working ==" do
|
32
|
+
cf = MARC4J4R::ControlField.new('001', 'Test')
|
33
|
+
clone = MARC4J4R::ControlField.new('001', 'Test')
|
34
|
+
mutant = MARC4J4R::ControlField.new('001', 'DDDDD')
|
35
|
+
cf.should.equal clone
|
36
|
+
clone.should.equal cf
|
37
|
+
cf.should.not.equal mutant
|
38
|
+
mutant.should.not.equal clone
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "MARC4J4R::DataField & SubField basics" do
|
4
|
+
it "proivdes a trivial ==" do
|
5
|
+
df1 = MARC4J4R::DataField.new('010', '1', '2')
|
6
|
+
df2 = MARC4J4R::DataField.new('010', '1', '2')
|
7
|
+
|
8
|
+
df1.should.equal df2
|
9
|
+
df2.should.equal df1
|
10
|
+
|
11
|
+
df3 = MARC4J4R::DataField.new('010', '0', '0')
|
12
|
+
df4 = MARC4J4R::DataField.new('011', '1', '2')
|
13
|
+
|
14
|
+
df1.should.not.equal df3
|
15
|
+
df1.should.not.equal df4
|
16
|
+
df3.should.not.equal df4
|
17
|
+
end
|
18
|
+
|
19
|
+
it "proivdes a deep ==" do
|
20
|
+
df1 = MARC4J4R::DataField.new('010', '1', '2')
|
21
|
+
df2 = MARC4J4R::DataField.new('010', '1', '2')
|
22
|
+
df3 = MARC4J4R::DataField.new('010', '1', '2')
|
23
|
+
df4 = MARC4J4R::DataField.new('010', '1', '2')
|
24
|
+
[df1, df2, df3, df4].each do |df|
|
25
|
+
df << MARC4J4R::SubField.new('a', 'one')
|
26
|
+
df << MARC4J4R::SubField.new('b', 'two')
|
27
|
+
df << MARC4J4R::SubField.new('c', 'three')
|
28
|
+
end
|
29
|
+
df3 << MARC4J4R::SubField.new('d', 'four')
|
30
|
+
df4 << MARC4J4R::SubField.new('d', 'five')
|
31
|
+
df1.should.equal df2
|
32
|
+
df2.should.equal df1
|
33
|
+
df1.should.not.equal df3
|
34
|
+
df1.should.equal df1
|
35
|
+
df3.should.equal df3
|
36
|
+
df3.should.not.equal df4
|
37
|
+
end
|
38
|
+
|
39
|
+
it "can round-trip tags and indicators" do
|
40
|
+
df = MARC4J4R::DataField.new('010', '1', '2')
|
41
|
+
df.tag.should.equal '010'
|
42
|
+
df.ind1.should.equal '1'
|
43
|
+
df.ind2.should.equal '2'
|
44
|
+
df.ind1 = '0'
|
45
|
+
df.ind1.should.equal '0'
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
it "should defalt to spaces in ind1/ind2" do
|
50
|
+
df = MARC4J4R::DataField.new('010')
|
51
|
+
df.ind1.should.equal ' '
|
52
|
+
df.ind2.should.equal ' '
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
data/spec/one.dat
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
00734njm a2200217uu 4500001001500000003000400015005001700019007001500036008004100051010001900092040001300111245006800124260002600192300005600218651004500274700005400319700005500373700003000428852005000458852000800508afc99990058366DLC20071104155141.9sd ummunniauub071103s1939 xxufmnne||||||||| u eng|| aafc99990058366 aDLCcDLC04aThe Texas rangerh[sound recording] /cSung by Beale D. Taylor. aMedina, Texas,c1939. a1 sound disc :banalog, 33 1/3 rpm, mono. ;c12 in. 0aMedinazTexaszUnited States of America.1 aLomax, John Avery, 1867-1948eRecording engineer.1 aLomax, Ruby T. (Ruby Terrill)eRecording engineer.1 aTaylor, Beale D.eSinger. aAmerican Folklife Center, Library of Congress aDLC
|
data/spec/one.txt
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
LEADER 00734njm a2200217uu 4500
|
2
|
+
001 afc99990058366
|
3
|
+
003 DLC
|
4
|
+
005 20071104155141.9
|
5
|
+
007 sd ummunniauub
|
6
|
+
008 071103s1939 xxufmnne||||||||| u eng||
|
7
|
+
010 $a afc99990058366
|
8
|
+
040 $a DLC $c DLC
|
9
|
+
245 04 $a The Texas ranger $h [sound recording] / $c Sung by Beale D. Taylor.
|
10
|
+
260 $a Medina, Texas, $c 1939.
|
11
|
+
300 $a 1 sound disc : $b analog, 33 1/3 rpm, mono. ; $c 12 in.
|
12
|
+
651 0 $a Medina $z Texas $z United States of America.
|
13
|
+
700 1 $a Lomax, John Avery, 1867-1948 $e Recording engineer.
|
14
|
+
700 1 $a Lomax, Ruby T. (Ruby Terrill) $e Recording engineer.
|
15
|
+
700 1 $a Taylor, Beale D. $e Singer.
|
16
|
+
852 $a American Folklife Center, Library of Congress
|
17
|
+
852 $a DLC
|
data/spec/one.xml
ADDED
@@ -0,0 +1,4 @@
|
|
1
|
+
<?xml version='1.0'?>
|
2
|
+
<collection xmlns='http://www.loc.gov/MARC21/slim' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd'>
|
3
|
+
<record><leader>00734njm a2200217uu 4500</leader><controlfield tag='001'>afc99990058366</controlfield><controlfield tag='003'>DLC</controlfield><controlfield tag='005'>20071104155141.9</controlfield><controlfield tag='007'>sd ummunniauub</controlfield><controlfield tag='008'>071103s1939 xxufmnne||||||||| u eng||</controlfield><datafield tag='010' ind1=' ' ind2=' '><subfield code='a'>afc99990058366</subfield></datafield><datafield tag='040' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield><subfield code='c'>DLC</subfield></datafield><datafield tag='245' ind1='0' ind2='4'><subfield code='a'>The Texas ranger</subfield><subfield code='h'>[sound recording] /</subfield><subfield code='c'>Sung by Beale D. Taylor.</subfield></datafield><datafield tag='260' ind1=' ' ind2=' '><subfield code='a'>Medina, Texas,</subfield><subfield code='c'>1939.</subfield></datafield><datafield tag='300' ind1=' ' ind2=' '><subfield code='a'>1 sound disc :</subfield><subfield code='b'>analog, 33 1/3 rpm, mono. ;</subfield><subfield code='c'>12 in.</subfield></datafield><datafield tag='651' ind1=' ' ind2='0'><subfield code='a'>Medina</subfield><subfield code='z'>Texas</subfield><subfield code='z'>United States of America.</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Lomax, John Avery, 1867-1948</subfield><subfield code='e'>Recording engineer.</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Lomax, Ruby T. (Ruby Terrill)</subfield><subfield code='e'>Recording engineer.</subfield></datafield><datafield tag='700' ind1='1' ind2=' '><subfield code='a'>Taylor, Beale D.</subfield><subfield code='e'>Singer.</subfield></datafield><datafield tag='852' ind1=' ' ind2=' '><subfield code='a'>American Folklife Center, Library of Congress</subfield></datafield><datafield tag='852' ind1=' ' ind2=' '><subfield code='a'>DLC</subfield></datafield></record>
|
4
|
+
</collection>
|
data/spec/reader_spec.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "MARC4J4R_reader" do
|
4
|
+
it "can read binary" do
|
5
|
+
reader = MARC4J4R::Reader.new("#{DIR}/one.dat")
|
6
|
+
rec = reader.first
|
7
|
+
rec['245']['a'].should.equal "The Texas ranger"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "can read XML" do
|
11
|
+
reader = MARC4J4R::Reader.new("#{DIR}/one.xml", :marcxml)
|
12
|
+
rec = reader.first
|
13
|
+
rec['245']['a'].should.equal "The Texas ranger"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "enumerates through all binary records" do
|
17
|
+
reader = MARC4J4R::Reader.new("#{DIR}/batch.dat")
|
18
|
+
recs = reader.collect
|
19
|
+
recs.size.should.equal 10
|
20
|
+
end
|
21
|
+
|
22
|
+
it "enumerates through all XML records" do
|
23
|
+
reader = MARC4J4R::Reader.new("#{DIR}/batch.xml", :marcxml)
|
24
|
+
recs = reader.collect
|
25
|
+
recs.size.should.equal 10
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "Reader round-tripping" do
|
31
|
+
before do
|
32
|
+
@one = MARC4J4R::Reader.new("#{DIR}/one.dat").first
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should round-trip binary" do
|
36
|
+
rt = MARC4J4R::Reader.new(StringIO.new(@one.to_marc)).first
|
37
|
+
rt.should.equal @one
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should round-trip xml" do
|
41
|
+
rt = MARC4J4R::Reader.new(StringIO.new(@one.to_xml), :marcxml).first
|
42
|
+
rt.should.equal @one
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should show xml and binary forms equal after parsing" do
|
46
|
+
rt = MARC4J4R::Reader.new("#{DIR}/one.xml", :marcxml).first
|
47
|
+
rt.should.equal @one
|
48
|
+
end
|
49
|
+
end
|
data/spec/record_spec.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
# LEADER 00734njm a2200217uu 4500
|
4
|
+
# 001 afc99990058366
|
5
|
+
# 003 DLC
|
6
|
+
# 005 20071104155141.9
|
7
|
+
# 007 sd ummunniauub
|
8
|
+
# 008 071103s1939 xxufmnne||||||||| u eng||
|
9
|
+
# 010 $a afc99990058366
|
10
|
+
# 040 $a DLC $c DLC
|
11
|
+
# 245 04 $a The Texas ranger $h [sound recording] / $c Sung by Beale D. Taylor.
|
12
|
+
# 260 $a Medina, Texas, $c 1939.
|
13
|
+
# 300 $a 1 sound disc : $b analog, 33 1/3 rpm, mono. ; $c 12 in.
|
14
|
+
# 651 0 $a Medina $z Texas $z United States of America.
|
15
|
+
# 700 1 $a Lomax, John Avery, 1867-1948 $e Recording engineer.
|
16
|
+
# 700 1 $a Lomax, Ruby T. (Ruby Terrill) $e Recording engineer.
|
17
|
+
# 700 1 $a Taylor, Beale D. $e Singer.
|
18
|
+
# 852 $a American Folklife Center, Library of Congress
|
19
|
+
# 852 $a DLC
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
describe "MARC4J4R_basic_retrieval_stuff" do
|
26
|
+
before do
|
27
|
+
@one = MARC4J4R::Reader.new("#{DIR}/one.dat").first
|
28
|
+
@batch = MARC4J4R::Reader.new("#{DIR}/batch.dat").collect
|
29
|
+
end
|
30
|
+
|
31
|
+
it "can get the leader" do
|
32
|
+
@one.leader.should.equal "00734njm a2200217uu 4500"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "can read a control field correctly" do
|
36
|
+
@one['001'].value.should.equal "afc99990058366"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "can find all the fields" do
|
40
|
+
fields = @one.collect
|
41
|
+
fields.size.should.equal 16
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should get the first 245 for this record" do
|
45
|
+
@one['245'].to_s.should.equal "245 04 $a The Texas ranger $h [sound recording] / $c Sung by Beale D. Taylor."
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "MARC4J4R::Record #find_by_tag" do
|
51
|
+
before do
|
52
|
+
@one = MARC4J4R::Reader.new("#{DIR}/one.dat").first
|
53
|
+
@df = MARC4J4R::DataField.new('260')
|
54
|
+
@df << MARC4J4R::SubField.new('a', 'Medina, Texas,')
|
55
|
+
@df << MARC4J4R::SubField.new('c', '1939.')
|
56
|
+
|
57
|
+
@cf = MARC4J4R::ControlField.new('005', '20071104155141.9')
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
it "gets an empty array for non-existant tag(s)" do
|
62
|
+
@one.find_by_tag('999').should.equal []
|
63
|
+
end
|
64
|
+
|
65
|
+
it "gets an empty arry for set of non-existant tags" do
|
66
|
+
@one.find_by_tag(['998', '999']).should.equal []
|
67
|
+
end
|
68
|
+
|
69
|
+
it "gets a single field for the 260 as string" do
|
70
|
+
onetag = @one.find_by_tag('260')
|
71
|
+
onetag.should.equal [@df]
|
72
|
+
end
|
73
|
+
|
74
|
+
it "gets a single field for the 260 as an array" do
|
75
|
+
onetag = @one.find_by_tag('260')
|
76
|
+
@one.find_by_tag(['260']).should.equal [@df]
|
77
|
+
end
|
78
|
+
|
79
|
+
it "gets both the 260 and 005" do
|
80
|
+
@one.find_by_tag(['005', '260']).should.equal [@cf, @df]
|
81
|
+
end
|
82
|
+
|
83
|
+
it "returns fields in the order their tags were requested" do
|
84
|
+
@one.find_by_tag(['260', '005']).should.equal [@df, @cf]
|
85
|
+
end
|
86
|
+
|
87
|
+
it "allows caller to force return of tags in original order" do
|
88
|
+
@one.find_by_tag(['260', '005'], true).should.equal [@cf, @df]
|
89
|
+
end
|
90
|
+
|
91
|
+
it "finds all instances of requested tags" do
|
92
|
+
@one.find_by_tag('700').size.should.equal 3
|
93
|
+
@one.find_by_tag('852').size.should.equal 2
|
94
|
+
@one.find_by_tag(['852', '700']).size.should.equal 5
|
95
|
+
end
|
96
|
+
|
97
|
+
it "returns duplicate-tag fields in the order from the record" do
|
98
|
+
first = @one['700']
|
99
|
+
@one.find_by_tag('700')[0].should.equal first
|
100
|
+
end
|
101
|
+
end
|
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
3
|
-
|
2
|
+
require 'bacon'
|
3
|
+
begin
|
4
|
+
require 'greeneggs'
|
5
|
+
rescue LoadError
|
6
|
+
end
|
4
7
|
|
5
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
6
8
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
9
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
10
|
require 'marc4j4r'
|
11
|
+
DIR = File.dirname(__FILE__)
|
8
12
|
|
9
|
-
|
10
|
-
|
13
|
+
|
14
|
+
Bacon.summary_on_exit
|