eadcodec 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/Rakefile +12 -5
  2. data/lib/eadcodec.rb +76 -1
  3. data/lib/elements/accessrestrict.rb +12 -0
  4. data/lib/elements/accruals.rb +11 -0
  5. data/lib/elements/acqinfo.rb +12 -0
  6. data/lib/elements/altformavail.rb +12 -0
  7. data/lib/elements/appraisal.rb +11 -0
  8. data/lib/elements/archdesc.rb +32 -0
  9. data/lib/elements/arrangement.rb +11 -0
  10. data/lib/elements/bibliography.rb +12 -0
  11. data/lib/elements/bioghist.rb +11 -0
  12. data/lib/elements/c.rb +65 -0
  13. data/lib/elements/chronitem.rb +12 -0
  14. data/lib/elements/chronlist.rb +12 -0
  15. data/lib/elements/container.rb +13 -0
  16. data/lib/elements/controlaccess.rb +10 -0
  17. data/lib/elements/creation.rb +4 -0
  18. data/lib/elements/custodhist.rb +11 -0
  19. data/lib/elements/date.rb +14 -0
  20. data/lib/elements/defitem.rb +10 -0
  21. data/lib/elements/description.rb +10 -0
  22. data/lib/elements/dimensions.rb +13 -0
  23. data/lib/elements/dsc.rb +21 -0
  24. data/lib/elements/ead.rb +39 -0
  25. data/lib/elements/eadheader.rb +28 -0
  26. data/lib/elements/event.rb +9 -0
  27. data/lib/elements/extent.rb +13 -0
  28. data/lib/elements/filedesc.rb +13 -0
  29. data/lib/elements/fileplan.rb +10 -0
  30. data/lib/elements/geogname.rb +16 -0
  31. data/lib/elements/head.rb +11 -0
  32. data/lib/elements/id.rb +12 -0
  33. data/lib/elements/item.rb +9 -0
  34. data/lib/elements/label.rb +9 -0
  35. data/lib/elements/langmaterial.rb +12 -0
  36. data/lib/elements/language.rb +20 -0
  37. data/lib/elements/list.rb +13 -0
  38. data/lib/elements/materialspec.rb +13 -0
  39. data/lib/elements/name.rb +15 -0
  40. data/lib/elements/note.rb +15 -0
  41. data/lib/elements/odd.rb +13 -0
  42. data/lib/elements/originalsloc.rb +12 -0
  43. data/lib/elements/origination.rb +12 -0
  44. data/lib/elements/otherfindaid.rb +11 -0
  45. data/lib/elements/p.rb +10 -0
  46. data/lib/elements/physdesc.rb +14 -0
  47. data/lib/elements/physfacet.rb +16 -0
  48. data/lib/elements/physloc.rb +14 -0
  49. data/lib/elements/phystech.rb +11 -0
  50. data/lib/elements/processinfo.rb +11 -0
  51. data/lib/elements/profiledesc.rb +10 -0
  52. data/lib/elements/relatedmaterial.rb +12 -0
  53. data/lib/elements/repository.rb +12 -0
  54. data/lib/elements/scopecontent.rb +12 -0
  55. data/lib/elements/subtitle.rb +4 -0
  56. data/lib/elements/titlestmt.rb +12 -0
  57. data/lib/elements/unitdate.rb +7 -0
  58. data/lib/elements/unitid.rb +16 -0
  59. data/lib/elements/unittitle.rb +13 -0
  60. data/lib/elements/userestrict.rb +12 -0
  61. data/test/{TestEADDescription.rb → description_test.rb} +27 -26
  62. data/test/{TestEADDocument.rb → document_test.rb} +2 -2
  63. data/test/level_test.rb +75 -0
  64. data/test/note_test.rb +36 -0
  65. data/test/partial_export_test.rb +63 -0
  66. data/test/phystech_test.rb +45 -0
  67. data/test/scopecontent_test.rb +41 -0
  68. data/test/{TestEADSubordinates.rb → subordinates_test.rb} +7 -8
  69. data/test/{TestEADSubtitle.rb → subtitle_test.rb} +5 -6
  70. data/test/test_helper.rb +45 -0
  71. data/test/xmlsoparser_test.rb +119 -0
  72. metadata +72 -50
  73. data/lib/EAD.rb +0 -229
  74. data/lib/EADAcqInfo.rb +0 -13
  75. data/lib/EADAltFormAvail.rb +0 -13
  76. data/lib/EADAppraisal.rb +0 -12
  77. data/lib/EADArrangement.rb +0 -12
  78. data/lib/EADBiogHist.rb +0 -10
  79. data/lib/EADChronList.rb +0 -27
  80. data/lib/EADContainer.rb +0 -15
  81. data/lib/EADControlAccess.rb +0 -12
  82. data/lib/EADCustodHist.rb +0 -12
  83. data/lib/EADDate.rb +0 -24
  84. data/lib/EADDescription.rb +0 -22
  85. data/lib/EADDimensions.rb +0 -15
  86. data/lib/EADDocument.rb +0 -106
  87. data/lib/EADEvent.rb +0 -11
  88. data/lib/EADExtent.rb +0 -15
  89. data/lib/EADFilePlan.rb +0 -12
  90. data/lib/EADGeogName.rb +0 -15
  91. data/lib/EADHeader.rb +0 -70
  92. data/lib/EADLabel.rb +0 -11
  93. data/lib/EADLang.rb +0 -42
  94. data/lib/EADLevel.rb +0 -73
  95. data/lib/EADList.rb +0 -36
  96. data/lib/EADMaterialSpec.rb +0 -14
  97. data/lib/EADName.rb +0 -17
  98. data/lib/EADNote.rb +0 -24
  99. data/lib/EADOtherFindAid.rb +0 -12
  100. data/lib/EADPhysFacet.rb +0 -17
  101. data/lib/EADPhysTech.rb +0 -16
  102. data/lib/EADProcessInfo.rb +0 -13
  103. data/lib/EADProfileDesc.rb +0 -17
  104. data/lib/EADRelatedMaterial.rb +0 -21
  105. data/lib/EADRepository.rb +0 -13
  106. data/lib/EADScopeContent.rb +0 -21
  107. data/lib/EADSubordinates.rb +0 -29
  108. data/lib/EADSubtitle.rb +0 -8
  109. data/test/TestEAD.rb +0 -50
  110. data/test/TestEADLevel.rb +0 -76
  111. data/test/TestEADNote.rb +0 -36
  112. data/test/TestEADPhysTech.rb +0 -44
  113. data/test/TestEADScopeContent.rb +0 -43
  114. data/test/TestPartialExport.rb +0 -61
  115. data/test/TestXMLStreamObjectParser.rb +0 -126
