enhanced_marc 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +0 -31
- data/VERSION +1 -1
- data/enhanced_marc.gemspec +5 -1
- data/lib/enhanced_marc/leader.rb +1 -1
- data/lib/enhanced_marc/serial_record.rb +25 -19
- data/lib/enhanced_marc/sound_record.rb +24 -19
- data/lib/enhanced_marc/visual_record.rb +25 -19
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d958751bf63a8d1012d728da09781e147ee5557
|
4
|
+
data.tar.gz: 36bca5ed28ea75195859aed6d6cfd58804777ccc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3493fc88983365d2bae1555be334db1a00e14a9cfa754578b085e863bf1a1e9568ddbc2adbf8327722ca2f72874e6c955f9149e8548bbb3b649b25e7a8a032eb
|
7
|
+
data.tar.gz: cc4a2515ae5827be31aa7baa0188aec3ffa0dfbd1354d566a25248d163c6b58b23c3b789ae1885674fc1746ffa03b5594bc28ecd593f6027ad373e4989553444
|
data/Rakefile
CHANGED
@@ -1,41 +1,10 @@
|
|
1
|
-
RUBY_ENHANCED_MARC_VERSION = '0.3.0'
|
2
|
-
|
3
1
|
require 'rubygems'
|
4
2
|
require 'rake'
|
5
|
-
require 'rake/testtask'
|
6
3
|
require 'rake/rdoctask'
|
7
|
-
require 'rake/packagetask'
|
8
|
-
require 'rake/gempackagetask'
|
9
|
-
|
10
|
-
task :default => [:test]
|
11
4
|
|
12
|
-
Rake::TestTask.new('test') do |t|
|
13
|
-
t.libs << 'lib'
|
14
|
-
t.pattern = 'test/tc_*.rb'
|
15
|
-
t.verbose = true
|
16
|
-
t.ruby_opts = ['-r marc', '-r test/unit']
|
17
|
-
end
|
18
5
|
|
19
6
|
Rake::RDocTask.new('doc') do |rd|
|
20
7
|
rd.rdoc_files.include("enhanced_marc/**/*.rb")
|
21
8
|
rd.main = 'MARC::Record'
|
22
9
|
rd.rdoc_dir = 'doc'
|
23
10
|
end
|
24
|
-
|
25
|
-
begin
|
26
|
-
require 'jeweler'
|
27
|
-
Jeweler::Tasks.new do |s|
|
28
|
-
|
29
|
-
s.add_dependency('marc')
|
30
|
-
s.add_dependency('locale')
|
31
|
-
s.name = 'enhanced_marc'
|
32
|
-
s.author = 'Ross Singer'
|
33
|
-
s.email = 'rossfsinger@gmail.com'
|
34
|
-
s.homepage = 'http://github.com/rsinger/enhanced-marc/tree'
|
35
|
-
s.summary = 'A DSL for MARC data'
|
36
|
-
s.description = 'A set of enhancements to ruby-marc to make parsing MARC data easier'
|
37
|
-
end
|
38
|
-
rescue LoadError
|
39
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
40
|
-
end
|
41
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.2
|
data/enhanced_marc.gemspec
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'enhanced_marc/version'
|
1
5
|
Gem::Specification.new do |s|
|
2
6
|
s.name = %q{enhanced_marc}
|
3
|
-
s.version =
|
7
|
+
s.version = MARC::EnhancedMARC::VERSION
|
4
8
|
|
5
9
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
10
|
s.authors = ["Ross Singer"]
|
data/lib/enhanced_marc/leader.rb
CHANGED
@@ -73,7 +73,7 @@ module MARC
|
|
73
73
|
|
74
74
|
rec_types = {
|
75
75
|
'BKS' => { type: /[at]{1}/, blvl: /[acdm]{1}/ },
|
76
|
-
'SER' => { type: /[a]{1}/, blvl: /[
|
76
|
+
'SER' => { type: /[a]{1}/, blvl: /[bis]{1}/ },
|
77
77
|
'VIS' => { type: /[gkro]{1}/, blvl: /[abcdims]{1}/ },
|
78
78
|
'MIX' => { type: /[p]{1}/, blvl: /[cd]{1}/ },
|
79
79
|
'MAP' => { type: /[ef]{1}/, blvl: /[abcdims]{1}/ },
|
@@ -1,37 +1,43 @@
|
|
1
1
|
module MARC
|
2
2
|
|
3
|
+
# TODO: rename to ContinuingResource
|
3
4
|
# A class that represents an individual MARC record. Every record
|
4
|
-
# is made up of a collection of MARC::Field objects.
|
5
|
-
|
5
|
+
# is made up of a collection of MARC::Field objects.
|
6
6
|
class SerialRecord < Record
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
super
|
10
10
|
@leader[6] = 'a' if @leader[6,1] == ' '
|
11
|
-
@leader[7] = 's' if @leader[7,1] == ' '
|
12
|
-
@record_type = 'SER'
|
11
|
+
@leader[7] = 's' if @leader[7,1] == ' '
|
12
|
+
@record_type = 'SER'
|
13
13
|
@bibliographic_level = @leader.get_blvl
|
14
|
-
|
15
|
-
|
14
|
+
extend SerialType
|
15
|
+
inspect_fixed_fields
|
16
16
|
end
|
17
|
-
|
18
|
-
def
|
19
|
-
return false unless @leader[6,1]
|
20
|
-
|
17
|
+
|
18
|
+
def valid_type?
|
19
|
+
return false unless @leader[6, 1] == 'a'
|
20
|
+
true
|
21
21
|
end
|
22
|
-
|
23
|
-
|
24
|
-
return
|
22
|
+
alias is_valid_type? valid_type?
|
23
|
+
def valid_blvl?
|
24
|
+
return false unless @leader[7, 1] =~ /[bis]{1}/
|
25
|
+
true
|
25
26
|
end
|
27
|
+
alias is_valid_blvl? valid_blvl?
|
28
|
+
|
26
29
|
def self.new_from_record(record)
|
27
30
|
rec = SerialRecord.new
|
28
31
|
record.instance_variables.each { | var |
|
29
32
|
rec.instance_variable_set(var, record.instance_variable_get(var))
|
30
33
|
}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
34
|
+
error = rec.valid_type? ? nil : 'Incorrect type declaration in leader'
|
35
|
+
if !error && !rec.valid_blvl?
|
36
|
+
error = 'Incorrect bibliographic declaration in leader'
|
37
|
+
end
|
38
|
+
return Exception.new(error) if error
|
39
|
+
rec
|
40
|
+
end
|
41
|
+
|
36
42
|
end
|
37
|
-
end
|
43
|
+
end
|
@@ -1,37 +1,42 @@
|
|
1
1
|
module MARC
|
2
2
|
|
3
3
|
# A class that represents an individual MARC record. Every record
|
4
|
-
# is made up of a collection of MARC::Field objects.
|
4
|
+
# is made up of a collection of MARC::Field objects.
|
5
5
|
|
6
6
|
class SoundRecord < Record
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
super
|
10
|
-
@leader[6] = 'i' if @leader[6,1] == ' '
|
11
|
-
@leader[7] = 'm' if @leader[7,1] == ' '
|
12
|
-
@record_type = 'REC'
|
10
|
+
@leader[6] = 'i' if @leader[6, 1] == ' '
|
11
|
+
@leader[7] = 'm' if @leader[7, 1] == ' '
|
12
|
+
@record_type = 'REC'
|
13
13
|
@bibliographic_level = @leader.get_blvl
|
14
|
-
|
15
|
-
|
14
|
+
extend SoundType
|
15
|
+
inspect_fixed_fields
|
16
16
|
end
|
17
|
-
|
18
|
-
def
|
19
|
-
return false unless @leader[6,1]
|
20
|
-
|
17
|
+
|
18
|
+
def valid_type?
|
19
|
+
return false unless @leader[6, 1] =~ /[ij]{1}/
|
20
|
+
true
|
21
21
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
alias is_valid_type? valid_type?
|
23
|
+
|
24
|
+
def valid_blvl?
|
25
|
+
return false unless @leader[7, 1] =~ /[abcdims]{1}/
|
26
|
+
true
|
25
27
|
end
|
28
|
+
alias is_valid_blvl? valid_blvl?
|
26
29
|
def self.new_from_record(record)
|
27
30
|
rec = SoundRecord.new
|
28
31
|
record.instance_variables.each { | var |
|
29
32
|
rec.instance_variable_set(var, record.instance_variable_get(var))
|
30
33
|
}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
34
|
+
error = rec.valid_type? ? nil : 'Incorrect type declaration in leader'
|
35
|
+
if !error && !rec.valid_blvl?
|
36
|
+
error = 'Incorrect bibliographic declaration in leader'
|
37
|
+
end
|
38
|
+
return Exception.new(error) if error
|
39
|
+
rec
|
40
|
+
end
|
36
41
|
end
|
37
|
-
end
|
42
|
+
end
|
@@ -1,37 +1,43 @@
|
|
1
1
|
module MARC
|
2
2
|
|
3
3
|
# A class that represents an individual MARC record. Every record
|
4
|
-
# is made up of a collection of MARC::Field objects.
|
5
|
-
|
4
|
+
# is made up of a collection of MARC::Field objects.
|
6
5
|
class VisualRecord < Record
|
7
6
|
|
8
7
|
def initialize
|
9
8
|
super
|
10
9
|
@leader[6] = 'g' if @leader[6,1] == ' '
|
11
|
-
@leader[7] = 'm' if @leader[7,1] == ' '
|
12
|
-
@record_type = 'VIS'
|
10
|
+
@leader[7] = 'm' if @leader[7,1] == ' '
|
11
|
+
@record_type = 'VIS'
|
13
12
|
@bibliographic_level = @leader.get_blvl
|
14
|
-
|
15
|
-
|
13
|
+
extend VisualType
|
14
|
+
inspect_fixed_fields
|
16
15
|
end
|
17
|
-
|
18
|
-
def
|
19
|
-
return false unless @leader[6,1]
|
20
|
-
|
16
|
+
|
17
|
+
def valid_type?
|
18
|
+
return false unless @leader[6, 1] =~ /[gkro]{1}/
|
19
|
+
true
|
21
20
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
alias is_valid_type? valid_type?
|
22
|
+
|
23
|
+
def valid_blvl?
|
24
|
+
return false unless @leader[7, 1] =~ /[abcdims]{1}/
|
25
|
+
true
|
25
26
|
end
|
27
|
+
alias is_valid_blvl? valid_blvl?
|
28
|
+
|
26
29
|
def self.new_from_record(record)
|
27
30
|
rec = VisualRecord.new
|
28
31
|
record.instance_variables.each { | var |
|
29
32
|
rec.instance_variable_set(var, record.instance_variable_get(var))
|
30
33
|
}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
34
|
+
error = rec.valid_type? ? nil : 'Incorrect type declaration in leader'
|
35
|
+
if !error && !rec.valid_blvl?
|
36
|
+
error = 'Incorrect bibliographic declaration in leader'
|
37
|
+
end
|
38
|
+
return Exception.new(error) if error
|
39
|
+
rec
|
40
|
+
end
|
41
|
+
|
36
42
|
end
|
37
|
-
end
|
43
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enhanced_marc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ross Singer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: marc
|