enhanced_marc 0.3.1 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07c6480defdddee56ed969e37689f68200634a4c
4
- data.tar.gz: eb238e80e3af04c515c424e988d0705a7a14a259
3
+ metadata.gz: 5d958751bf63a8d1012d728da09781e147ee5557
4
+ data.tar.gz: 36bca5ed28ea75195859aed6d6cfd58804777ccc
5
5
  SHA512:
6
- metadata.gz: afc67a8415825b3647041ecb7c52bd0ff113352d8400247fbd96b5a33a2cd90ec20f3fac69c8dbcf096daedaba4dd0c0cb3e4405a433d8a48d9bcd2546cce0bf
7
- data.tar.gz: aef1d2c9c28e26de017b6405d4e591ef51ea1914bd1ae290162fbfff81405fad33918fd9169f5beca57d24afd22ef30caeba8ce05d32e9b246253048a8fee3c2
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.0
1
+ 0.3.2
@@ -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 = "0.3.1"
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"]
@@ -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: /[bs]{1}/ },
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
- self.extend SerialType
15
- self.inspect_fixed_fields
14
+ extend SerialType
15
+ inspect_fixed_fields
16
16
  end
17
-
18
- def is_valid_type?
19
- return false unless @leader[6,1].match('a')
20
- return true
17
+
18
+ def valid_type?
19
+ return false unless @leader[6, 1] == 'a'
20
+ true
21
21
  end
22
- def is_valid_blvl?
23
- return false unless @leader[7,1].match(/[bis]{1}/)
24
- return true
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
- return Exception.new("Incorrect type declaration in leader") unless rec.is_valid_type?
32
- return Exception.new("Incorrect bibliographic declaration in leader") unless rec.is_valid_blvl?
33
- return rec
34
- end
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
- self.extend SoundType
15
- self.inspect_fixed_fields
14
+ extend SoundType
15
+ inspect_fixed_fields
16
16
  end
17
-
18
- def is_valid_type?
19
- return false unless @leader[6,1].match(/[ij]{1}/)
20
- return true
17
+
18
+ def valid_type?
19
+ return false unless @leader[6, 1] =~ /[ij]{1}/
20
+ true
21
21
  end
22
- def is_valid_blvl?
23
- return false unless @leader[7,1].match(/[abcdims]{1}/)
24
- return true
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
- return Exception.new("Incorrect type declaration in leader") unless rec.is_valid_type?
32
- return Exception.new("Incorrect bibliographic declaration in leader") unless rec.is_valid_blvl?
33
- return rec
34
- end
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
- self.extend VisualType
15
- self.inspect_fixed_fields
13
+ extend VisualType
14
+ inspect_fixed_fields
16
15
  end
17
-
18
- def is_valid_type?
19
- return false unless @leader[6,1].match(/[gkro]{1}/)
20
- return true
16
+
17
+ def valid_type?
18
+ return false unless @leader[6, 1] =~ /[gkro]{1}/
19
+ true
21
20
  end
22
- def is_valid_blvl?
23
- return false unless @leader[7,1].match(/[abcdims]{1}/)
24
- return true
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
- return Exception.new("Incorrect type declaration in leader") unless rec.is_valid_type?
32
- return Exception.new("Incorrect bibliographic declaration in leader") unless rec.is_valid_blvl?
33
- return rec
34
- end
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.1
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-20 00:00:00.000000000 Z
11
+ date: 2017-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: marc