stead 0.0.12 → 0.0.13
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 +7 -0
- data/Gemfile +3 -5
- data/Gemfile.lock +15 -21
- data/README.rdoc +2 -7
- data/Rakefile +0 -39
- data/bin/csv2ead +1 -0
- data/lib/stead/ead.rb +22 -16
- data/lib/stead/stead.rb +1 -61
- data/lib/stead.rb +0 -5
- data/stead.gemspec +1 -7
- data/test/container_lists/mc00000_container_list.csv +6 -6
- data/test/helper.rb +1 -2
- data/test/test_duplicate_series_title.rb +7 -8
- data/test/test_ead_bad_container_type.rb +10 -8
- data/test/test_ead_no_series.rb +12 -5
- data/test/test_ead_series.rb +12 -7
- data/test/test_stead.rb +7 -7
- data/test/test_wheless.rb +1 -1
- metadata +113 -151
- data/.document +0 -5
- data/.rvmrc +0 -2
- data/VERSION +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 86b3b2bf9965def278a1ce2e6655ede5159d81ae
|
4
|
+
data.tar.gz: 585faa382189c8e5b7a589fa0f591a9a42d48db5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2ea7b7adc65083c573ffc173d35c9592928408a7bacbc1af9b39a0445ff146d461dc982c8a945c7dfe4b60fc374a1df1ce88d67776a682bd70def1165befcedd
|
7
|
+
data.tar.gz: eba7efd81f11b0f49da7a9a063bae389deababef424a8f662d88005d8edfb3acb68b39f14d8457b4b7d647edd362b68084698584bafbebc4837b7f4038abfbc0
|
data/Gemfile
CHANGED
@@ -4,20 +4,18 @@ source "http://rubygems.org"
|
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
|
6
6
|
gem 'nokogiri'
|
7
|
-
gem 'fastercsv'
|
8
7
|
gem 'trollop'
|
9
8
|
|
9
|
+
gem 'rake'
|
10
10
|
|
11
11
|
# Add dependencies to develop your gem here.
|
12
12
|
# Include everything needed to run rake, tests, features, etc.
|
13
13
|
group :development do
|
14
14
|
gem "shoulda", ">= 0"
|
15
|
-
gem "bundler", "~> 1.0.0"
|
16
|
-
gem "jeweler", "~> 1.5.2"
|
17
|
-
gem "rcov", ">= 0"
|
18
15
|
end
|
19
16
|
|
20
17
|
group :development, :test do
|
21
|
-
gem '
|
18
|
+
gem 'pry'
|
22
19
|
gem 'equivalent-xml'
|
20
|
+
gem 'rb-readline'
|
23
21
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,37 +1,31 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
4
|
+
coderay (1.0.8)
|
5
5
|
equivalent-xml (0.1.6)
|
6
6
|
nokogiri
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
rake (0.
|
16
|
-
|
17
|
-
ruby-debug (0.10.4)
|
18
|
-
columnize (>= 0.1)
|
19
|
-
ruby-debug-base (~> 0.10.4.0)
|
20
|
-
ruby-debug-base (0.10.4)
|
21
|
-
linecache (>= 0.3)
|
7
|
+
method_source (0.8)
|
8
|
+
mini_portile (0.5.1)
|
9
|
+
nokogiri (1.6.0)
|
10
|
+
mini_portile (~> 0.5.0)
|
11
|
+
pry (0.9.10)
|
12
|
+
coderay (~> 1.0.5)
|
13
|
+
method_source (~> 0.8)
|
14
|
+
slop (~> 3.3.1)
|
15
|
+
rake (10.0.2)
|
16
|
+
rb-readline (0.4.2)
|
22
17
|
shoulda (2.11.3)
|
18
|
+
slop (3.3.3)
|
23
19
|
trollop (1.16.2)
|
24
20
|
|
25
21
|
PLATFORMS
|
26
22
|
ruby
|
27
23
|
|
28
24
|
DEPENDENCIES
|
29
|
-
bundler (~> 1.0.0)
|
30
25
|
equivalent-xml
|
31
|
-
fastercsv
|
32
|
-
jeweler (~> 1.5.2)
|
33
26
|
nokogiri
|
34
|
-
|
35
|
-
|
27
|
+
pry
|
28
|
+
rake
|
29
|
+
rb-readline
|
36
30
|
shoulda
|
37
31
|
trollop
|
data/README.rdoc
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
Spreadsheets To Encoded Archival Description. Turns CSV files of container lists
|
4
4
|
into a stub EAD XML record.
|
5
5
|
|
6
|
+
{<img src="https://travis-ci.org/jronallo/stead.png" />}[https://travis-ci.org/jronallo/stead]
|
7
|
+
|
6
8
|
== Story
|
7
9
|
|
8
10
|
Sometimes donors have spreadsheets which list the contents of their collections.
|
@@ -68,13 +70,6 @@ Please let me know what else you need in such a tool and I'll try to work it in.
|
|
68
70
|
or with no series at all.
|
69
71
|
- Column values like series must be duplicated for each row.
|
70
72
|
|
71
|
-
== Ruby versions
|
72
|
-
|
73
|
-
Tested with the following Rubies:
|
74
|
-
- 1.8.7-p249
|
75
|
-
- 1.8.7-p302
|
76
|
-
- 1.9.2-p0
|
77
|
-
|
78
73
|
== TODO
|
79
74
|
|
80
75
|
- More tests (though there are already lots of tests).
|
data/Rakefile
CHANGED
@@ -1,29 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
3
|
require 'rake'
|
11
4
|
|
12
|
-
require 'jeweler'
|
13
|
-
Jeweler::Tasks.new do |gem|
|
14
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
-
gem.name = "stead"
|
16
|
-
gem.summary = %Q{Spreadsheets To Encoded Archival Description}
|
17
|
-
gem.description = %Q{Converts CSV files of a specific schema into EAD XML.}
|
18
|
-
gem.email = "jronallo@gmail.com"
|
19
|
-
gem.homepage = "http://github.com/jronallo/stead"
|
20
|
-
gem.authors = ["Jason Ronallo"]
|
21
|
-
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
22
|
-
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
23
|
-
# gem.add_runtime_dependency 'jabber4r', '> 0.1'
|
24
|
-
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
27
5
|
|
28
6
|
require 'rake/testtask'
|
29
7
|
Rake::TestTask.new(:test) do |test|
|
@@ -32,21 +10,4 @@ Rake::TestTask.new(:test) do |test|
|
|
32
10
|
test.verbose = true
|
33
11
|
end
|
34
12
|
|
35
|
-
require 'rcov/rcovtask'
|
36
|
-
Rcov::RcovTask.new do |test|
|
37
|
-
test.libs << 'test'
|
38
|
-
test.pattern = 'test/**/test_*.rb'
|
39
|
-
test.verbose = true
|
40
|
-
end
|
41
|
-
|
42
|
-
task :default => :test
|
43
13
|
|
44
|
-
require 'rake/rdoctask'
|
45
|
-
Rake::RDocTask.new do |rdoc|
|
46
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
47
|
-
|
48
|
-
rdoc.rdoc_dir = 'rdoc'
|
49
|
-
rdoc.title = "something #{version}"
|
50
|
-
rdoc.rdoc_files.include('README*')
|
51
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
52
|
-
end
|
data/bin/csv2ead
CHANGED
data/lib/stead/ead.rb
CHANGED
@@ -54,7 +54,7 @@ module Stead
|
|
54
54
|
if series?
|
55
55
|
add_series
|
56
56
|
add_subseries if subseries?
|
57
|
-
end
|
57
|
+
end
|
58
58
|
@component_parts.each do |cp|
|
59
59
|
c = node(file_component_part_name(cp))
|
60
60
|
c['level'] = 'file'
|
@@ -102,7 +102,7 @@ module Stead
|
|
102
102
|
series_did.add_child(unitdate)
|
103
103
|
end
|
104
104
|
end
|
105
|
-
|
105
|
+
|
106
106
|
def add_subseries
|
107
107
|
@component_parts.each do |cp|
|
108
108
|
if !cp['subseries number'].nil?
|
@@ -117,6 +117,14 @@ module Stead
|
|
117
117
|
# FIXME: DRY this up with add_series
|
118
118
|
subseries_did = node('did')
|
119
119
|
subseries_node.add_child(subseries_did)
|
120
|
+
|
121
|
+
if cp['subseries scopecontent']
|
122
|
+
subseries_scopecontent = node('scopecontent')
|
123
|
+
subseries_scopecontent.content = cp['subseries scopecontent']
|
124
|
+
subseries_node.add_child(subseries_scopecontent)
|
125
|
+
end
|
126
|
+
|
127
|
+
|
120
128
|
unitid = node('unitid')
|
121
129
|
unitid.content = cp['subseries number']
|
122
130
|
unittitle = node('unittitle')
|
@@ -130,7 +138,7 @@ module Stead
|
|
130
138
|
end
|
131
139
|
end
|
132
140
|
end
|
133
|
-
|
141
|
+
|
134
142
|
def add_arrangement
|
135
143
|
arrangement = node('arrangement')
|
136
144
|
head = node('head')
|
@@ -174,8 +182,8 @@ module Stead
|
|
174
182
|
return node.parent.parent if node.content == series_number
|
175
183
|
end
|
176
184
|
end
|
177
|
-
|
178
|
-
def find_current_subseries(cp)
|
185
|
+
|
186
|
+
def find_current_subseries(cp)
|
179
187
|
@ead.xpath("//xmlns:c02/xmlns:did/xmlns:unitid[text()='#{cp['subseries number']}']").each do |node|
|
180
188
|
return node.parent.parent if node.content == cp['subseries number']
|
181
189
|
end
|
@@ -286,6 +294,7 @@ module Stead
|
|
286
294
|
'file title' => 'unittitle',
|
287
295
|
'file dates' => 'unitdate',
|
288
296
|
'extent' => ['physdesc', 'extent'],
|
297
|
+
'physdesc' => 'physdesc',
|
289
298
|
'note1' => ['note', 'p'],
|
290
299
|
'note2' => ['note', 'p']
|
291
300
|
}
|
@@ -293,12 +302,7 @@ module Stead
|
|
293
302
|
|
294
303
|
def csv_to_a
|
295
304
|
a = []
|
296
|
-
|
297
|
-
csv_class = FasterCSV # old CSV was loaded
|
298
|
-
else
|
299
|
-
csv_class = CSV # use CSV from 1.9
|
300
|
-
end
|
301
|
-
csv_class.parse(csv, :headers => :first_row) do |row|
|
305
|
+
CSV.parse(csv, :headers => :first_row) do |row|
|
302
306
|
a << row.to_hash
|
303
307
|
end
|
304
308
|
if a.first.keys.include?(nil)
|
@@ -318,9 +322,11 @@ module Stead
|
|
318
322
|
end
|
319
323
|
|
320
324
|
def valid?
|
321
|
-
unless Stead.xsd.valid?(ead)
|
322
|
-
|
323
|
-
end
|
325
|
+
# unless Stead.xsd.valid?(ead)
|
326
|
+
# raise Stead::InvalidEad
|
327
|
+
# end
|
328
|
+
# We are removing this validity check since it needs the xsd which is offline when the federal government closes
|
329
|
+
true
|
324
330
|
end
|
325
331
|
|
326
332
|
def series?
|
@@ -334,13 +340,13 @@ module Stead
|
|
334
340
|
return false if row['series number'].nil?
|
335
341
|
end
|
336
342
|
end
|
337
|
-
|
343
|
+
|
338
344
|
def subseries?
|
339
345
|
if subseries_found?
|
340
346
|
subseries = true
|
341
347
|
end
|
342
348
|
end
|
343
|
-
|
349
|
+
|
344
350
|
def subseries_found?
|
345
351
|
@component_parts.each do |row|
|
346
352
|
return true if !row['subseries number'].nil?
|
data/lib/stead/stead.rb
CHANGED
@@ -4,10 +4,6 @@ module Stead
|
|
4
4
|
File.expand_path(File.join(File.dirname(__FILE__), 'templates','ead.xsd'))
|
5
5
|
end
|
6
6
|
|
7
|
-
def self.xsd
|
8
|
-
Nokogiri::XML::Schema(File.read(Stead.ead_schema))
|
9
|
-
end
|
10
|
-
|
11
7
|
def self.ead_template
|
12
8
|
File.expand_path(File.join(File.dirname(__FILE__), 'templates','ead.xml'))
|
13
9
|
end
|
@@ -17,64 +13,8 @@ module Stead
|
|
17
13
|
end
|
18
14
|
|
19
15
|
def self.pretty_write(xml)
|
20
|
-
|
21
|
-
self.write(xml)
|
22
|
-
elsif xml.is_a? Nokogiri::XML::Document or xml.is_a? Nokogiri::XML::Node
|
23
|
-
self.write(xml.to_xml)
|
24
|
-
end
|
16
|
+
Nokogiri::XML(xml.to_xml, &:noblanks).to_xml(indent: 4)
|
25
17
|
end
|
26
18
|
|
27
|
-
def self.write(buffer)
|
28
|
-
|
29
|
-
xsl =<<XSL
|
30
|
-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
31
|
-
<xsl:output method="xml" encoding="UTF-8"/>
|
32
|
-
<xsl:param name="indent-increment" select="' '"/>
|
33
|
-
<xsl:template name="newline">
|
34
|
-
<xsl:text disable-output-escaping="yes">
|
35
|
-
</xsl:text>
|
36
|
-
</xsl:template>
|
37
|
-
<xsl:template match="comment() | processing-instruction()">
|
38
|
-
<xsl:param name="indent" select="''"/>
|
39
|
-
<xsl:call-template name="newline"/>
|
40
|
-
<xsl:value-of select="$indent"/>
|
41
|
-
<xsl:copy />
|
42
|
-
</xsl:template>
|
43
|
-
<xsl:template match="text()">
|
44
|
-
<xsl:param name="indent" select="''"/>
|
45
|
-
<xsl:call-template name="newline"/>
|
46
|
-
<xsl:value-of select="$indent"/>
|
47
|
-
<xsl:value-of select="normalize-space(.)"/>
|
48
|
-
</xsl:template>
|
49
|
-
<xsl:template match="text()[normalize-space(.)='']"/>
|
50
|
-
<xsl:template match="*">
|
51
|
-
<xsl:param name="indent" select="''"/>
|
52
|
-
<xsl:call-template name="newline"/>
|
53
|
-
<xsl:value-of select="$indent"/>
|
54
|
-
<xsl:choose>
|
55
|
-
<xsl:when test="count(child::*) > 0">
|
56
|
-
<xsl:copy>
|
57
|
-
<xsl:copy-of select="@*"/>
|
58
|
-
<xsl:apply-templates select="*|text()">
|
59
|
-
<xsl:with-param name="indent" select="concat ($indent, $indent-increment)"/>
|
60
|
-
</xsl:apply-templates>
|
61
|
-
<xsl:call-template name="newline"/>
|
62
|
-
<xsl:value-of select="$indent"/>
|
63
|
-
</xsl:copy>
|
64
|
-
</xsl:when>
|
65
|
-
<xsl:otherwise>
|
66
|
-
<xsl:copy-of select="."/>
|
67
|
-
</xsl:otherwise>
|
68
|
-
</xsl:choose>
|
69
|
-
</xsl:template>
|
70
|
-
</xsl:stylesheet>
|
71
|
-
XSL
|
72
|
-
|
73
|
-
doc = Nokogiri::XML(buffer)
|
74
|
-
xslt = Nokogiri::XSLT(xsl)
|
75
|
-
out = xslt.transform(doc)
|
76
|
-
out.to_xml
|
77
|
-
end
|
78
|
-
|
79
19
|
end
|
80
20
|
|
data/lib/stead.rb
CHANGED
@@ -2,8 +2,6 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
2
2
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
3
|
|
4
4
|
module Stead
|
5
|
-
VERSION = '0.0.1'
|
6
|
-
|
7
5
|
CONTAINER_TYPES = [
|
8
6
|
"album",
|
9
7
|
"artifactbox",
|
@@ -48,9 +46,6 @@ end
|
|
48
46
|
require 'rubygems'
|
49
47
|
require 'nokogiri'
|
50
48
|
require 'csv'
|
51
|
-
if CSV.const_defined? :Reader
|
52
|
-
require 'fastercsv'
|
53
|
-
end
|
54
49
|
|
55
50
|
require 'pp'
|
56
51
|
|
data/stead.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "stead"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.13"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jason Ronallo"]
|
@@ -18,14 +18,11 @@ Gem::Specification.new do |s|
|
|
18
18
|
"README.rdoc"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
|
-
".document",
|
22
|
-
".rvmrc",
|
23
21
|
"Gemfile",
|
24
22
|
"Gemfile.lock",
|
25
23
|
"LICENSE",
|
26
24
|
"README.rdoc",
|
27
25
|
"Rakefile",
|
28
|
-
"VERSION",
|
29
26
|
"bin/csv2ead",
|
30
27
|
"examples/ncsu.rb",
|
31
28
|
"lib/stead.rb",
|
@@ -73,7 +70,6 @@ Gem::Specification.new do |s|
|
|
73
70
|
|
74
71
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
75
72
|
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
76
|
-
s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
|
77
73
|
s.add_runtime_dependency(%q<trollop>, [">= 0"])
|
78
74
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
79
75
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -83,7 +79,6 @@ Gem::Specification.new do |s|
|
|
83
79
|
s.add_development_dependency(%q<equivalent-xml>, [">= 0"])
|
84
80
|
else
|
85
81
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
86
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
87
82
|
s.add_dependency(%q<trollop>, [">= 0"])
|
88
83
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
89
84
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -94,7 +89,6 @@ Gem::Specification.new do |s|
|
|
94
89
|
end
|
95
90
|
else
|
96
91
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
97
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
98
92
|
s.add_dependency(%q<trollop>, [">= 0"])
|
99
93
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
100
94
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
2
|
-
1,
|
3
|
-
1,
|
4
|
-
2,
|
5
|
-
2,
|
6
|
-
3,
|
1
|
+
series number,series title,series dates,subseries number,subseries title,subseries dates,subseries scopecontent,file id,file title,file dates,extent,physdesc,internal only,restrictions,conditions governing access,scopecontent,note1,note2,instance type,container 1 type,container 1 number,container 2 type,container 2 number,container 3 type,container 3 number,geogname,geogname_source,corpname,corpname_source,famname,famname_source,name,name_source,persname,persname_source,subject,subject_source
|
2
|
+
1,Project Files,1951-1978,,,,,7732,"Lucey, John and Mari",1977,extent,physdesc,x,,,,note1,note2,Mixed materials,box,45,folder,404,item,3,Raleigh (N.C.),lcnaf,corpname,corpname_source,famname,famname_source,name,name_source,persname,persname_source,subject,subject_source
|
3
|
+
1,Project Files,1951-1978,,,,,7801,"Foster, David",1979,,,,,,,,,Mixed materials,box,46,folder,405,,,,,,,,,,,,,,
|
4
|
+
2,Professional and Personal,1955-1978,1,MC 00000 Subseries 01.01,1951,This is the subseries 1 scopecontent.,,Daily Financial Ledger,1969-1970,,,,,,,,,Mixed materials,box,58,othertype,550,,,,,,,,,,,,,,
|
5
|
+
2,Professional and Personal,1955-1978,2,MC 00000 Subseries 01.02,1952,,,"Scott, Correspondence Prior to 1959",1955-1959,,,,,Restricted,,,,Mixed materials,box,58,othertype,551,,,,,,,,,,,,,,
|
6
|
+
3,Microfilm,1969-1979,,,,,4250,Kenneth McCoy Scott,,,,,,,Sessions 32-38,,,Mixed materials,box,63,othertype,1,,,,,,,,,,,,,,
|
data/test/helper.rb
CHANGED
@@ -1,30 +1,29 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
class TestDuplicateSeriesTitle < Test::Unit::TestCase
|
4
|
-
|
4
|
+
|
5
5
|
def setup
|
6
|
-
|
7
|
-
|
6
|
+
|
8
7
|
#@example = Nokogiri::XML(File.read(File.join(File.dirname(__FILE__),
|
9
8
|
# 'container_lists', 'snyderman2.xml' )))
|
10
9
|
@ead_generator = Stead::EadGenerator.from_csv(File.read(File.join(File.dirname(__FILE__),
|
11
10
|
'container_lists', 'snyderman3.csv' )))
|
12
11
|
@generated_ead = @ead_generator.to_ead
|
13
12
|
end
|
14
|
-
|
13
|
+
|
15
14
|
def test_c01_counts
|
16
15
|
assert_equal 2, @generated_ead.xpath('//xmlns:c01').length
|
17
16
|
end
|
18
|
-
|
17
|
+
|
19
18
|
def test_c02_counts
|
20
19
|
assert_equal 2, @generated_ead.xpath('//xmlns:c02').length
|
21
20
|
end
|
22
|
-
|
21
|
+
|
23
22
|
def test_each_c01_has_one_c02
|
24
23
|
@generated_ead.xpath('//xmlns:c01').each do |c01|
|
25
24
|
assert_equal 1, c01.xpath('xmlns:c02').length
|
26
25
|
end
|
27
26
|
end
|
28
|
-
|
29
|
-
|
27
|
+
|
28
|
+
|
30
29
|
end
|
@@ -23,14 +23,16 @@ class TestSteadErrors < Test::Unit::TestCase
|
|
23
23
|
|
24
24
|
# create an invalid ead document so that we can test that validation of the ead
|
25
25
|
# is working
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
26
|
+
|
27
|
+
# FIXME: had to disable validation since it relied on an exteral xsd
|
28
|
+
# def test_invalid_ead_error_message
|
29
|
+
# assert_raise(Stead::InvalidEad) {
|
30
|
+
# @ead_generator_good.to_ead
|
31
|
+
# a = Nokogiri::XML::Node.new('asdfasd', @ead_generator_good.ead)
|
32
|
+
# @ead_generator_good.ead.xpath('//xmlns:archdesc').first.add_child(a)
|
33
|
+
# @ead_generator_good.valid?
|
34
|
+
# }
|
35
|
+
# end
|
34
36
|
|
35
37
|
def test_csv_with_nil_header
|
36
38
|
assert_raise(Stead::InvalidCsv) {
|
data/test/test_ead_no_series.rb
CHANGED
@@ -4,8 +4,8 @@ class TestSteadEadNoSeries < Test::Unit::TestCase
|
|
4
4
|
include SteadTestHelpers
|
5
5
|
|
6
6
|
def setup
|
7
|
-
@xsd = Nokogiri::XML::Schema(File.read(Stead.ead_schema))
|
8
|
-
|
7
|
+
# @xsd = Nokogiri::XML::Schema(File.read(Stead.ead_schema))
|
8
|
+
|
9
9
|
@example = Nokogiri::XML(File.read(File.join(File.dirname(__FILE__),
|
10
10
|
'container_lists', 'mc00000-ead.xml' )))
|
11
11
|
@ead_generator = Stead::EadGenerator.from_csv(File.read(File.join(File.dirname(__FILE__),
|
@@ -43,9 +43,9 @@ class TestSteadEadNoSeries < Test::Unit::TestCase
|
|
43
43
|
assert_equal 'Sessions 32-38', scopecontent
|
44
44
|
end
|
45
45
|
|
46
|
-
def test_validity
|
47
|
-
|
48
|
-
end
|
46
|
+
# def test_validity
|
47
|
+
# assert @xsd.valid?(@generated_ead)
|
48
|
+
# end
|
49
49
|
|
50
50
|
def test_internal_only
|
51
51
|
assert_equal 'internal',
|
@@ -85,5 +85,12 @@ class TestSteadEadNoSeries < Test::Unit::TestCase
|
|
85
85
|
assert_equal '551', containers[1].content
|
86
86
|
end
|
87
87
|
|
88
|
+
def test_physdesc
|
89
|
+
first_did = @generated_ead.xpath(@did_xpath).first
|
90
|
+
physdescs = first_did.xpath('xmlns:physdesc')
|
91
|
+
assert_equal 'extent', physdescs.first.content
|
92
|
+
assert_equal 'physdesc', physdescs.last.content
|
93
|
+
end
|
94
|
+
|
88
95
|
end
|
89
96
|
|
data/test/test_ead_series.rb
CHANGED
@@ -4,14 +4,15 @@ class TestSteadEadSeries < Test::Unit::TestCase
|
|
4
4
|
include SteadTestHelpers
|
5
5
|
|
6
6
|
def setup
|
7
|
-
|
8
|
-
|
7
|
+
# removing any test of validity since the federal government closed the Library of Congress
|
8
|
+
# @xsd = Nokogiri::XML::Schema(File.read(Stead.ead_schema))
|
9
|
+
|
9
10
|
@example = Nokogiri::XML(File.read(File.join(File.dirname(__FILE__),
|
10
11
|
'container_lists', 'mc00000-ead-series.xml' )))
|
11
12
|
@ead_generator = Stead::EadGenerator.from_csv(File.read(File.join(File.dirname(__FILE__),
|
12
13
|
'container_lists', 'mc00000_container_list.csv' )))
|
13
14
|
@generated_ead = @ead_generator.to_ead
|
14
|
-
|
15
|
+
|
15
16
|
@did_xpath = '//xmlns:c02/xmlns:did'
|
16
17
|
end
|
17
18
|
|
@@ -22,14 +23,14 @@ class TestSteadEadSeries < Test::Unit::TestCase
|
|
22
23
|
def test_ead_c02_counts
|
23
24
|
assert_equal 5, @generated_ead.xpath('//xmlns:c02').length
|
24
25
|
end
|
25
|
-
|
26
|
+
|
26
27
|
def test_ead_c03_counts
|
27
28
|
assert_equal 2, @generated_ead.xpath('//xmlns:c03').length
|
28
29
|
end
|
29
30
|
|
30
|
-
def test_validity
|
31
|
-
|
32
|
-
end
|
31
|
+
# def test_validity
|
32
|
+
# assert @xsd.valid?(@generated_ead)
|
33
|
+
# end
|
33
34
|
|
34
35
|
def test_created_ead_matches_example_content
|
35
36
|
(0..4).each do |number|
|
@@ -59,6 +60,10 @@ class TestSteadEadSeries < Test::Unit::TestCase
|
|
59
60
|
assert_equal 'corpname_source', corpnames.first['source']
|
60
61
|
end
|
61
62
|
|
63
|
+
def test_subseries_has_scopecontent
|
64
|
+
c02s = @generated_ead.xpath('//xmlns:c02[@level="subseries"]')
|
65
|
+
assert 'This is the subseries 1 scopecontent.', c02s.first.xpath('xmlns:scopecontent').first.content
|
66
|
+
end
|
62
67
|
|
63
68
|
end
|
64
69
|
|
data/test/test_stead.rb
CHANGED
@@ -3,7 +3,7 @@ require 'helper'
|
|
3
3
|
class TestStead < Test::Unit::TestCase
|
4
4
|
|
5
5
|
def setup
|
6
|
-
@xsd = Stead.xsd
|
6
|
+
# @xsd = Stead.xsd
|
7
7
|
@template = Nokogiri::XML(File.read(Stead.ead_template))
|
8
8
|
@example = Nokogiri::XML(File.read(File.join(File.dirname(__FILE__),
|
9
9
|
'container_lists', 'mc00000-ead.xml' )))
|
@@ -15,13 +15,13 @@ class TestStead < Test::Unit::TestCase
|
|
15
15
|
assert true
|
16
16
|
end
|
17
17
|
|
18
|
-
def test_validity_of_ead_template
|
19
|
-
|
20
|
-
end
|
18
|
+
# def test_validity_of_ead_template
|
19
|
+
# assert @xsd.valid?(@template)
|
20
|
+
# end
|
21
21
|
|
22
|
-
def test_validity_of_ead_example_document
|
23
|
-
|
24
|
-
end
|
22
|
+
# def test_validity_of_ead_example_document
|
23
|
+
# assert @xsd.valid?(@example)
|
24
|
+
# end
|
25
25
|
|
26
26
|
context "optional elements to add" do
|
27
27
|
setup do
|
data/test/test_wheless.rb
CHANGED
@@ -17,7 +17,7 @@ class TestWheless < Test::Unit::TestCase
|
|
17
17
|
|
18
18
|
def test_capitalized_container_type_is_converted
|
19
19
|
last_c02 = @generated_ead.xpath('//xmlns:c02').last
|
20
|
-
assert 'box', last_c02.xpath('xmlns:did/xmlns:container').first.attribute('type')
|
20
|
+
assert 'box', last_c02.xpath('xmlns:did/xmlns:container').first.attribute('type').text
|
21
21
|
end
|
22
22
|
|
23
23
|
end
|
metadata
CHANGED
@@ -1,170 +1,141 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: stead
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 12
|
10
|
-
version: 0.0.12
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.13
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Jason Ronallo
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 3
|
27
|
-
segments:
|
28
|
-
- 0
|
29
|
-
version: "0"
|
11
|
+
date: 2011-12-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
30
14
|
name: nokogiri
|
31
|
-
|
32
|
-
|
33
|
-
requirement: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
36
|
-
none: false
|
37
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
38
17
|
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
|
41
|
-
segments:
|
42
|
-
- 0
|
43
|
-
version: "0"
|
44
|
-
name: fastercsv
|
45
|
-
prerelease: false
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
46
20
|
type: :runtime
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
none: false
|
51
|
-
requirements:
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
52
24
|
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
55
|
-
|
56
|
-
- 0
|
57
|
-
version: "0"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
58
28
|
name: trollop
|
59
|
-
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
60
34
|
type: :runtime
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
none: false
|
65
|
-
requirements:
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
66
38
|
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
|
69
|
-
|
70
|
-
- 0
|
71
|
-
version: "0"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
72
42
|
name: shoulda
|
73
|
-
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
74
48
|
type: :development
|
75
|
-
requirement: *id004
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
|
-
requirements:
|
80
|
-
- - ~>
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
hash: 23
|
83
|
-
segments:
|
84
|
-
- 1
|
85
|
-
- 0
|
86
|
-
- 0
|
87
|
-
version: 1.0.0
|
88
|
-
name: bundler
|
89
49
|
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.0
|
90
62
|
type: :development
|
91
|
-
requirement: *id005
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
|
-
requirements:
|
96
|
-
- - ~>
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
hash: 7
|
99
|
-
segments:
|
100
|
-
- 1
|
101
|
-
- 5
|
102
|
-
- 2
|
103
|
-
version: 1.5.2
|
104
|
-
name: jeweler
|
105
63
|
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.0.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: jeweler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.5.2
|
106
76
|
type: :development
|
107
|
-
requirement: *id006
|
108
|
-
- !ruby/object:Gem::Dependency
|
109
|
-
version_requirements: &id007 !ruby/object:Gem::Requirement
|
110
|
-
none: false
|
111
|
-
requirements:
|
112
|
-
- - ">="
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
hash: 3
|
115
|
-
segments:
|
116
|
-
- 0
|
117
|
-
version: "0"
|
118
|
-
name: rcov
|
119
77
|
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.5.2
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rcov
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
120
90
|
type: :development
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
none: false
|
125
|
-
requirements:
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
126
94
|
- - ">="
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
|
129
|
-
|
130
|
-
- 0
|
131
|
-
version: "0"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
132
98
|
name: ruby-debug
|
133
|
-
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
134
104
|
type: :development
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
none: false
|
139
|
-
requirements:
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
140
108
|
- - ">="
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
|
143
|
-
|
144
|
-
- 0
|
145
|
-
version: "0"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
146
112
|
name: equivalent-xml
|
147
|
-
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
148
118
|
type: :development
|
149
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
150
125
|
description: Converts CSV files of a specific schema into EAD XML.
|
151
126
|
email: jronallo@gmail.com
|
152
|
-
executables:
|
127
|
+
executables:
|
153
128
|
- csv2ead
|
154
129
|
extensions: []
|
155
|
-
|
156
|
-
extra_rdoc_files:
|
130
|
+
extra_rdoc_files:
|
157
131
|
- LICENSE
|
158
132
|
- README.rdoc
|
159
|
-
files:
|
160
|
-
- .document
|
161
|
-
- .rvmrc
|
133
|
+
files:
|
162
134
|
- Gemfile
|
163
135
|
- Gemfile.lock
|
164
136
|
- LICENSE
|
165
137
|
- README.rdoc
|
166
138
|
- Rakefile
|
167
|
-
- VERSION
|
168
139
|
- bin/csv2ead
|
169
140
|
- examples/ncsu.rb
|
170
141
|
- lib/stead.rb
|
@@ -193,38 +164,28 @@ files:
|
|
193
164
|
- watchr.rb
|
194
165
|
homepage: http://github.com/jronallo/stead
|
195
166
|
licenses: []
|
196
|
-
|
167
|
+
metadata: {}
|
197
168
|
post_install_message:
|
198
169
|
rdoc_options: []
|
199
|
-
|
200
|
-
require_paths:
|
170
|
+
require_paths:
|
201
171
|
- lib
|
202
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
203
|
-
|
204
|
-
requirements:
|
172
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
205
174
|
- - ">="
|
206
|
-
- !ruby/object:Gem::Version
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
version: "0"
|
211
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
-
none: false
|
213
|
-
requirements:
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
214
179
|
- - ">="
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
|
217
|
-
segments:
|
218
|
-
- 0
|
219
|
-
version: "0"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
220
182
|
requirements: []
|
221
|
-
|
222
183
|
rubyforge_project:
|
223
|
-
rubygems_version:
|
184
|
+
rubygems_version: 2.2.0
|
224
185
|
signing_key:
|
225
186
|
specification_version: 3
|
226
187
|
summary: Spreadsheets To Encoded Archival Description
|
227
|
-
test_files:
|
188
|
+
test_files:
|
228
189
|
- examples/ncsu.rb
|
229
190
|
- test/helper.rb
|
230
191
|
- test/test_duplicate_series_title.rb
|
@@ -233,3 +194,4 @@ test_files:
|
|
233
194
|
- test/test_ead_series.rb
|
234
195
|
- test/test_stead.rb
|
235
196
|
- test/test_wheless.rb
|
197
|
+
has_rdoc:
|
data/.document
DELETED
data/.rvmrc
DELETED
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.0.12
|