stanford-mods 0.0.3 → 0.0.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.
data/README.rdoc CHANGED
@@ -60,6 +60,7 @@ Example Using SearchWorks Mixins:
60
60
 
61
61
  == Releases
62
62
 
63
- 0.0.3 began SearchWorks mixins
63
+ 0.0.4 KolbRecord started
64
+ 0.0.3 began SearchWorks mixins with sw_access_facet and sw_language_facet
64
65
  0.0.2 add usage instructions to readme
65
66
  0.0.1 Initial commit - grab name
@@ -0,0 +1,16 @@
1
+ # Kolb Collection specific wranglings of MODS metadata as an extension of the Mods::Record object
2
+ module Stanford
3
+ module Mods
4
+
5
+ class KolbRecord < Record
6
+
7
+ require 'stanford-mods/searchworks'
8
+
9
+ # NAOMI_MUST_COMMENT_THIS_METHOD
10
+ def publish_date
11
+
12
+ end
13
+
14
+ end
15
+ end
16
+ end
@@ -7,12 +7,12 @@ module Stanford
7
7
  class Record < ::Mods::Record
8
8
 
9
9
  # if it's coming from DOR, then it is available online
10
- def access_facet
10
+ def sw_access_facet
11
11
  ['Online']
12
12
  end
13
13
 
14
14
  # include langagues known to SearchWorks; try to error correct when possible (e.g. when ISO-639 disagrees with MARC standard)
15
- def language_facet
15
+ def sw_language_facet
16
16
  result = []
17
17
  @mods_ng_xml.language.each { |n|
18
18
  # get languageTerm codes and add their translations to the result
@@ -48,8 +48,8 @@ module Stanford
48
48
  end
49
49
  }
50
50
  result.uniq
51
- end
51
+ end # language_facet
52
52
 
53
- end
54
- end
55
- end
53
+ end # class Record
54
+ end # Module Mods
55
+ end # Module Stanford
@@ -1,5 +1,5 @@
1
1
  module Stanford
