marc 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/lib/marc/marc21.rb CHANGED
@@ -76,6 +76,8 @@ module MARC
76
76
  # get the byte offsets from the record directory
77
77
  directory = marc[LEADER_LENGTH..base_address-1]
78
78
 
79
+ throw "invalid directory in record" if directory == nil
80
+
79
81
  # the number of fields in the record corresponds to
80
82
  # how many directory entries there are
81
83
  num_fields = directory.length / DIRECTORY_ENTRY_LENGTH
data/lib/marc/reader.rb CHANGED
@@ -76,8 +76,13 @@ module MARC
76
76
 
77
77
  def each
78
78
  @handle.each_line(MARC::MARC21::END_OF_RECORD) do |raw|
79
- record = MARC::Record.new_from_marc(raw, :forgiving => true)
80
- yield record
79
+ begin
80
+ record = MARC::Record.new_from_marc(raw, :forgiving => true)
81
+ yield record
82
+ rescue StandardError => e
83
+ # caught exception just keep barrelling along
84
+ # TODO add logging
85
+ end
81
86
  end
82
87
  end
83
88
 
data/test/tc_reader.rb CHANGED
@@ -14,25 +14,25 @@ class ReaderTest < Test::Unit::TestCase
14
14
  reader = MARC::ForgivingReader.new('test/batch.dat')
15
15
  count = 0
16
16
  reader.each { count += 1 }
17
- assert_equal(count, 10)
17
+ assert_equal(10, count)
18
18
  end
19
19
 
20
20
  def test_search
21
21
  reader = MARC::Reader.new('test/batch.dat')
22
22
  records = reader.find_all { |r| r =~ /Perl/ }
23
- assert_equal(records.length,10)
23
+ assert_equal(10, records.length)
24
24
 
25
25
  reader = MARC::Reader.new('test/batch.dat')
26
26
  records = reader.find_all { |r| r['245'] =~ /Perl/ }
27
- assert_equal(records.length,10)
27
+ assert_equal(10, records.length)
28
28
 
29
29
  reader = MARC::Reader.new('test/batch.dat')
30
30
  records = reader.find_all { |r| r['245']['a'] =~ /Perl/ }
31
- assert_equal(records.length,10)
31
+ assert_equal(10, records.length)
32
32
 
33
33
  reader = MARC::Reader.new('test/batch.dat')
34
34
  records = reader.find_all { |r| r =~ /Foo/ }
35
- assert_equal(records.length,0)
35
+ assert_equal(0, records.length)
36
36
  end
37
37
 
38
38
  end
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: marc
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.5
6
+ version: 0.0.6
7
7
  date: 2005-10-18 00:00:00 -05:00
8
8
  summary: A ruby library for working with Machine Readable Cataloging
9
9
  require_paths: