call_number_ranges 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -7
- data/lib/call_number_ranges.rb +115 -114
- data/lib/call_number_ranges/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9023472f5c2a0d3065069ffaaceaea18921519d00739e3e086402ed1c88fea8a
|
4
|
+
data.tar.gz: 397c5b5cae0ae7227a7ec50ac6cab9af22119305d3e4b2877f5e1198374484ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f05d536d3cdf5978f89221f55dc091b0962cfe94bfc5c6b54c7149711f4fbd82ed94435f2baee833755171b85c15f55849c360265db955f1ca4fcc2bdb5813d1
|
7
|
+
data.tar.gz: 85679c6b27737a8bbff52c1fed8bdae63b16d1ff03f6edde5abca9a8edb975209ac4bf85d6357e210235b8e5355090799f9903e708bea88f4f19637f1007a2b3
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# CallNumberRanges
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
This gem reads Library of Congress call numbers and then gives you a list of disciplines and departments that may be interested.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -20,9 +18,6 @@ Or install it yourself as:
|
|
20
18
|
|
21
19
|
$ gem install call_number_ranges
|
22
20
|
|
23
|
-
## Usage
|
24
|
-
|
25
|
-
TODO: Write usage instructions here
|
26
21
|
|
27
22
|
## Development
|
28
23
|
|
@@ -32,7 +27,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
27
|
|
33
28
|
## Contributing
|
34
29
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
30
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/lbcclib/call_number_ranges.
|
36
31
|
|
37
32
|
|
38
33
|
## License
|
data/lib/call_number_ranges.rb
CHANGED
@@ -1,114 +1,115 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'call_number_ranges/version'
|
4
|
-
|
5
|
-
DISCIPLINES = {
|
6
|
-
'Accessibility' => Regexp.new('^(HV155[3-9]|HV15[6-9][0-9]|HV1[6-9][0-9]{2}|HV2[0-9]{3}|HV300[0-4]|'\
|
7
|
-
'KF480|LC481[2-9]|LC48[2-9][0-9]|LC49[01][0-9]|LC492[0-8]|'\
|
8
|
-
'NA2547|'\
|
9
|
-
'RA440|RC553.A88|RC569\.[7-9]|RC57[0-4])'),
|
10
|
-
'Accounting' => /^HF(56[0-9]{2})(\.|\s)/,
|
11
|
-
'Agriculture' => Regexp.new('^(HD140[1-9]|HD14[1-9][0-9]|HD1[5-9][0-9]{2}|HD2[01][0-9]{2}|HD220[0-9]|HD2210|'\
|
12
|
-
'S[0-9]+|SF1?[0-9]{,2}|SF2[0-48-9][0-9]|SF27[6-9]|'\
|
13
|
-
'TJ148[0-9]|TJ149[0-6])'),
|
14
|
-
'Anthropology' => /^(CC|GN|GR|GT|E[5-9][0-9](\.|\s)|PM[0-9]{1,3}(\.|\s)|PM[1-7][0-9]{3}(\.|\s))/,
|
15
|
-
'Automotive technology' => /^
|
16
|
-
'Aviation science' => /^(TL[56][0-9]{2}|7[0-7][0-9]|78[0-5])(\.|\s)/,
|
17
|
-
'Biology' => Regexp.new('^(GE[0-9]|'\
|
18
|
-
'Q[12]?[0-9]{,2}(\.|\s)|QH[0-9]|QK[0-9]|QL[0-9]|QM[0-9]|QP[0-9]|QR[0-9]|'\
|
19
|
-
'S59[0-9]|S6[0-5][0-9]|S66[0-7]|SB|SD|SH|'\
|
20
|
-
'TP248\.1[3-9]|TP248\.[2-5]|TP248\.6[0-5])'),
|
21
|
-
'Business' => /^(HB[0-9]|HC[0-9]|HD[0-9]|HE[0-9]|HF[0-9]|HG[0-9]|HJ[0-9])/,
|
22
|
-
'Ceramics' => /^(NK3[7-9][0-9]{2}|NK4[0-5][0-9]{2}|NK46[0-8][0-9]|NK469[0-4]|TT919|TT92[0-7])(\.|\s)/,
|
23
|
-
'Communication' => /^(GN345\.6|HM258|P8[7-9]|P9[0-6]|PN4[0-2][0-9]{2}|PN43[01][0-9]|PN432[01])(\.|\s)/,
|
24
|
-
'Computer science' => Regexp.new('^(HD69\.P75|HF5548\.[45]|'\
|
25
|
-
'Q3[3-9][0-9]|QA7[56]\.[5-9][0-9]*|QA16[4-9]|'\
|
26
|
-
'T14\.5|T36|T57|T58\.[56][0-9]*|TJ211|TJ223|TK5105)(\.|\s)'),
|
27
|
-
'Counseling' => /^(BF636|LB2343)(\.|\s)/,
|
28
|
-
'Criminal justice' => Regexp.new('^(HV[678][0-9]{3}|HV9[0-8][0-9]{2}|HV99[01][0-9]|HV9920|'\
|
29
|
-
'KF9[67][0-9]{2}|KF98[01][0-9]|KF982[0-7])'),
|
30
|
-
'Culinary arts' => Regexp.new('^(SF2[56][0-9]|SF27[0-5]|'\
|
31
|
-
'TP5[0-9]{2}|TP6[0-7][0-9]|TP68[0-4]|'\
|
32
|
-
'TX(537|545|63[1-9]|6[4-9][0-9]|[78][0-9]{2}|9[0-4][0-9]|95[0-3]))'),
|
33
|
-
'Dental assisting' => /^(RK[0-9]+|QM535)(\.|\s)/,
|
34
|
-
'Developmental studies' => /^LB2331\.2/,
|
35
|
-
'Diagnostic imaging' => /^RC78\.7/,
|
36
|
-
'Drafting and engineering graphics' => /^(T35[1-9]|T36[0-9]|T37[01]|TA174)(\.|\s)/,
|
37
|
-
'Earth sciences' => /^(Q[12]?[0-9]{,2}(\.|\s)|GE|QE|SD|SH|SK)/,
|
38
|
-
'Education and HDFS' => Regexp.new('^(GN480|GT24[6-8][0-9]|GT2490|'\
|
39
|
-
'HV699|HV[7-9][0-9]{2}|HV1[0-3][0-9]{2}|14[0-4][0-9]|'\
|
40
|
-
'HQ75\.27|HQ75\.53|HQ77[789]|HQ78[01]|HQ79[3-9]|'\
|
41
|
-
'L[ABC]?[0-9]+)(\.|\s)'),
|
42
|
-
'Engineering' => /^(T[AJK][0-9]+|TP15[56])(\.|\s)/,
|
43
|
-
'English and writing' => /^(LB2360|P[0-9EN-Z]|T11(\.|\s)|T11\.[0-5]|ZA3075)/,
|
44
|
-
'English Language Acquisition' => Regexp.new('^(LB1572|LB1576|'\
|
45
|
-
'P51|P11[89]|P12[01]|PE110[89]|PE111[0-4]|PE1128\.A2|PE113[1-9]|PE1404)'\
|
46
|
-
'(\.|\s)'),
|
47
|
-
'Equine science' => /^SF3[0-9]{2}(\.|\s)/,
|
48
|
-
'Equity, diversity, and inclusion' => Regexp.new('^(BF575\.P9|'\
|
49
|
-
'E184\.A1|E185\.6|'\
|
50
|
-
'GN345\.6|GN469|GN495\.8|'\
|
51
|
-
'HF5549\.5\.A34|HF5549\.5\.M5|'\
|
52
|
-
'HM146|HM671|'\
|
53
|
-
'HN90\.(E4|M26|M84|P57|P6|S6)|'\
|
54
|
-
'HT150[1-9]|HT151[0-9]|HT152[01]|'\
|
55
|
-
'K3242|'\
|
56
|
-
'LB237[56]|'\
|
57
|
-
'LC19[1-9]|LC20[0-9]|LC21[0-3]|LC214\.[0-4]|LC214\.5[0-3]|'\
|
58
|
-
'LC1099|LC1[1-9][0-9]{2}|LC[234][0-9]{3}|LC50[0-9]{2}|LC51[0-5][0-9])'\
|
59
|
-
'(\.|\s)'),
|
60
|
-
'Film studies' => /^(PN199[3-8]|TR84[5-9]|TR8[5-9][0-9]|TR9[01][0-9]|TR92[0-3])(\.|\s)/,
|
61
|
-
'Health, Human Performance, Athletics and PE' => Regexp.new('^(GV20[1-9]|GV2[1-9][0-9]|GV[3-9][0-9]{2}|'\
|
62
|
-
'GV10[0-9]{2}|GV11[0-8][0-9]|GV119[0-8]|'\
|
63
|
-
'RC12[0-3][0-9]|RC124[0-5])(\.|\s)'),
|
64
|
-
'Health informatics' => /^R85[89]|R86[0-4](\.|\s)/,
|
65
|
-
'Heavy equipment/diesel' => /^TJ(\.|\s)/,
|
66
|
-
'History' => /^([CDEF][0-9]+)(\.|\s)/,
|
67
|
-
'International admissions' => /^LB237[56]/,
|
68
|
-
'Journalism' => /^PN(4699|4[7-9][0-9]{2}|5[0-5][0-9]{2}|56[0-5][0-9])/,
|
69
|
-
'Machine tool' => /^(
|
70
|
-
'Math' => /^(HA|QA[1-6]|QA7[0-5]|QA7[89]|QA[89])/,
|
71
|
-
'Mechatronics' => /^(TJ163\.12|TK7875)/,
|
72
|
-
'Medical assisting' => Regexp.new('^(HG937[1-9]|HG93[89][0-9]|QM[0-9]+|'\
|
73
|
-
'R118|R123|R728\.8|'\
|
74
|
-
'RA[1-9]|RA[1-9][0-9]|RA[123][0-9]{2}|RA40[0-9]|RA41[0-5]|'\
|
75
|
-
'RC683.5.E5|RS[0-9]+)(\.|\s)'),
|
76
|
-
'Music' => /^(M|ML|MT)[0-9]+/,
|
77
|
-
'Non-destructive testing' => /^TA417\.[2-5]/,
|
78
|
-
'Nursing' => Regexp.new('^((GN484\.38)|'\
|
79
|
-
'(QM|R[GST])[0-9]+|'\
|
80
|
-
'QP([0-9]|[123][0-9]|4[01]|91|249|267|'\
|
81
|
-
'3[035][1-6]|32[1-9]|361|50[1-9]|51[0-8]|55[1-9]|5[6-9][0-9]|'\
|
82
|
-
'6[0-9]{2}|7[0-4][0-9]|75[0-2])(\.|\s))'),
|
83
|
-
'Occupational therapy' => /^(BF71[2-9]|BF72[1-3]|BF724|QM[0-9]+|RM69[5-9]|RM[78][0-9]{2}|RM9[0-4][0-9]|RM950)(\.|\s)/,
|
84
|
-
'Philosophy' => /^(B[0-9]+|BJ[1-9]|BJ[1-9][0-9]{1,2}|BJ1[0-5][0-9]{2}|BJ16[0-8][0-9]|BJ169[0-7])(\.|\s)/,
|
85
|
-
'Physical sciences' => /^(Q[12]?[0-9]{,2}(\.|\s)|Q[BCD]?[0-9]+|TX545(\.|\s))/,
|
86
|
-
'Polysomnographic technology' => /^(BF(106[89]|107[0-3])|QP42[5-7]|RA78[56]|RC54[7-9]|RC737\.5)(\.|\s)/,
|
87
|
-
'Psychology' => /^(BF[0-9]+|R726\.[5-8]|RA785|RC32[1-9]|RC3[3-9][0-9]|RC4[0-9]{2}|RC5[0-6][0-9]|RC57[01])(\.|\s)/,
|
88
|
-
'Public safety' => /^(HV8290|LB2866|QE53[1-9]|QE54[01])(\.|\s)/,
|
89
|
-
'
|
90
|
-
|
91
|
-
|
92
|
-
'
|
93
|
-
'
|
94
|
-
|
95
|
-
|
96
|
-
'
|
97
|
-
'Visual
|
98
|
-
'
|
99
|
-
'
|
100
|
-
|
101
|
-
'
|
102
|
-
|
103
|
-
|
104
|
-
}
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
#
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'call_number_ranges/version'
|
4
|
+
|
5
|
+
DISCIPLINES = {
|
6
|
+
'Accessibility' => Regexp.new('^(HV155[3-9]|HV15[6-9][0-9]|HV1[6-9][0-9]{2}|HV2[0-9]{3}|HV300[0-4]|'\
|
7
|
+
'KF480|LC481[2-9]|LC48[2-9][0-9]|LC49[01][0-9]|LC492[0-8]|'\
|
8
|
+
'NA2547|'\
|
9
|
+
'RA440|RC553.A88|RC569\.[7-9]|RC57[0-4])'),
|
10
|
+
'Accounting' => /^HF(56[0-9]{2})(\.|\s)/,
|
11
|
+
'Agriculture' => Regexp.new('^(HD140[1-9]|HD14[1-9][0-9]|HD1[5-9][0-9]{2}|HD2[01][0-9]{2}|HD220[0-9]|HD2210|'\
|
12
|
+
'S[0-9]+|SF1?[0-9]{,2}|SF2[0-48-9][0-9]|SF27[6-9]|'\
|
13
|
+
'TJ148[0-9]|TJ149[0-6])'),
|
14
|
+
'Anthropology' => /^(CC|GN|GR|GT|E[5-9][0-9](\.|\s)|PM[0-9]{1,3}(\.|\s)|PM[1-7][0-9]{3}(\.|\s))/,
|
15
|
+
'Automotive technology' => /^(TP359\s?\.B46|TL)/,
|
16
|
+
'Aviation science' => /^(TL[56][0-9]{2}|7[0-7][0-9]|78[0-5])(\.|\s)/,
|
17
|
+
'Biology' => Regexp.new('^(GE[0-9]|'\
|
18
|
+
'Q[12]?[0-9]{,2}(\.|\s)|QH[0-9]|QK[0-9]|QL[0-9]|QM[0-9]|QP[0-9]|QR[0-9]|'\
|
19
|
+
'S59[0-9]|S6[0-5][0-9]|S66[0-7]|SB|SD|SH|'\
|
20
|
+
'TP248\.1[3-9]|TP248\.[2-5]|TP248\.6[0-5])'),
|
21
|
+
'Business' => /^(HB[0-9]|HC[0-9]|HD[0-9]|HE[0-9]|HF[0-9]|HG[0-9]|HJ[0-9])/,
|
22
|
+
'Ceramics' => /^(NK3[7-9][0-9]{2}|NK4[0-5][0-9]{2}|NK46[0-8][0-9]|NK469[0-4]|TT919|TT92[0-7])(\.|\s)/,
|
23
|
+
'Communication' => /^(GN345\.6|HM258|P8[7-9]|P9[0-6]|PN4[0-2][0-9]{2}|PN43[01][0-9]|PN432[01])(\.|\s)/,
|
24
|
+
'Computer science' => Regexp.new('^(HD69\.P75|HF5548\.[45]|'\
|
25
|
+
'Q3[3-9][0-9]|QA7[56]\.[5-9][0-9]*|QA16[4-9]|'\
|
26
|
+
'T14\.5|T36|T57|T58\.[56][0-9]*|TJ211|TJ223|TK5105)(\.|\s)'),
|
27
|
+
'Counseling' => /^(BF636|LB2343)(\.|\s)/,
|
28
|
+
'Criminal justice' => Regexp.new('^(HV[678][0-9]{3}|HV9[0-8][0-9]{2}|HV99[01][0-9]|HV9920|'\
|
29
|
+
'KF9[67][0-9]{2}|KF98[01][0-9]|KF982[0-7])'),
|
30
|
+
'Culinary arts' => Regexp.new('^(SF2[56][0-9]|SF27[0-5]|'\
|
31
|
+
'TP5[0-9]{2}|TP6[0-7][0-9]|TP68[0-4]|'\
|
32
|
+
'TX(537|545|63[1-9]|6[4-9][0-9]|[78][0-9]{2}|9[0-4][0-9]|95[0-3]))'),
|
33
|
+
'Dental assisting' => /^(RK[0-9]+|QM535)(\.|\s)/,
|
34
|
+
'Developmental studies' => /^LB2331\.2/,
|
35
|
+
'Diagnostic imaging' => /^RC78\.7/,
|
36
|
+
'Drafting and engineering graphics' => /^(T35[1-9]|T36[0-9]|T37[01]|TA174)(\.|\s)/,
|
37
|
+
'Earth sciences' => /^(Q[12]?[0-9]{,2}(\.|\s)|GE|QE|SD|SH|SK)/,
|
38
|
+
'Education and HDFS' => Regexp.new('^(GN480|GT24[6-8][0-9]|GT2490|'\
|
39
|
+
'HV699|HV[7-9][0-9]{2}|HV1[0-3][0-9]{2}|14[0-4][0-9]|'\
|
40
|
+
'HQ75\.27|HQ75\.53|HQ77[789]|HQ78[01]|HQ79[3-9]|'\
|
41
|
+
'L[ABC]?[0-9]+)(\.|\s)'),
|
42
|
+
'Engineering' => /^(T[AJK][0-9]+|TP15[56])(\.|\s)/,
|
43
|
+
'English and writing' => /^(LB2360|P[0-9EN-Z]|T11(\.|\s)|T11\.[0-5]|ZA3075)/,
|
44
|
+
'English Language Acquisition' => Regexp.new('^(LB1572|LB1576|'\
|
45
|
+
'P51|P11[89]|P12[01]|PE110[89]|PE111[0-4]|PE1128\.A2|PE113[1-9]|PE1404)'\
|
46
|
+
'(\.|\s)'),
|
47
|
+
'Equine science' => /^SF3[0-9]{2}(\.|\s)/,
|
48
|
+
'Equity, diversity, and inclusion' => Regexp.new('^(BF575\.P9|'\
|
49
|
+
'E184\.A1|E185\.6|'\
|
50
|
+
'GN345\.6|GN469|GN495\.8|'\
|
51
|
+
'HF5549\.5\.A34|HF5549\.5\.M5|'\
|
52
|
+
'HM146|HM671|'\
|
53
|
+
'HN90\.(E4|M26|M84|P57|P6|S6)|'\
|
54
|
+
'HT150[1-9]|HT151[0-9]|HT152[01]|'\
|
55
|
+
'K3242|'\
|
56
|
+
'LB237[56]|'\
|
57
|
+
'LC19[1-9]|LC20[0-9]|LC21[0-3]|LC214\.[0-4]|LC214\.5[0-3]|'\
|
58
|
+
'LC1099|LC1[1-9][0-9]{2}|LC[234][0-9]{3}|LC50[0-9]{2}|LC51[0-5][0-9])'\
|
59
|
+
'(\.|\s)'),
|
60
|
+
'Film studies' => /^(PN199[3-8]|TR84[5-9]|TR8[5-9][0-9]|TR9[01][0-9]|TR92[0-3])(\.|\s)/,
|
61
|
+
'Health, Human Performance, Athletics and PE' => Regexp.new('^(GV20[1-9]|GV2[1-9][0-9]|GV[3-9][0-9]{2}|'\
|
62
|
+
'GV10[0-9]{2}|GV11[0-8][0-9]|GV119[0-8]|'\
|
63
|
+
'RC12[0-3][0-9]|RC124[0-5])(\.|\s)'),
|
64
|
+
'Health informatics' => /^R85[89]|R86[0-4](\.|\s)/,
|
65
|
+
'Heavy equipment/diesel' => /^TJ(\.|\s)/,
|
66
|
+
'History' => /^([CDEF][0-9]+)(\.|\s)/,
|
67
|
+
'International admissions' => /^LB237[56]/,
|
68
|
+
'Journalism' => /^PN(4699|4[7-9][0-9]{2}|5[0-5][0-9]{2}|56[0-5][0-9])/,
|
69
|
+
'Machine tool' => /^TJ(11[89][0-9]|1[012][0-9]{2}|130[0-9]|131[0-3]|184)/,
|
70
|
+
'Math' => /^(HA|QA[1-6]|QA7[0-5]|QA7[89]|QA[89])/,
|
71
|
+
'Mechatronics' => /^(TJ163\.12|TK7875)/,
|
72
|
+
'Medical assisting' => Regexp.new('^(HG937[1-9]|HG93[89][0-9]|QM[0-9]+|'\
|
73
|
+
'R118|R123|R728\.8|'\
|
74
|
+
'RA[1-9]|RA[1-9][0-9]|RA[123][0-9]{2}|RA40[0-9]|RA41[0-5]|'\
|
75
|
+
'RC683.5.E5|RS[0-9]+)(\.|\s)'),
|
76
|
+
'Music' => /^(M|ML|MT)[0-9]+/,
|
77
|
+
'Non-destructive testing' => /^TA417\.[2-5]/,
|
78
|
+
'Nursing' => Regexp.new('^((GN484\.38)|'\
|
79
|
+
'(QM|R[GST])[0-9]+|'\
|
80
|
+
'QP([0-9]|[123][0-9]|4[01]|91|249|267|'\
|
81
|
+
'3[035][1-6]|32[1-9]|361|50[1-9]|51[0-8]|55[1-9]|5[6-9][0-9]|'\
|
82
|
+
'6[0-9]{2}|7[0-4][0-9]|75[0-2])(\.|\s))'),
|
83
|
+
'Occupational therapy' => /^(BF71[2-9]|BF72[1-3]|BF724|QM[0-9]+|RM69[5-9]|RM[78][0-9]{2}|RM9[0-4][0-9]|RM950)(\.|\s)/,
|
84
|
+
'Philosophy' => /^(B[0-9]+|BJ[1-9]|BJ[1-9][0-9]{1,2}|BJ1[0-5][0-9]{2}|BJ16[0-8][0-9]|BJ169[0-7])(\.|\s)/,
|
85
|
+
'Physical sciences' => /^(Q[12]?[0-9]{,2}(\.|\s)|Q[BCD]?[0-9]+|TX545(\.|\s))/,
|
86
|
+
'Polysomnographic technology' => /^(BF(106[89]|107[0-3])|QP42[5-7]|RA78[56]|RC54[7-9]|RC737\.5)(\.|\s)/,
|
87
|
+
'Psychology' => /^(BF[0-9]+|R726\.[5-8]|RA785|RC32[1-9]|RC3[3-9][0-9]|RC4[0-9]{2}|RC5[0-6][0-9]|RC57[01])(\.|\s)/,
|
88
|
+
'Public safety' => /^(HV8290|LB2866|QE53[1-9]|QE54[01])(\.|\s)/,
|
89
|
+
'Queer studies' => /^(BF692|HQ7[5-7])/,
|
90
|
+
'Religion' => Regexp.new('^(B[LMPQRSTVX][0-9]+|DS1[0-4][0-9]|KB[0-9]+|'\
|
91
|
+
'LC32[1-9]|LC3[3-9][0-9]|LC[4-8][0-9]{2}|LC9[012][0-9])(\.|\s)'),
|
92
|
+
'Small business' => /^(HD67\.2|HD2340\.[89]|HD234[0-5]|HD2346\.[0-5]|HF5679)/,
|
93
|
+
'Sociology' => /^(E184|H[MNQSTV][0-9]+)/,
|
94
|
+
'Spanish' => Regexp.new('^(PC407[3-9]|PC4[1-8][0-9]{2}|PC49[0-6][0-9]|PC497[01]|'\
|
95
|
+
'PQ603[7-9]|PQ60[4-9][0-9]|PQ6[1-7][0-9]{2}|PQ8[0-4][0-9]{2}|PQ85[01][0-9])'),
|
96
|
+
'Surgery' => /^(RD\n+|QM\n+|QR[1-9]|QR[1-6][0-9]|QR7[0-4]|R72[3-6])(\.|\s)/,
|
97
|
+
'Visual arts' => /^(N[0-9]|NA|NB|NC|ND|NE|NK|NX|TR|TT919|TT92[0-7])/,
|
98
|
+
'Visual communication' => /^(NC99[7-9]|NC100[0-3]|N7433\.8|NC915\.C65|NK15[2-4][0-9]|TK5105\.888|Z246|Z250)(\.|\s)/,
|
99
|
+
'Water, Environment and Technology' => /^TD7(4[1-9]|[5-7][0-9]|80)(\.|\s)/,
|
100
|
+
'Web technologies' => Regexp.new('(QA76\.76\s?\.H94|QA76\.73\s?\.J39|'\
|
101
|
+
'QA76\.73\s?\.P224|QA76\.73\s?\.R83|QA76\.73\s?\.S67|'\
|
102
|
+
'TK5105\.888)'),
|
103
|
+
'Welding' => /^(NB1220|TH6711|TK4660|TS21[5-9]|TS22[0-8]|TS280|TT211)(\.|\s)/,
|
104
|
+
"Women's studies" => /^BF692|HQ(11[1-9]|1[2-9][0-9]|[2-9][0-9]{2}|10[0-57-9][0-9]{2}|1[1-9][0-9]{2})(\.|\s)/
|
105
|
+
}.freeze
|
106
|
+
|
107
|
+
module CallNumberRanges
|
108
|
+
# Helpful if you have a call number, but want to see
|
109
|
+
# what disciplines match
|
110
|
+
class CallNumber
|
111
|
+
def self.disciplines(call_number)
|
112
|
+
DISCIPLINES.select { |_name, range| call_number.match? range }.keys
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: call_number_ranges
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jane Sandberg
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|