2
2
  module Mods
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
data/spec/kolb_spec.rb ADDED
@@ -0,0 +1,236 @@
1
+ require 'spec_helper'
2
+ require 'stanford-mods/kolb'
3
+
4
+ describe "Kolb Collection Mods Record" do
5
+ before(:all) do
6
+ @krec = Stanford::Mods::KolbRecord.new
7
+ @krec.from_str('<?xml version="1.0"?>
8
+ <ns3:mods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://www.loc.gov/mods/v3" xmlns:ns2="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd">
9
+ <ns3:titleInfo>
10
+ <ns3:title>Edward VI, king of England,</ns3:title>
11
+ </ns3:titleInfo>
12
+ <ns3:language>
13
+ <ns3:languageTerm type="code" authority="iso639-2b">eng</ns3:languageTerm>
14
+ <ns3:languageTerm type="text">English</ns3:languageTerm>
15
+ </ns3:language>
16
+ <ns3:typeOfResource>still image</ns3:typeOfResource>
17
+ <ns3:originInfo>
18
+ <ns3:dateCreated>1537-1553.</ns3:dateCreated>
19
+ <ns3:dateCreated point="start">1537</ns3:dateCreated>
20
+ <ns3:dateCreated point="end">1553</ns3:dateCreated>
21
+ </ns3:originInfo>
22
+ <ns3:subject>
23
+ <ns3:name type="personal" authority="ingest">
24
+ <ns3:namePart type="family">Edward VI , king of England, </ns3:namePart>
25
+ <ns3:displayForm>Edward VI , king of England, 1537-1553</ns3:displayForm>
26
+ </ns3:name>
27
+ </ns3:subject>
28
+ <ns3:name type="personal" authority="ingest">
29
+ <ns3:role>
30
+ <ns3:roleTerm type="text" authority="marcrelator">creator</ns3:roleTerm>
31
+ <ns3:roleTerm type="code" authority="marcrelator">cre</ns3:roleTerm>
32
+ </ns3:role>
33
+ <ns3:namePart type="family">Holbein, Han, 1497-1543</ns3:namePart>
34
+ <ns3:displayForm>Holbein, Han, 1497-1543</ns3:displayForm>
35
+ </ns3:name>
36
+ <ns3:name type="personal" authority="ingest">
37
+ <ns3:role>
38
+ <ns3:roleTerm type="text" authority="marcrelator">creator</ns3:roleTerm>
39
+ <ns3:roleTerm type="code" authority="marcrelator">cre</ns3:roleTerm>
40
+ </ns3:role>
41
+ <ns3:namePart type="family">Sheppard, Robert, 1732-1737</ns3:namePart>
42
+ <ns3:displayForm>Sheppard, Robert, 1732-1737</ns3:displayForm>
43
+ </ns3:name>
44
+ <ns3:subject authority="ingest">
45
+ <ns3:topic>Ruler, English.Ruler, English.</ns3:topic>
46
+ </ns3:subject>
47
+ <ns3:abstract displayLabel="Scope and Contents note"/>
48
+ <ns3:physicalDescription>
49
+ <ns3:note displayLabel="Material Specific Details note">0395</ns3:note>
50
+ </ns3:physicalDescription>
51
+ </ns3:mods>')
52
+ end
53
+
54
+ context "for SearchWorks Solr" do
55
+ # from https://consul.stanford.edu/display/NGDE/Required+and+Recommended+Solr+Fields+for+SearchWorks+documents
56
+
57
+ context "required values" do
58
+
59
+ it "catch all text field" do
60
+ pending "to be implemented"
61
+ end
62
+
63
+ it "format" do
64
+ # sometimes from contentMetadata, o.w. see mods_mapper.is_a_map/image?
65
+ pending "to be implemented"
66
+
67
+ #<ns3:typeOfResource>still image</ns3:typeOfResource>
68
+ end
69
+
70
+ # FIXME: update per gryphDOR code / searcworks code / new schema
71
+
72
+ it "collection" do
73
+ pending "to be implemented"
74
+ # from solr_mapper.rb
75
+ # # Special treatment for collection objects
76
+ #if is_a_collection?
77
+ # solr_doc[:display_type] = "Collection"
78
+ # solr_doc[:collection_type] = "Digital Collection"
79
+ #else
80
+ # solr_doc[:display_type] = display_type
81
+ #end
82
+
83
+ #if collections # An array of the druids of any collections this object is part of
84
+ # solr_doc[:collection] = collections
85
+ # solr_doc[:collection_with_title] = collections_with_titles
86
+ #end
87
+
88
+
89
+ end
90
+
91
+ it "display_type" do
92
+ pending "to be implemented"
93
+ end
94
+ end
95
+
96
+ context "strongly recommended" do
97
+ it "access_facet" do
98
+ @krec.sw_access_facet.should == ['Online']
99
+ end
100
+ context "title" do
101
+ context "for display and searching" do
102
+ it "short title" do
103
+ @krec.short_titles.should == ['Edward VI, king of England,']
104
+ end
105
+ it "full title" do
106
+ @krec.full_titles.should == ['Edward VI, king of England,']
107
+ end
108
+ it "alternative titles" do
109
+ @krec.alternative_titles.size.should == 0
110
+ end
111
+ end
112
+ it "sortable title" do
113
+ @krec.sort_title.should == 'Edward VI, king of England,'
114
+ end
115
+ end
116
+ end
117
+
118
+ context "recommended" do
119
+ context "publication date" do
120
+ it "for searching and facet" do
121
+ pending "to be implemented"
122
+ @krec.pub_date.should include('1537')
123
+ @krec.pub_date.should include('1545')
124
+ @krec.pub_date.should include('1553')
125
+ @krec.pub_date.should_not include('1554')
126
+ @krec.pub_date.should_not include('1536')
127
+ end
128
+ it "for sorting should be dateCreated start date" do
129
+ pending "to be implemented"
130
+ @krec.pub_date_sort.should == '1537'
131
+ end
132
+ it "for pub date grouping (hierarchical / date slider?)" do
133
+ pending "to be implemented"
134
+ @krec.pub_date_group_facet.should == 'More than 50 years ago'
135
+ end
136
+ end
137
+ context "language" do
138
+ it "facet should have a text value" do
139
+ @krec.sw_language_facet.should == ['English']
140
+ end
141
+ end
142
+ context "authors" do
143
+ it "personal_names" do
144
+ @krec.personal_names.size.should == 2
145
+ @krec.personal_names.should include('Holbein, Han, 1497-1543')
146
+ @krec.personal_names.should include('Sheppard, Robert, 1732-1737')
147
+ end
148
+ it "name object showing creator role" do
149
+ pending "to be implemented"
150
+ end
151
+ it "author sort" do
152
+ pending "to be implemented"
153
+ end
154
+ end
155
+ end
156
+
157
+ end # for SearchWorks Solr
158
+
159
+ context "abstract" do
160
+ # FIXME: move to stanford_mods, not kolb specific
161
+ it "should not include empty elements" do
162
+ pending "to be implemented"
163
+ # <ns3:abstract displayLabel="Scope and Contents note"/>
164
+ @krec.abstract.size.should == 0
165
+ @krec.scope_and_contents_note.size.should == 0
166
+ end
167
+ end
168
+
169
+ context "physicalDescription" do
170
+ # <ns3:physicalDescription>
171
+ # <ns3:note displayLabel="Material Specific Details note">0395</ns3:note>
172
+ # </ns3:physicalDescription>
173
+ it "should be included in catch all text" do
174
+ pending "to be implemented"
175
+ end
176
+ end
177
+
178
+ context "subject" do
179
+ it "topic" do
180
+ @krec.subject.topic.map { |e| e.text }.should == ['Ruler, English.Ruler, English.']
181
+ end
182
+ it "name" do
183
+ pending "to be implemented"
184
+ @krec.subject.name.map { |e| e.text }.should == ['Edward VI , king of England, 1537-1553']
185
+ end
186
+ end
187
+
188
+ context "kolb record title issue" do
189
+ before(:all) do
190
+ @krec.from_str('<?xml version="1.0" encoding="UTF-8"?>
191
+ <ns3:mods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://www.loc.gov/mods/v3" xmlns:ns2="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd">
192
+ <ns3:titleInfo>
193
+ <ns3:title>Elizabeth I, queen of England,</ns3:title>
194
+ </ns3:titleInfo>
195
+ <ns3:language>
196
+ <ns3:languageTerm type="code" authority="iso639-2b">eng</ns3:languageTerm>
197
+ <ns3:languageTerm type="text">English</ns3:languageTerm>
198
+ </ns3:language>
199
+ <ns3:typeOfResource>still image</ns3:typeOfResource>
200
+ <ns3:originInfo>
201
+ <ns3:dateCreated>1533-1603.</ns3:dateCreated>
202
+ <ns3:dateCreated point="start">1533</ns3:dateCreated>
203
+ <ns3:dateCreated point="end">1603</ns3:dateCreated>
204
+ </ns3:originInfo>
205
+ <ns3:subject>
206
+ <ns3:name type="personal" authority="ingest">
207
+ <ns3:namePart type="family">Elizabeth I, Queen of England</ns3:namePart>
208
+ <ns3:displayForm>Elizabeth I, Queen of England, 1533-1603</ns3:displayForm>
209
+ </ns3:name>
210
+ </ns3:subject>
211
+ <ns3:name type="personal" authority="ingest">
212
+ <ns3:role>
213
+ <ns3:roleTerm type="text" authority="marcrelator">creator</ns3:roleTerm>
214
+ <ns3:roleTerm type="code" authority="marcrelator">cre</ns3:roleTerm>
215
+ </ns3:role>
216
+ <ns3:namePart type="family">Houston, Richard, 1721?-1775</ns3:namePart>
217
+ <ns3:displayForm>Houston, Richard, 1721?-1775</ns3:displayForm>
218
+ </ns3:name>
219
+ <ns3:subject authority="ingest">
220
+ <ns3:topic>Ruler, English. W</ns3:topic>
221
+ </ns3:subject>
222
+ <ns3:abstract displayLabel="Scope and Contents note">Elisabetha D.G./Angliae,Franciae &amp; Hiberniae,
223
+ Regina,./Printed for E.Bakewell &amp; H.Parker; opposite Birchin Lane
224
+ in Cornhill.</ns3:abstract>
225
+ <ns3:physicalDescription>
226
+ <ns3:note displayLabel="Material Specific Details note">0411</ns3:note>
227
+ </ns3:physicalDescription>
228
+ </ns3:mods>')
229
+ end
230
+ it "should get full title" do
231
+ @krec.title_info.full_title.should == ['Elizabeth I, queen of England,']
232
+ @krec.full_titles.should == ['Elizabeth I, queen of England,']
233
+ end
234
+ end
235
+
236
+ end
@@ -6,22 +6,14 @@ describe "Values for SearchWorks Solr" do
6
6
 
7
7
  context "required fields" do
8
8
  context "DOR specific" do
9
- it "druid" do
10
- pending "to be implemented in harvestdor"
11
- end
9
+ # in harvestdor code: druid, parent_coll_ckey, id, collection
10
+
12
11
  it "url_fulltext" do
13
12
  pending "to be implemented"
14
13
  end
15
14
  it "mods_xml" do
16
15
  pending "to be implemented"
17
16
  end
18
- it "parent_coll_ckey if item object" do
19
- pending "to be implemented in harvestdor"
20
- end
21
- end
22
-
23
- it "id" do
24
- pending "to be implemented in harvestdor"
25
17
  end
26
18
 
27
19
  it "all_search" do
@@ -33,7 +25,6 @@ describe "Values for SearchWorks Solr" do
33
25
  end
34
26
 
35
27
  # FIXME: update per gryphDOR code / searcworks code / new schema
36
-
37
28
  it "collection" do
38
29
  pending "to be implemented, using controlled vocab, in harvestdor"
39
30
  end
@@ -46,7 +37,7 @@ describe "Values for SearchWorks Solr" do
46
37
 
47
38
  context "strongly recommended fields" do
48
39
  it "access_facet" do
49
- Stanford::Mods::Record.new.access_facet.should == ['Online']
40
+ Stanford::Mods::Record.new.sw_access_facet.should == ['Online']
50
41
  end
51
42
  context "title fields" do
52
43
  context "for display" do
@@ -88,18 +79,20 @@ describe "Values for SearchWorks Solr" do
88
79
  m = '<mods><language><languageTerm authority="iso639-2b" type="code">per ara, dut</languageTerm></language></mods>'
89
80
  r = Stanford::Mods::Record.new
90
81
  r.from_str(m)
91
- r.language_facet.size.should == 3
92
- r.language_facet.should include("Persian")
93
- r.language_facet.should include("Arabic")
94
- r.language_facet.should include("Dutch")
95
- r.language_facet.should_not include("Dutch; Flemish")
82
+ langs = r.sw_language_facet
83
+ langs.size.should == 3
84
+ langs.should include("Persian")
85
+ langs.should include("Arabic")
86
+ langs.should include("Dutch")
87
+ langs.should_not include("Dutch; Flemish")
96
88
  end
97
89
  it "should not have duplicates" do
98
90
  m = '<mods><language><languageTerm type="code" authority="iso639-2b">eng</languageTerm><languageTerm type="text">English</languageTerm></language></mods>'
99
91
  r = Stanford::Mods::Record.new
100
92
  r.from_str(m)
101
- r.language_facet.size.should == 1
102
- r.language_facet.should include("English")
93
+ langs = r.sw_language_facet
94
+ langs.size.should == 1
95
+ langs.should include("English")
103
96
  end
104
97
 
105
98
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stanford-mods
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -145,10 +145,12 @@ files:
145
145
  - Rakefile
146
146
  - config/mappings_hash.rb
147
147
  - lib/stanford-mods.rb
148
+ - lib/stanford-mods/kolb.rb
148
149
  - lib/stanford-mods/mappings.rb
149
150
  - lib/stanford-mods/searchworks.rb
150
151
  - lib/stanford-mods/searchworks_languages.rb
151
152
  - lib/stanford-mods/version.rb
153
+ - spec/kolb_spec.rb
152
154
  - spec/spec_helper.rb
153
155
  - spec/values_for_req_sw_spec.rb
154
156
  - stanford-mods.gemspec
@@ -166,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
168
  version: '0'
167
169
  segments:
168
170
  - 0
169
- hash: -3428048468669990853
171
+ hash: 3798331701017040481
170
172
  required_rubygems_version: !ruby/object:Gem::Requirement
171
173
  none: false
172
174
  requirements:
@@ -175,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
177
  version: '0'
176
178
  segments:
177
179
  - 0
178
- hash: -3428048468669990853
180
+ hash: 3798331701017040481
179
181
  requirements: []
180
182
  rubyforge_project:
181
183
  rubygems_version: 1.8.24
@@ -183,6 +185,7 @@ signing_key:
183
185
  specification_version: 3
184
186
  summary: Stanford specific wrangling of MODS metadata
185
187
  test_files:
188
+ - spec/kolb_spec.rb
186
189
  - spec/spec_helper.rb
187
190
  - spec/values_for_req_sw_spec.rb
188
191
  has_rdoc: