marc4j4r 0.1.6 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|