traject_umich_format 0.3.0 → 0.4.4
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 +5 -5
- data/ChangeLog.md +13 -0
- data/lib/traject/umich_format/bib_format.rb +5 -5
- data/lib/traject/umich_format/bib_types.rb +35 -0
- data/lib/traject/umich_format/macros.rb +1 -1
- data/lib/traject/umich_format/version.rb +1 -1
- data/lib/translation_maps/umich/format.rb +1 -0
- data/spec/audio_spec.rb +9 -0
- metadata +18 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5d5c289456af156391507f875b2c204c9e8c734a5778eb1e669e0da1c0ee0b3d
|
4
|
+
data.tar.gz: 953420f1ab73559be5ab828c5702b950b4e68e126ce07d651a0eb3d527a1d5ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fffed374bb32707d3026b1510fe9b410710e5e3ecd3f6ef557e11030599fa77e589d6fbed6013553fe530b23b874ab5a3192038a67441b9c8628aa4017e6e13f
|
7
|
+
data.tar.gz: 0565de640f6889aad2812f69bf4d882c87799adb174514b5f115a55f48d84d2b3846a6688d3cda6bb8629cdc405556d760a374406b6972ace71945d48c87e4d0
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### 0.4.4 / 2020-06-10
|
2
|
+
|
3
|
+
* Include "i" bib level in defs for formats other than bk or se.
|
4
|
+
|
5
|
+
### 0.4.0 / 2017-12-01
|
6
|
+
|
7
|
+
* Improve recognition of audio and CD formats
|
8
|
+
|
9
|
+
### 0.3.0 / 2017-04-13
|
10
|
+
|
11
|
+
* Call `uniq` on the list of formats before it's returned, since _serial_ can sometimes come
|
12
|
+
from two non-mutually-exclusive places. Thanks to @timothyprettyman.
|
13
|
+
|
1
14
|
### 0.2.0 / 2013-11-13
|
2
15
|
|
3
16
|
* Make LP format detection more liberal (thank you for pull request, @jrochkind)
|
@@ -37,19 +37,19 @@ class Traject::UMichFormat::BibFormat
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def bibformat_cf(type, lev)
|
40
|
-
(type == 'm') && %w[a b c d m s].include?(lev)
|
40
|
+
(type == 'm') && %w[a b c d i m s].include?(lev)
|
41
41
|
end
|
42
42
|
|
43
43
|
def bibformat_vm(type, lev)
|
44
|
-
%w[g k o r].include?(type) && %w[a b c d m s].include?(lev)
|
44
|
+
%w[g k o r].include?(type) && %w[a b c d i m s].include?(lev)
|
45
45
|
end
|
46
46
|
|
47
47
|
def bibformat_mu(type, lev)
|
48
|
-
%w[c d i j].include?(type) && %w[a b c d m s].include?(lev)
|
48
|
+
%w[c d i j].include?(type) && %w[a b c d i m s].include?(lev)
|
49
49
|
end
|
50
50
|
|
51
51
|
def bibformat_mp(type, lev)
|
52
|
-
%w[e f].include?(type) && %w[a b c d m s].include?(lev)
|
52
|
+
%w[e f].include?(type) && %w[a b c d i m s].include?(lev)
|
53
53
|
end
|
54
54
|
|
55
55
|
def bibformat_se(type, lev)
|
@@ -57,6 +57,6 @@ class Traject::UMichFormat::BibFormat
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def bibformat_mx(type, lev)
|
60
|
-
%w[b p].include?(type) && %w[a b c d m s].include?(lev)
|
60
|
+
%w[b p].include?(type) && %w[a b c d i m s].include?(lev)
|
61
61
|
end
|
62
62
|
end
|
@@ -38,6 +38,7 @@ class Traject::UMichFormat::BibTypes
|
|
38
38
|
codes.concat self.reference_types
|
39
39
|
codes.concat self.pp_types
|
40
40
|
codes.concat self.videogame_types
|
41
|
+
codes.concat self.boardgame_types
|
41
42
|
|
42
43
|
codes.uniq!
|
43
44
|
codes.compact!
|
@@ -163,6 +164,14 @@ class Traject::UMichFormat::BibTypes
|
|
163
164
|
end
|
164
165
|
end
|
165
166
|
|
167
|
+
# RC: 007/00 is 's' and 007/01 is 'd' and 007/06 is 'g'
|
168
|
+
@record.fields('007').map{|f| f.value}.each do |f|
|
169
|
+
if (f[0] == 's') && (f[1] == 'd') && (f[6] == 'g')
|
170
|
+
types << 'RC'
|
171
|
+
break
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
166
175
|
f8524.each do |f|
|
167
176
|
if (f['b'].upcase == 'MUSIC') && (f['j'] =~ /\ACD/i)
|
168
177
|
types << 'RC'
|
@@ -354,6 +363,7 @@ class Traject::UMichFormat::BibTypes
|
|
354
363
|
# TYP CR CDROM 852## j MATCH cdrom*
|
355
364
|
# TYP CR CDROM 852## j MATCH cd-rom*
|
356
365
|
# TYP CS Software 852## j MATCH software*
|
366
|
+
# CR: 007/00 is 'c' and 007/01 is 'o' and 007/04 is 'g'
|
357
367
|
|
358
368
|
def software_types
|
359
369
|
types = []
|
@@ -365,6 +375,14 @@ class Traject::UMichFormat::BibTypes
|
|
365
375
|
types << 'CS'
|
366
376
|
end
|
367
377
|
end
|
378
|
+
|
379
|
+
# CR: 007/00 is 'c' and 007/01 is 'o' and 007/04 is 'g'
|
380
|
+
@record.fields('007').map{|f| f.value}.each do |f|
|
381
|
+
if (f[0] == 'c') && (f[1] == 'o') && (f[4] == 'g')
|
382
|
+
types << 'CR'
|
383
|
+
end
|
384
|
+
end
|
385
|
+
|
368
386
|
types.uniq!
|
369
387
|
return types
|
370
388
|
end
|
@@ -549,5 +567,22 @@ class Traject::UMichFormat::BibTypes
|
|
549
567
|
end
|
550
568
|
end
|
551
569
|
|
570
|
+
# TYP BG Board Games 655## a MATCH board games
|
571
|
+
# TYP BG Board Games 655## a MATCH card games
|
572
|
+
# TYP BG Board Games 852## j MATCH game board*
|
573
|
+
# TYP BG Board Games LDR F06-01 EQUAL [g,k,o,r]
|
574
|
+
# 008 F33-01 EQUAL g
|
575
|
+
# TYP BG Board Games LDR F06-01 EQUAL [g,k,o,r]
|
576
|
+
# 006 F16-01 EQUAL g
|
577
|
+
|
578
|
+
|
579
|
+
def boardgame_types
|
580
|
+
return ['BG'] if self['655a'].grep(/\A(board|card) games/i).size > 0
|
581
|
+
return ['BG'] if self['852j'].grep(/\Agame board/i).size > 0
|
582
|
+
return ['BG'] if %w[g k o r].include?(record.leader[6]) && (self['008[33]'].include? 'g')
|
583
|
+
return ['BG'] if %w[g k o r].include?(record.leader[6]) && (self['006[16]'].include? 'g')
|
584
|
+
return []
|
585
|
+
end
|
586
|
+
|
552
587
|
|
553
588
|
end
|
@@ -44,7 +44,7 @@ module Traject::UMichFormat::Macros
|
|
44
44
|
tmap = Traject::TranslationMap.new('umich/format')
|
45
45
|
->(record, acc, context) do
|
46
46
|
context.clipboard[:umich_format_obj] ||= Traject::UMichFormat.new(record)
|
47
|
-
acc.concat context.clipboard[:umich_format_obj].format_and_types.map{|x| tmap[x]}
|
47
|
+
acc.concat context.clipboard[:umich_format_obj].format_and_types.map{|x| tmap[x]}.uniq
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
data/spec/audio_spec.rb
CHANGED
@@ -52,6 +52,15 @@ describe 'audio' do
|
|
52
52
|
assert @umf.types.include?("RL"), "types include 'RL'"
|
53
53
|
end
|
54
54
|
|
55
|
+
it "identifies an audio CD from the 007 field" do
|
56
|
+
@record = MARC::Reader.new(support_file_path 'audio_cd_007.mrc').first
|
57
|
+
@umf = Traject::UMichFormat.new(@record)
|
58
|
+
|
59
|
+
puts 'types from audio_cd_007.mrc file: ' + @umf.types.join(',')
|
60
|
+
#assert_equal 'MU', @umf.bib_format
|
61
|
+
assert @umf.types.include?("RC"), "types include 'RC'"
|
62
|
+
end
|
63
|
+
|
55
64
|
end
|
56
65
|
|
57
66
|
describe "macros" do
|
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traject_umich_format
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bill Dueber
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- -
|
16
|
+
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: '0'
|
19
19
|
name: bundler
|
@@ -21,13 +21,13 @@ dependencies:
|
|
21
21
|
type: :development
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '0'
|
33
33
|
name: rake
|
@@ -35,13 +35,13 @@ dependencies:
|
|
35
35
|
type: :development
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
name: yard
|
@@ -49,19 +49,21 @@ dependencies:
|
|
49
49
|
type: :development
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description: The algorithm used by the University of Michigan University Library to
|
55
|
+
description: The algorithm used by the University of Michigan University Library to
|
56
|
+
determine format (book, serial, etc.) and type (audio, video, conference, etc.)
|
57
|
+
from a (ruby marc) MARC record
|
56
58
|
email: bill@dueber.com
|
57
59
|
executables: []
|
58
60
|
extensions: []
|
59
61
|
extra_rdoc_files: []
|
60
62
|
files:
|
61
|
-
- .document
|
62
|
-
- .gitignore
|
63
|
-
- .travis.yml
|
64
|
-
- .yardopts
|
63
|
+
- ".document"
|
64
|
+
- ".gitignore"
|
65
|
+
- ".travis.yml"
|
66
|
+
- ".yardopts"
|
65
67
|
- ChangeLog.md
|
66
68
|
- Gemfile
|
67
69
|
- LICENSE.txt
|
@@ -95,17 +97,17 @@ require_paths:
|
|
95
97
|
- lib
|
96
98
|
required_ruby_version: !ruby/object:Gem::Requirement
|
97
99
|
requirements:
|
98
|
-
- -
|
100
|
+
- - ">="
|
99
101
|
- !ruby/object:Gem::Version
|
100
102
|
version: '0'
|
101
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
104
|
requirements:
|
103
|
-
- -
|
105
|
+
- - ">="
|
104
106
|
- !ruby/object:Gem::Version
|
105
107
|
version: '0'
|
106
108
|
requirements: []
|
107
109
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
110
|
+
rubygems_version: 2.7.9
|
109
111
|
signing_key:
|
110
112
|
specification_version: 4
|
111
113
|
summary: Extract the format and type from a MARC record, the UMich way
|
@@ -120,4 +122,3 @@ test_files:
|
|
120
122
|
- spec/spec_support/video_dvd_rom.mrc
|
121
123
|
- spec/version_spec.rb
|
122
124
|
- spec/video_spec.rb
|
123
|
-
has_rdoc:
|