mods_display 0.1.2 → 0.1.3

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.
@@ -13,7 +13,7 @@ class ModsDisplay::Imprint < ModsDisplay::Field
13
13
  edition = value.edition.map do |e|
14
14
  e.text unless e.text.strip.empty?
15
15
  end.compact.join(" ").strip
16
- place = value.place.map do |p|
16
+ place = place_terms(value).map do |p|
17
17
  p.text unless p.text.strip.empty?
18
18
  end.compact.join(" : ").strip unless value.place.text.strip.empty?
19
19
  publisher = value.publisher.map do |p|
@@ -150,14 +150,22 @@ class ModsDisplay::Imprint < ModsDisplay::Field
150
150
  end
151
151
  end
152
152
  def normalize_date(date)
153
- date.strip.gsub(/^\s*\[*ca\.\s*|\[|\]|\?/, "")
153
+ date.strip.gsub(/^\[*ca\.\s*|c|\[|\]|\?/, "")
154
154
  end
155
155
  def other_pub_info(element)
156
156
  element.children.select do |child|
157
157
  pub_info_parts.include?(child.name.to_sym)
158
158
  end
159
159
  end
160
-
160
+ def place_terms(element)
161
+ return [] unless element.respond_to?(:place) and
162
+ element.place.respond_to?(:placeTerm)
163
+ element.place.placeTerm.select do |term|
164
+ !term.attributes["type"] or
165
+ !term.attributes["type"].respond_to?(:value) or
166
+ term.attributes["type"].value != "code"
167
+ end.compact
168
+ end
161
169
  def imprint_display_form(element)
162
170
  display_form = element.children.find do |child|
163
171
  child.name == "displayForm"
@@ -1,3 +1,3 @@
1
1
  module ModsDisplay
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -20,6 +20,7 @@ describe ModsDisplay::Imprint do
20
20
  @open_date_range = Stanford::Mods::Record.new.from_str(open_date_range, false).origin_info
21
21
  @dup_qualified_date = Stanford::Mods::Record.new.from_str(dup_qualified_date, false).origin_info
22
22
  @dup_unencoded_date = Stanford::Mods::Record.new.from_str(dup_unencoded_date, false).origin_info
23
+ @dup_copyright_date = Stanford::Mods::Record.new.from_str(dup_copyright_date, false).origin_info
23
24
  @dup_date = Stanford::Mods::Record.new.from_str(dup_date, false).origin_info
24
25
  @approximate_date = Stanford::Mods::Record.new.from_str(approximate_date, false).origin_info
25
26
  @questionable_date = Stanford::Mods::Record.new.from_str(questionable_date, false).origin_info
@@ -27,6 +28,7 @@ describe ModsDisplay::Imprint do
27
28
  @three_imprint_dates = Stanford::Mods::Record.new.from_str(three_imprint_dates, false).origin_info
28
29
  @qualified_imprint_date = Stanford::Mods::Record.new.from_str(qualified_imprint_date, false).origin_info
29
30
  @imprint_date_range = Stanford::Mods::Record.new.from_str(imprint_date_range, false).origin_info
31
+ @encoded_place = Stanford::Mods::Record.new.from_str(encoded_place, false).origin_info
30
32
  end
31
33
 
32
34
  describe "labels" do
@@ -107,6 +109,11 @@ describe ModsDisplay::Imprint do
107
109
  fields.length.should == 1
108
110
  fields.first.values.should == ["[ca. 1820]"]
109
111
  end
112
+ it "should handle copyright dates correctly" do
113
+ fields = mods_display_imprint(@dup_copyright_date).fields
114
+ fields.length.should == 1
115
+ fields.first.values.should == ["c1820"]
116
+ end
110
117
  it "should only return one when no attributes are present" do
111
118
  fields = mods_display_imprint(@dup_date).fields
112
119
  fields.length.should == 1
@@ -131,6 +138,13 @@ describe ModsDisplay::Imprint do
131
138
  end
132
139
  end
133
140
  end
141
+ describe "place processing" do
142
+ it "should exclude encoded places" do
143
+ fields = mods_display_imprint(@encoded_place).fields
144
+ fields.length.should == 1
145
+ fields.first.values.should == ["[Amsterdam]", "[United States]"]
146
+ end
147
+ end
134
148
  describe "to_html" do
135
149
  it "should return the display form if one is available" do
136
150
  html = mods_display_imprint(@display_form).to_html
@@ -4,7 +4,7 @@ module ImprintFixtures
4
4
  <mods>
5
5
  <originInfo>
6
6
  <edition>An edition</edition>
7
- <place>A Place</place>
7
+ <place><placeTerm>A Place</placeTerm></place>
8
8
  <publisher>A Publisher</publisher>
9
9
  <dateIssued>An Issue Date</dateIssued>
10
10
  <dateOther>Another Date</dateOther>
@@ -16,7 +16,7 @@ module ImprintFixtures
16
16
  <<-MODS
17
17
  <mods>
18
18
  <originInfo>
19
- <place>A Place</place>
19
+ <place><placeTerm>A Place</placeTerm></place>
20
20
  <publisher>A Publisher</publisher>
21
21
  <dateCreated>A Create Date</dateCreated>
22
22
  <dateIssued>An Issue Date</dateIssued>
@@ -42,7 +42,7 @@ module ImprintFixtures
42
42
  <<-MODS
43
43
  <mods>
44
44
  <originInfo>
45
- <place>A Place</place>
45
+ <place><placeTerm>A Place</placeTerm></place>
46
46
  <publisher>A Publisher</publisher>
47
47
  <issuance>The Issuance</issuance>
48
48
  <dateCaptured>The Capture Date</dateCaptured>
@@ -54,12 +54,12 @@ module ImprintFixtures
54
54
  <<-MODS
55
55
  <mods>
56
56
  <originInfo>
57
- <place>A Place</place>
57
+ <place><placeTerm>A Place</placeTerm></place>
58
58
  <publisher>A Publisher</publisher>
59
59
  <displayForm>The Display Form</displayForm>
60
60
  </originInfo>
61
61
  <originInfo displayLabel="TheLabel">
62
- <place>A Place</place>
62
+ <place><placeTerm>A Place</placeTerm></place>
63
63
  <publisher>A Publisher</publisher>
64
64
  <displayForm>The Display Form</displayForm>
65
65
  </originInfo>
@@ -71,11 +71,11 @@ module ImprintFixtures
71
71
  <mods>
72
72
  <originInfo displayLabel="TheLabel">
73
73
  <edition>The edition</edition>
74
- <place>A Place</place>
74
+ <place><placeTerm>A Place</placeTerm></place>
75
75
  <publisher>A Publisher</publisher>
76
76
  </originInfo>
77
77
  <originInfo displayLabel="IssuanceLabel">
78
- <place>A Place</place>
78
+ <place><placeTerm>A Place</placeTerm></place>
79
79
  <publisher>A Publisher</publisher>
80
80
  <issuance>The Edition</issuance>
81
81
  </originInfo>
@@ -121,6 +121,16 @@ module ImprintFixtures
121
121
  </mods>
122
122
  MODS
123
123
  end
124
+ def dup_copyright_date
125
+ <<-MODS
126
+ <mods>
127
+ <originInfo>
128
+ <dateCreated encoding="marc">1820</dateCreated>
129
+ <dateCreated>c1820</dateCreated>
130
+ </originInfo>
131
+ </mods>
132
+ MODS
133
+ end
124
134
  def dup_date
125
135
  <<-MODS
126
136
  <mods>
@@ -189,4 +199,24 @@ module ImprintFixtures
189
199
  </mods>
190
200
  MODS
191
201
  end
202
+ def encoded_place
203
+ <<-MODS
204
+ <mods>
205
+ <originInfo>
206
+ <place>
207
+ <placeTerm type="code">ne</placeTerm>
208
+ </place>
209
+ <place>
210
+ <placeTerm type="text">[Amsterdam]</placeTerm>
211
+ </place>
212
+ </originInfo>
213
+ <originInfo>
214
+ <place>
215
+ <placeTerm type="code">us</placeTerm>
216
+ <placeTerm type="text">[United States]</placeTerm>
217
+ </place>
218
+ </originInfo>
219
+ </mods>
220
+ MODS
221
+ end
192
222
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mods_display
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-15 00:00:00.000000000 Z
12
+ date: 2013-08-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: stanford-mods
@@ -151,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
151
  version: '0'
152
152
  segments:
153
153
  - 0
154
- hash: -181009527688708347
154
+ hash: 1044721319103259075
155
155
  required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  none: false
157
157
  requirements:
@@ -160,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  version: '0'
161
161
  segments:
162
162
  - 0
163
- hash: -181009527688708347
163
+ hash: 1044721319103259075
164
164
  requirements: []
165
165
  rubyforge_project:
166
166
  rubygems_version: 1.8.25