data/lib/EADBiogHist.rb DELETED
@@ -1,10 +0,0 @@
1
- require "EAD"
2
-
3
- module EAD
4
- class EADBiogHist < EADElement
5
- elname "bioghist"
6
-
7
- xmlsubel :head
8
- xmlsubel_mult :p
9
- end
10
- end
data/lib/EADChronList.rb DELETED
@@ -1,27 +0,0 @@
1
- module EAD
2
- class EADChronList < EADElement
3
- elname "chronlist"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
-
10
- xmlsubelements
11
- end
12
-
13
- class EADChronItem < EADElement
14
- elname "chronitem"
15
-
16
- xmlattr :altrender
17
- xmlattr :audience
18
- xmlattr :encodinganalog
19
- xmlattr :id
20
-
21
- xmlsubel :date
22
- xmlsubel :event
23
- xmlsubel :eventgrp
24
- end
25
- end
26
-
27
-
data/lib/EADContainer.rb DELETED
@@ -1,15 +0,0 @@
1
- module EAD
2
- class EADContainer < EADElement
3
- elname "container"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :label
10
- xmlattr :parent
11
- xmlattr :type
12
-
13
- xmlsubelements
14
- end
15
- end
@@ -1,12 +0,0 @@
1
- module EAD
2
- class EADControlAccess < EADElement
3
- elname :controlaccess
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
-
10
- xmlsubelements
11
- end
12
- end
data/lib/EADCustodHist.rb DELETED
@@ -1,12 +0,0 @@
1
- module EAD
2
- class EADCustodHist < EADElement
3
- elname "custodhist"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
-
10
- xmlsubelements
11
- end
12
- end
data/lib/EADDate.rb DELETED
@@ -1,24 +0,0 @@
1
- module EAD
2
- class EADDate < EADElement
3
- elname "date"
4
- elwithvalue
5
-
6
- xmlattr :altrender
7
- xmlattr :audience
8
- xmlattr :calendar
9
- xmlattr :certainty
10
- xmlattr :encodinganalog
11
- xmlattr :era
12
- xmlattr :id
13
- xmlattr :normal
14
- xmlattr :type
15
- end
16
-
17
- class EADUnitDate < EADDate
18
- elname "unitdate"
19
- elwithvalue
20
-
21
- xmlattr :datechar
22
- xmlattr :label
23
- end
24
- end
@@ -1,22 +0,0 @@
1
- require "EADDate"
2
-
3
- module EAD
4
- class EADDescription < EADElement
5
- elname "did"
6
-
7
- xmlattr :altrender
8
- xmlattr :audience
9
- xmlattr :encodinganalog
10
- xmlattr :id
11
-
12
- xmlsubel :head
13
- xmlsubel :origination
14
- xmlsubel :unittitle
15
- xmlsubel :unitid
16
- xmlsubel :abstract
17
- xmlsubel :physdesc
18
- xmlsubel :physloc
19
- xmlsubel :unitdate
20
- xmlsubel :langmaterial
21
- end
22
- end
data/lib/EADDimensions.rb DELETED
@@ -1,15 +0,0 @@
1
- module EAD
2
- class EADDimensions < EADElement
3
- elname "dimensions"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :label
10
- xmlattr :type
11
- xmlattr :unit
12
-
13
- xmlsubelements
14
- end
15
- end
data/lib/EADDocument.rb DELETED
@@ -1,106 +0,0 @@
1
- require "EAD"
2
- require "XMLUtils"
3
-
4
- module EAD
5
- class EADArchDesc < EADElement
6
- elname "archdesc"
7
-
8
- xmlattr :altrender
9
- xmlattr :audience
10
- xmlattr :encodinganalog
11
- xmlattr :id
12
- xmlattr :level
13
- xmlattr :otherlevel
14
- xmlattr :relatedencoding
15
- xmlattr :type
16
-
17
- xmlsubel :did
18
- xmlsubel :bioghist
19
- xmlsubel :scopecontent
20
- xmlsubel :phystech
21
- xmlsubel_mult :dsc
22
-
23
- def initialize
24
- @level = "fonds"
25
- end
26
-
27
- def add_descelem(elem)
28
- dsc << elem
29
- end
30
-
31
- def descelems
32
- dsc.dup
33
- end
34
-
35
- def current_content
36
- text = create_open_tag+"\n"
37
- each_subel do |name|
38
- if not subel_mult?(name)
39
- value = send(name)
40
- if value
41
- doc = REXML::Document.new
42
- xml = value.create_xml(doc)
43
- doc.write(text,2)
44
- end
45
- end
46
- end
47
- text
48
- end
49
- end
50
-
51
- class EADDocument < EADElement
52
- elname "ead"
53
-
54
- COUNTRY_CODE = "pt"
55
- AGENCY_CODE = "iantt"
56
-
57
- xmlsubel :eadheader
58
- xmlsubel :archdesc
59
-
60
- def self.from_file(file)
61
- doc = REXML::Document.new(File.new(file))
62
- self.import_xml(doc.elements[1])
63
- end
64
-
65
- def initialize(id, title)
66
- self.eadheader = EADHeader.new(id, title)
67
- self.archdesc = EADArchDesc.new
68
- end
69
-
70
- def add_description(description)
71
- @archdesc.did = description
72
- end
73
-
74
- def ead_did
75
- @archdesc.did
76
- end
77
-
78
- def add_descelem(elem)
79
- @archdesc.add_descelem(elem)
80
- end
81
-
82
- def descelems
83
- @archdesc.descelems
84
- end
85
-
86
- def export(filename)
87
- doc = REXML::Document.new
88
- doc << REXML::XMLDecl.new("1.0", "UTF-8")
89
- doc << REXML::DocType.new("ead SYSTEM", '"file:///home/pedrocr/ead.dtd"')
90
- create_xml(doc)
91
- output = File.open(filename, "w")
92
-
93
- doc.write(output, 0)
94
- output.write "\n"
95
- output.close
96
- end
97
-
98
- def start_partial_export(file)
99
- if not already_partial_exported?
100
- file << "<?xml version='1.0' encoding='UTF-8'?>\n"
101
- file << "<!DOCTYPE ead SYSTEM \"file:///home/pedrocr/ead.dtd\">\n"
102
- super
103
- end
104
- end
105
- end
106
- end
data/lib/EADEvent.rb DELETED
@@ -1,11 +0,0 @@
1
- module EAD
2
- class EADEvent < EADElement
3
- elname "event"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :id
8
-
9
- xmlsubelements
10
- end
11
- end
data/lib/EADExtent.rb DELETED
@@ -1,15 +0,0 @@
1
- module EAD
2
- class EADExtent < EADElement
3
- elname "extent"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :label
10
- xmlattr :type
11
- xmlattr :unit
12
-
13
- xmlsubelements
14
- end
15
- end
data/lib/EADFilePlan.rb DELETED
@@ -1,12 +0,0 @@
1
- module EAD
2
- class EADFilePlan< EADElement
3
- elname "fileplan"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
-
10
- xmlsubelements
11
- end
12
- end
data/lib/EADGeogName.rb DELETED
@@ -1,15 +0,0 @@
1
- module EAD
2
- class EADGeogName < EADElement
3
- elname 'geogname'
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :authfilenumber
8
- xmlattr :encondinganalog
9
- xmlattr :id
10
- xmlattr :normal
11
- xmlattr :role
12
- xmlattr :rules
13
- xmlattr :source
14
- end
15
- end
data/lib/EADHeader.rb DELETED
@@ -1,70 +0,0 @@
1
- module EAD
2
- class EADId < EADElement
3
- elname 'eadid'
4
- elwithvalue
5
-
6
- xmlattr :countrycode
7
- xmlattr :encodinganalog
8
- xmlattr :identifier
9
- xmlattr :mainagencycode
10
- xmlattr :publicid
11
- xmlattr :url
12
- xmlattr :urn
13
- end
14
-
15
- class EADTitleStatement < EADElement
16
- elname 'titlestmt'
17
-
18
- xmlsubel :author
19
- xmlsubel :sponsor
20
- xmlsubel :subtitle
21
- xmlsubel :titleproper
22
-
23
- def initialize(title)
24
- self.titleproper = title
25
- end
26
- end
27
-
28
- class EADFileDesc < EADElement
29
- elname 'filedesc'
30
-
31
- xmlattr :altrender
32
- xmlattr :audience
33
- xmlattr :encodinganalog
34
- xmlattr :id
35
- xmlsubel :titlestmt
36
-
37
- def initialize(title)
38
- self.titlestmt = EADTitleStatement.new(title)
39
- end
40
- end
41
-
42
- class EADHeader < EADElement
43
- elname 'eadheader'
44
-
45
- xmlattr :altrender
46
- xmlattr :audience
47
- xmlattr :countryenconding
48
- xmlattr :dateencoding
49
- xmlattr :encodinganalog
50
- xmlattr :findaidstatus
51
- xmlattr :id
52
- xmlattr :langenconding
53
- xmlattr :relatedencoding
54
- xmlattr :repositoryencoding
55
- xmlattr :scriptencoding
56
-
57
- xmlsubel :eadid
58
- xmlsubel :filedesc
59
- xmlsubel :profiledesc
60
-
61
- def initialize(id, title)
62
- self.eadid = EADId.new(id)
63
- self.filedesc = EADFileDesc.new(title)
64
- end
65
-
66
- def eadtitle
67
- self.filedesc.titlestmt.titleproper
68
- end
69
- end
70
- end
data/lib/EADLabel.rb DELETED
@@ -1,11 +0,0 @@
1
- module EAD
2
- class EADLabel < EADElement
3
- elname "label"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :id
8
-
9
- xmlsubelements
10
- end
11
- end
data/lib/EADLang.rb DELETED
@@ -1,42 +0,0 @@
1
- module EAD
2
- class EADLanguage < EADElement
3
- elname "language"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :langcode
10
- xmlattr :scriptcode
11
-
12
- xmlsubelements
13
-
14
- def initialize(*values)
15
- if values
16
- values.each do |v|
17
- self.subelements << v
18
- end
19
- end
20
- end
21
- end
22
-
23
- class EADLangMaterial < EADElement
24
- elname "langmaterial"
25
-
26
- xmlattr :altrender
27
- xmlattr :audience
28
- xmlattr :encodinganalog
29
- xmlattr :id
30
- xmlattr :label
31
-
32
- xmlsubelements
33
-
34
- def initialize(*values)
35
- if values
36
- values.each do |v|
37
- self.subelements << v
38
- end
39
- end
40
- end
41
- end
42
- end
data/lib/EADLevel.rb DELETED
@@ -1,73 +0,0 @@
1
- module EAD
2
- class EADLevel < EADElement
3
- include EADLevels
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :level
10
- xmlattr :otherlevel
11
- xmlattr :tpattern
12
-
13
- xmlsubel :did
14
- xmlsubel :phystech
15
- xmlsubel :scopecontent
16
- xmlsubel :note
17
- xmlsubel :relatedmaterial
18
- xmlsubel_mult :c
19
- xmlsubel_mult :dsc
20
-
21
- attr_reader :parent
22
-
23
- elnames(*["c","c01","c02","c03","c04","c05","c06",
24
- "c07","c08","c09","c10","c11","c12"])
25
-
26
- def initialize
27
- @unnumbered = false
28
- end
29
-
30
- def set_unnumbered
31
- @unnumbered = true
32
- end
33
-
34
- def set_numbered
35
- @unnumbered = false
36
- end
37
-
38
- def unnumbered?
39
- if not instance_variables.index('@unnumbered')
40
- @unnumbered = false
41
- end
42
- @unnumbered
43
- end
44
-
45
- def __parent=(parent)
46
- super
47
- if parent.unnumbered?
48
- self.set_unnumbered
49
- end
50
- end
51
-
52
- def description_level
53
- if __parent
54
- return __parent.description_level + 1
55
- else
56
- return 0
57
- end
58
- end
59
-
60
- alias_method :oldelname, :elname # Just to shut up the warning
61
- def elname
62
- if unnumbered?
63
- return "c"
64
- end
65
-
66
- if description_level < 10
67
- return "c0" + description_level.to_s
68
- else
69
- return "c" + description_level.to_s
70
- end
71
- end
72
- end
73
- end
data/lib/EADList.rb DELETED
@@ -1,36 +0,0 @@
1
- module EAD
2
- class EADList < EADElement
3
- elname "list"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :continuation
8
- xmlattr :id
9
- xmlattr :mark
10
- xmlattr :numeration
11
- xmlattr :type
12
-
13
- xmlsubelements
14
- end
15
-
16
- class EADDefItem < EADElement
17
- elname "defitem"
18
-
19
- xmlattr :altrender
20
- xmlattr :audience
21
- xmlattr :id
22
-
23
- xmlsubel :label
24
- xmlsubel :item
25
- end
26
-
27
- class EADItem < EADElement
28
- elname "item"
29
-
30
- xmlattr :altrender
31
- xmlattr :audience
32
- xmlattr :id
33
-
34
- xmlsubelements
35
- end
36
- end
@@ -1,14 +0,0 @@
1
- module EAD
2
- class EADMaterialSpec < EADElement
3
- elname "materialspec"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :label
10
- xmlattr :type
11
-
12
- xmlsubelements
13
- end
14
- end
data/lib/EADName.rb DELETED
@@ -1,17 +0,0 @@
1
- module EAD
2
- class EADName < EADElement
3
- elname "name"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :authfilenumber
8
- xmlattr :encodinganalog
9
- xmlattr :id
10
- xmlattr :normal
11
- xmlattr :role
12
- xmlattr :rules
13
- xmlattr :source
14
-
15
- xmlsubelements
16
- end
17
- end
data/lib/EADNote.rb DELETED
@@ -1,24 +0,0 @@
1
- module EAD
2
- class EADNote < EADElement
3
- elname "note"
4
-
5
- xmlattr :actuate
6
- xmlattr :altrender
7
- xmlattr :audience
8
- xmlattr :encodinganalog
9
- xmlattr :id
10
- xmlattr :label
11
- xmlattr :show
12
- xmlattr :type
13
-
14
- xmlsubel_mult :p
15
-
16
- def value
17
- str = ""
18
- p.each do |par|
19
- str += "<p>"+par.value+"</p>\n"
20
- end
21
- str
22
- end
23
- end
24
- end
@@ -1,12 +0,0 @@
1
- module EAD
2
- class EADOtherFindAid < EADElement
3
- elname "otherfindaid"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
-
10
- xmlsubelements
11
- end
12
- end
data/lib/EADPhysFacet.rb DELETED
@@ -1,17 +0,0 @@
1
- module EAD
2
- class EADPhysFacet < EADElement
3
- elname "physfacet"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :label
10
- xmlattr :rules
11
- xmlattr :source
12
- xmlattr :type
13
- xmlattr :unit
14
-
15
- xmlsubelements
16
- end
17
- end
data/lib/EADPhysTech.rb DELETED
@@ -1,16 +0,0 @@
1
- module EAD
2
- class EADPhysTech < EADElement
3
- elname "phystech"
4
-
5
- xmlsubel :head
6
- xmlsubel_mult :p
7
-
8
- def value
9
- str = ""
10
- p.each do |par|
11
- str += "<p>"+par.value+"</p>\n"
12
- end
13
- str
14
- end
15
- end
16
- end
@@ -1,13 +0,0 @@
1
- module EAD
2
- class EADProcessInfo < EADElement
3
- elname "processinfo"
4
-
5
- xmlattr :altrender
6
- xmlattr :audience
7
- xmlattr :encodinganalog
8
- xmlattr :id
9
- xmlattr :type
10
-
11
- xmlsubelements
12
- end
13
- end
@@ -1,17 +0,0 @@
1
- module EAD
2
- class EADCreation < EADElement
3
- elname "creation"
4
- xmlsubelements
5
- end
6
-
7
- class EADProfileDesc < EADElement
8
- elname "profiledesc"
9
-
10
- xmlattr :altrender
11
- xmlattr :audience
12
- xmlattr :encodinganalog
13
- xmlattr :id
14
-
15
- xmlsubel :creation
16
- end
17
- end