libis-format 0.9.5-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (207) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +2 -0
  3. data/.gitignore +18 -0
  4. data/.travis.yml +41 -0
  5. data/Gemfile +5 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +39 -0
  8. data/Rakefile +8 -0
  9. data/bin/droid +15 -0
  10. data/bin/fido +12 -0
  11. data/bin/pdf_copy +13 -0
  12. data/data/ISOcoated_v2_eci.icc +0 -0
  13. data/data/PDFA_def.ps +40 -0
  14. data/data/ead.xsd +2728 -0
  15. data/data/eciRGB_v2.icc +0 -0
  16. data/data/lias_formats.xml +106 -0
  17. data/data/types.yml +217 -0
  18. data/lib/libis/format/config.rb +35 -0
  19. data/lib/libis/format/converter/base.rb +101 -0
  20. data/lib/libis/format/converter/chain.rb +167 -0
  21. data/lib/libis/format/converter/image_converter.rb +214 -0
  22. data/lib/libis/format/converter/office_converter.rb +50 -0
  23. data/lib/libis/format/converter/pdf_converter.rb +139 -0
  24. data/lib/libis/format/converter/repository.rb +98 -0
  25. data/lib/libis/format/converter.rb +11 -0
  26. data/lib/libis/format/droid.rb +45 -0
  27. data/lib/libis/format/fido.rb +102 -0
  28. data/lib/libis/format/identifier.rb +189 -0
  29. data/lib/libis/format/office_to_pdf.rb +52 -0
  30. data/lib/libis/format/pdf_copy.rb +40 -0
  31. data/lib/libis/format/pdf_merge.rb +41 -0
  32. data/lib/libis/format/pdf_split.rb +39 -0
  33. data/lib/libis/format/pdf_to_pdfa.rb +76 -0
  34. data/lib/libis/format/pdfa_validator.rb +61 -0
  35. data/lib/libis/format/type_database.rb +170 -0
  36. data/lib/libis/format/version.rb +5 -0
  37. data/lib/libis/format.rb +23 -0
  38. data/lib/libis-format.rb +1 -0
  39. data/libis-format.gemspec +34 -0
  40. data/spec/converter_spec.rb +212 -0
  41. data/spec/data/Cevennes2.bmp +0 -0
  42. data/spec/data/Cevennes2.jp2 +0 -0
  43. data/spec/data/Cevennes2.ppm +22492 -0
  44. data/spec/data/test-ead.xml +392 -0
  45. data/spec/data/test-jpg.tif +0 -0
  46. data/spec/data/test-lzw.tif +0 -0
  47. data/spec/data/test-options.jpg +0 -0
  48. data/spec/data/test.bmp +0 -0
  49. data/spec/data/test.doc +0 -0
  50. data/spec/data/test.docx +0 -0
  51. data/spec/data/test.gif +0 -0
  52. data/spec/data/test.jpg +0 -0
  53. data/spec/data/test.ods +0 -0
  54. data/spec/data/test.odt +0 -0
  55. data/spec/data/test.pdf +0 -0
  56. data/spec/data/test.pdf.tif +0 -0
  57. data/spec/data/test.png +0 -0
  58. data/spec/data/test.ps +8631 -0
  59. data/spec/data/test.psd +0 -0
  60. data/spec/data/test.rtf +1455 -0
  61. data/spec/data/test.tif +0 -0
  62. data/spec/data/test.txt +12 -0
  63. data/spec/data/test.xcf +0 -0
  64. data/spec/data/test.xls +0 -0
  65. data/spec/data/test.xlsx +0 -0
  66. data/spec/data/test.xml +4 -0
  67. data/spec/data/test_pdfa.pdf +0 -0
  68. data/spec/identifier_spec.rb +60 -0
  69. data/spec/spec_helper.rb +9 -0
  70. data/spec/test_types.yml +12 -0
  71. data/spec/type_database_spec.rb +140 -0
  72. data/tools/PdfTool.jar +0 -0
  73. data/tools/bcpkix-jdk15on-1.49.jar +0 -0
  74. data/tools/bcprov-jdk15on-1.49.jar +0 -0
  75. data/tools/droid/DROID_SignatureFile_V82.xml +32681 -0
  76. data/tools/droid/container-signature-20150307.xml +2235 -0
  77. data/tools/droid/droid-command-line-6.1.5.jar +0 -0
  78. data/tools/droid/droid.bat +154 -0
  79. data/tools/droid/droid.sh +138 -0
  80. data/tools/droid/lib/XmlSchema-1.4.7.jar +0 -0
  81. data/tools/droid/lib/activation-1.1.jar +0 -0
  82. data/tools/droid/lib/antlr-2.7.7.jar +0 -0
  83. data/tools/droid/lib/antlr-3.2.jar +0 -0
  84. data/tools/droid/lib/antlr-runtime-3.2.jar +0 -0
  85. data/tools/droid/lib/aopalliance-1.0.jar +0 -0
  86. data/tools/droid/lib/asm-2.2.3.jar +0 -0
  87. data/tools/droid/lib/aspectjrt-1.7.2.jar +0 -0
  88. data/tools/droid/lib/aspectjweaver-1.7.2.jar +0 -0
  89. data/tools/droid/lib/bcmail-jdk14-138.jar +0 -0
  90. data/tools/droid/lib/bcprov-jdk14-138.jar +0 -0
  91. data/tools/droid/lib/beansbinding-1.2.1.jar +0 -0
  92. data/tools/droid/lib/byteseek-1.1.1.jar +0 -0
  93. data/tools/droid/lib/cglib-nodep-2.2.2.jar +0 -0
  94. data/tools/droid/lib/classmate-1.0.0.jar +0 -0
  95. data/tools/droid/lib/commons-cli-1.2.jar +0 -0
  96. data/tools/droid/lib/commons-codec-1.4.jar +0 -0
  97. data/tools/droid/lib/commons-collections-3.2.1.jar +0 -0
  98. data/tools/droid/lib/commons-compress-1.4.1.jar +0 -0
  99. data/tools/droid/lib/commons-configuration-1.8.jar +0 -0
  100. data/tools/droid/lib/commons-dbcp-1.4.jar +0 -0
  101. data/tools/droid/lib/commons-httpclient-3.1.jar +0 -0
  102. data/tools/droid/lib/commons-io-2.4.jar +0 -0
  103. data/tools/droid/lib/commons-lang-2.6.jar +0 -0
  104. data/tools/droid/lib/commons-logging-1.1.1.jar +0 -0
  105. data/tools/droid/lib/commons-pool-1.5.4.jar +0 -0
  106. data/tools/droid/lib/cxf-api-2.2.12.jar +0 -0
  107. data/tools/droid/lib/cxf-common-schemas-2.2.12.jar +0 -0
  108. data/tools/droid/lib/cxf-common-utilities-2.2.12.jar +0 -0
  109. data/tools/droid/lib/cxf-rt-bindings-http-2.2.12.jar +0 -0
  110. data/tools/droid/lib/cxf-rt-bindings-soap-2.2.12.jar +0 -0
  111. data/tools/droid/lib/cxf-rt-bindings-xml-2.2.12.jar +0 -0
  112. data/tools/droid/lib/cxf-rt-core-2.2.12.jar +0 -0
  113. data/tools/droid/lib/cxf-rt-databinding-jaxb-2.2.12.jar +0 -0
  114. data/tools/droid/lib/cxf-rt-frontend-jaxws-2.2.12.jar +0 -0
  115. data/tools/droid/lib/cxf-rt-frontend-simple-2.2.12.jar +0 -0
  116. data/tools/droid/lib/cxf-rt-transports-http-2.2.12.jar +0 -0
  117. data/tools/droid/lib/cxf-rt-ws-addr-2.2.12.jar +0 -0
  118. data/tools/droid/lib/cxf-tools-common-2.2.12.jar +0 -0
  119. data/tools/droid/lib/de.huxhorn.lilith.3rdparty.flyingsaucer.core-renderer-8RC1.jar +0 -0
  120. data/tools/droid/lib/derby-10.10.2.0.jar +0 -0
  121. data/tools/droid/lib/dom4j-1.6.1.jar +0 -0
  122. data/tools/droid/lib/droid-container-6.1.5.jar +0 -0
  123. data/tools/droid/lib/droid-core-6.1.5.jar +0 -0
  124. data/tools/droid/lib/droid-core-interfaces-6.1.5.jar +0 -0
  125. data/tools/droid/lib/droid-export-6.1.5.jar +0 -0
  126. data/tools/droid/lib/droid-export-interfaces-6.1.5.jar +0 -0
  127. data/tools/droid/lib/droid-help-6.1.5.jar +0 -0
  128. data/tools/droid/lib/droid-report-6.1.5.jar +0 -0
  129. data/tools/droid/lib/droid-report-interfaces-6.1.5.jar +0 -0
  130. data/tools/droid/lib/droid-results-6.1.5.jar +0 -0
  131. data/tools/droid/lib/ejb3-persistence-1.0.2.GA.jar +0 -0
  132. data/tools/droid/lib/geronimo-activation_1.1_spec-1.0.2.jar +0 -0
  133. data/tools/droid/lib/geronimo-annotation_1.0_spec-1.1.1.jar +0 -0
  134. data/tools/droid/lib/geronimo-javamail_1.4_spec-1.6.jar +0 -0
  135. data/tools/droid/lib/geronimo-jaxws_2.1_spec-1.0.jar +0 -0
  136. data/tools/droid/lib/geronimo-stax-api_1.0_spec-1.0.1.jar +0 -0
  137. data/tools/droid/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar +0 -0
  138. data/tools/droid/lib/hibernate-commons-annotations-4.0.4.Final.jar +0 -0
  139. data/tools/droid/lib/hibernate-core-4.3.5.Final.jar +0 -0
  140. data/tools/droid/lib/hibernate-entitymanager-4.3.5.Final.jar +0 -0
  141. data/tools/droid/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar +0 -0
  142. data/tools/droid/lib/hibernate-validator-5.1.0.Final.jar +0 -0
  143. data/tools/droid/lib/itext-2.0.8.jar +0 -0
  144. data/tools/droid/lib/jandex-1.1.0.Final.jar +0 -0
  145. data/tools/droid/lib/javahelp-2.0.05.jar +0 -0
  146. data/tools/droid/lib/javassist-3.18.1-GA.jar +0 -0
  147. data/tools/droid/lib/jaxb-api-2.1.jar +0 -0
  148. data/tools/droid/lib/jaxb-impl-2.1.13.jar +0 -0
  149. data/tools/droid/lib/jboss-logging-3.1.3.GA.jar +0 -0
  150. data/tools/droid/lib/jboss-logging-annotations-1.2.0.Beta1.jar +0 -0
  151. data/tools/droid/lib/jboss-transaction-api_1.2_spec-1.0.0.Final.jar +0 -0
  152. data/tools/droid/lib/joda-time-1.6.2.jar +0 -0
  153. data/tools/droid/lib/jra-1.0-alpha-4.jar +0 -0
  154. data/tools/droid/lib/jta-1.1.jar +0 -0
  155. data/tools/droid/lib/log4j-1.2.13.jar +0 -0
  156. data/tools/droid/lib/neethi-2.0.4.jar +0 -0
  157. data/tools/droid/lib/opencsv-2.3.jar +0 -0
  158. data/tools/droid/lib/org-netbeans-swing-outline-7.2.jar +0 -0
  159. data/tools/droid/lib/org-openide-util-7.2.jar +0 -0
  160. data/tools/droid/lib/org-openide-util-lookup-7.2.jar +0 -0
  161. data/tools/droid/lib/poi-3.7.jar +0 -0
  162. data/tools/droid/lib/saaj-api-1.3.jar +0 -0
  163. data/tools/droid/lib/saaj-impl-1.3.2.jar +0 -0
  164. data/tools/droid/lib/slf4j-api-1.4.2.jar +0 -0
  165. data/tools/droid/lib/slf4j-log4j12-1.4.2.jar +0 -0
  166. data/tools/droid/lib/spring-aop-4.0.3.RELEASE.jar +0 -0
  167. data/tools/droid/lib/spring-beans-4.0.3.RELEASE.jar +0 -0
  168. data/tools/droid/lib/spring-context-4.0.3.RELEASE.jar +0 -0
  169. data/tools/droid/lib/spring-core-4.0.3.RELEASE.jar +0 -0
  170. data/tools/droid/lib/spring-expression-4.0.3.RELEASE.jar +0 -0
  171. data/tools/droid/lib/spring-jdbc-4.0.3.RELEASE.jar +0 -0
  172. data/tools/droid/lib/spring-orm-4.0.3.RELEASE.jar +0 -0
  173. data/tools/droid/lib/spring-tx-4.0.3.RELEASE.jar +0 -0
  174. data/tools/droid/lib/spring-web-2.5.6.jar +0 -0
  175. data/tools/droid/lib/stax-api-1.0-2.jar +0 -0
  176. data/tools/droid/lib/stringtemplate-3.2.jar +0 -0
  177. data/tools/droid/lib/truezip-6.8.4.jar +0 -0
  178. data/tools/droid/lib/validation-api-1.1.0.Final.jar +0 -0
  179. data/tools/droid/lib/wsdl4j-1.6.2.jar +0 -0
  180. data/tools/droid/lib/wstx-asl-3.2.9.jar +0 -0
  181. data/tools/droid/lib/xercesImpl-2.9.1.jar +0 -0
  182. data/tools/droid/lib/xml-apis-1.3.04.jar +0 -0
  183. data/tools/droid/lib/xml-resolver-1.2.jar +0 -0
  184. data/tools/droid/lib/xz-1.0.jar +0 -0
  185. data/tools/fido/__init__.py +0 -0
  186. data/tools/fido/argparselocal.py +2355 -0
  187. data/tools/fido/conf/DROID_SignatureFile-v81.xml +2 -0
  188. data/tools/fido/conf/container-signature-20150307.xml +2238 -0
  189. data/tools/fido/conf/dc.xsd +119 -0
  190. data/tools/fido/conf/dcmitype.xsd +53 -0
  191. data/tools/fido/conf/dcterms.xsd +383 -0
  192. data/tools/fido/conf/fido-formats.xsd +173 -0
  193. data/tools/fido/conf/format_extension_template.xml +105 -0
  194. data/tools/fido/conf/format_extensions.xml +498 -0
  195. data/tools/fido/conf/formats-v81.xml +38355 -0
  196. data/tools/fido/conf/pronom-xml-v81.zip +0 -0
  197. data/tools/fido/conf/versions.xml +8 -0
  198. data/tools/fido/fido.bat +4 -0
  199. data/tools/fido/fido.py +854 -0
  200. data/tools/fido/fido.sh +5 -0
  201. data/tools/fido/prepare.py +616 -0
  202. data/tools/fido/pronomutils.py +115 -0
  203. data/tools/fido/toxml.py +52 -0
  204. data/tools/fido/update_signatures.py +171 -0
  205. data/tools/pdfbox/pdfbox-app-1.8.10.jar +0 -0
  206. data/tools/pdfbox/preflight-app-1.8.10.jar +0 -0
  207. metadata +396 -0
Binary file
@@ -0,0 +1,12 @@
1
+ I Lorem ipsum
2
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam mollis tortor sed ante dictum gravida. Phasellus lacinia aliquam leo, nec imperdiet lacus venenatis non. Sed posuere tincidunt nunc, eu fermentum nunc rhoncus quis. Sed non risus id lacus dignissim venenatis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc eget hendrerit nibh. Quisque lorem diam, imperdiet vel lectus et, mattis imperdiet velit. Integer vitae nisl blandit, condimentum felis tincidunt, vehicula tortor. Praesent gravida enim lectus, nec dictum mi molestie at. Praesent semper eget mi eu convallis. Praesent consectetur dictum dolor, non tempor velit pellentesque sit amet. Aliquam a sem eget metus gravida egestas quis vitae augue. Aenean pharetra quis purus vel aliquet. Nullam tempor auctor nisi eu consequat. Suspendisse nec rhoncus magna.
3
+ I.1. Cras tellus
4
+ Cras tellus nunc, efficitur eget arcu sed, feugiat volutpat felis. Pellentesque maximus dapibus nisl quis tincidunt. Pellentesque quis ligula sed ligula facilisis aliquet. Praesent quis turpis tempor, pretium leo consectetur, tempus tellus. Etiam quis ipsum sodales, tincidunt velit sed, fringilla lectus. Morbi in eros consequat, accumsan turpis non, eleifend nibh. Donec elementum urna quam, sed feugiat mauris dapibus vitae. Aliquam aliquet, urna et eleifend pulvinar, felis eros finibus lacus, consequat ornare erat tortor consectetur neque. Vivamus et semper augue. Praesent eget nulla felis. Nam maximus posuere finibus. Pellentesque tincidunt mauris eget ex sollicitudin, et hendrerit ex pretium. Sed in elementum erat, at egestas sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In vulputate tortor sed enim hendrerit mattis. Fusce dui sem, auctor ac tellus pulvinar, mattis scelerisque est.
5
+
6
+ a) Morbi sit
7
+ Morbi sit amet nunc metus. Donec vehicula tortor velit, eu aliquet nulla condimentum ut. Cras tristique justo quis dignissim auctor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus rutrum aliquam lectus in volutpat. Fusce ullamcorper placerat semper. Morbi vel tellus dui.
8
+ Nullam eleifend
9
+ Nullam eleifend viverra urna, sed sodales purus blandit a. Donec tempus quis ipsum ut sodales. Suspendisse eleifend augue ut leo commodo, a viverra orci pretium. Nunc in vulputate est. Vivamus nunc lectus, mollis eget pulvinar in, sodales id diam. Duis in ullamcorper metus. Etiam scelerisque libero ac fermentum consectetur. Pellentesque viverra volutpat velit, sed rutrum odio vestibulum eget. Nullam faucibus dapibus sapien, nec tincidunt tortor commodo in. Etiam sit amet dapibus neque. Sed vestibulum, tortor tempus auctor consectetur, sem lectus sodales orci, non pellentesque quam tortor at diam. Maecenas pulvinar elit ut imperdiet varius. Donec vel est ut mauris tempus ornare id eu tortor.
10
+ Duis scelerisque
11
+ Duis scelerisque dolor ac venenatis porttitor. Integer mattis sodales est, at hendrerit neque viverra ac. Donec viverra mattis erat, sed vehicula arcu convallis non. Pellentesque faucibus faucibus feugiat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer tincidunt neque nisi, vel condimentum sapien gravida consectetur. Fusce lacus ligula, mattis sed consectetur et, maximus at elit. Phasellus in pretium felis.
12
+
Binary file
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <lorem>
3
+ <ipsum/>
4
+ </lorem>
Binary file
@@ -0,0 +1,60 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe 'Identfier' do
5
+
6
+ dir = File.join File.absolute_path(File.dirname(__FILE__)), 'data'
7
+
8
+ before :all do
9
+ @logoutput = StringIO.new
10
+ ::Libis::Tools::Config.logger = Logger.new @logoutput
11
+ end
12
+
13
+ it 'should initialize correctly' do
14
+ # expect(Libis::Format::Identifier.fido_formats.size).to be 1
15
+ # expect(File.basename(Libis::Format::Identifier.fido_formats.first)).to eq 'lias_formats.xml'
16
+
17
+ expect(Libis::Format::Identifier.xml_validations.size).to be 1
18
+ expect(File.basename Libis::Format::Identifier.xml_validations['archive/ead']).to eq 'ead.xsd'
19
+ end
20
+
21
+ it 'should not attempt to identify a directory' do
22
+ expect(Libis::Format::Identifier.get dir).to be_nil
23
+ end
24
+
25
+ it 'should not attempt to identify a file that does not exist' do
26
+ expect(Libis::Format::Identifier.get File.join(dir, 'does_not_exist_file')).to be_nil
27
+ end
28
+
29
+ # noinspection RubyStringKeysInHashInspection
30
+ {
31
+ 'Cevennes2.ppm' => {mimetype: 'image/x‑portable‑pixmap', puid: 'fmt/408'},
32
+ 'Cevennes2.bmp' => {mimetype: 'image/bmp', puid: 'fmt/116'},
33
+ 'Cevennes2.jp2' => {mimetype: 'image/jp2', puid: 'x-fmt/392'},
34
+ 'test.odt' => {mimetype: 'application/vnd.oasis.opendocument.text', puid: 'fmt/291'},
35
+ 'test.doc' => {mimetype: 'application/msword', puid: 'fmt/40'},
36
+ 'test.docx' => {mimetype: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', puid: 'fmt/412'},
37
+ 'test.pdf' => {mimetype: 'application/pdf', puid: 'fmt/18'},
38
+ 'test.rtf' => {mimetype: 'application/rtf', puid: 'fmt/45'},
39
+ 'test.txt' => {mimetype: 'text/plain', puid: 'x-fmt/111'},
40
+ 'test.ods' => {mimetype: 'application/vnd.oasis.opendocument.spreadsheet', puid: 'fmt/295'},
41
+ 'test.xls' => {mimetype: 'application/vnd.ms-excel', puid: 'fmt/61'},
42
+ 'test.xlsx' => {mimetype: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', puid: 'fmt/214'},
43
+ 'test.psd' => {mimetype: 'image/vnd.adobe.photoshop', puid: 'x-fmt/92'},
44
+ 'test.bmp' => {mimetype: 'image/bmp', puid: 'fmt/119'},
45
+ 'test.tif' => {mimetype: 'image/tiff', puid: 'fmt/353'},
46
+ 'test-jpg.tif' => {mimetype: 'image/tiff', puid: 'fmt/353'},
47
+ 'test-lzw.tif' => {mimetype: 'image/tiff', puid: 'fmt/353'},
48
+ 'test.ps' => {mimetype: 'application/postscript', puid: 'x-fmt/408'},
49
+ 'test.png' => {mimetype: 'image/png', puid: 'fmt/11'},
50
+ 'test.jpg' => {mimetype: 'image/jpeg', puid: 'fmt/43'},
51
+ 'test.gif' => {mimetype: 'image/gif', puid: 'fmt/4'},
52
+ 'test.xml' => {mimetype: 'application/xml', puid: 'fmt/101'},
53
+ 'test-ead.xml' => {mimetype: 'archive/ead', puid: 'fmt/101'},
54
+ }.each do |file, result|
55
+ it "should identify test document '#{file}'" do
56
+ expect(::Libis::Format::Identifier.get(File.join(dir,file))).to include result
57
+ end
58
+ end
59
+
60
+ end
@@ -0,0 +1,9 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'bundler/setup'
5
+ Bundler.setup
6
+
7
+ require 'rspec'
8
+ require 'libis-format'
9
+ require 'libis-tools'
@@ -0,0 +1,12 @@
1
+ TESTMEDIUM:
2
+ TESTDATA:
3
+ NAME: Test data format
4
+ MIME: test/data, application/test/data
5
+ PUID: test-fmt/001 spec-fmt/101
6
+ EXTENSIONS: dat data
7
+
8
+ TESTSPEC:
9
+ NEW: Test specification format
10
+ MIME: test/spec application/test/spec
11
+ PUID: test-fmt/002 spec-fmt/102
12
+ EXTENSIONS: spc,spec
@@ -0,0 +1,140 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe 'Type Databse' do
5
+
6
+ before :all do
7
+ ::Libis::Format::TypeDatabase.instance.load_types File.join(File.dirname(__FILE__), 'test_types.yml')
8
+ end
9
+
10
+ it 'should load types from file' do
11
+
12
+ expect(::Libis::Format::TypeDatabase.typeinfo :TESTDATA).to eq GROUP: :TESTMEDIUM,
13
+ TYPE: :TESTDATA,
14
+ NAME: 'Test data format',
15
+ PUID: %w'test-fmt/001 spec-fmt/101',
16
+ MIME: %w'test/data application/test/data',
17
+ EXTENSIONS: %w'dat data'
18
+ expect(::Libis::Format::TypeDatabase.typeinfo :TESTSPEC).to eq GROUP: :TESTMEDIUM,
19
+ TYPE: :TESTSPEC,
20
+ NEW: 'Test specification format',
21
+ PUID: %w'test-fmt/002 spec-fmt/102',
22
+ MIME: %w'test/spec application/test/spec',
23
+ EXTENSIONS: %w'spc spec'
24
+ end
25
+
26
+ it 'should get the type\'s group' do
27
+
28
+ expect(::Libis::Format::TypeDatabase.type_group :TESTDATA).to eq :TESTMEDIUM
29
+ expect(::Libis::Format::TypeDatabase.type_group :TESTSPEC).to eq :TESTMEDIUM
30
+
31
+ end
32
+
33
+ it 'should get the type\'s puids' do
34
+
35
+ expect(::Libis::Format::TypeDatabase.type_puids :TESTDATA).to eq %w'test-fmt/001 spec-fmt/101'
36
+ expect(::Libis::Format::TypeDatabase.type_puids :TESTSPEC).to eq %w'test-fmt/002 spec-fmt/102'
37
+
38
+ end
39
+
40
+ it 'should get the type\'s mimetypes' do
41
+
42
+ expect(::Libis::Format::TypeDatabase.type_mimetypes :TESTDATA).to eq %w'test/data application/test/data'
43
+ expect(::Libis::Format::TypeDatabase.type_mimetypes :TESTSPEC).to eq %w'test/spec application/test/spec'
44
+
45
+ end
46
+
47
+ it 'should get the type\'s extensions' do
48
+
49
+ expect(::Libis::Format::TypeDatabase.type_extentions :TESTDATA).to eq %w'dat data'
50
+ expect(::Libis::Format::TypeDatabase.type_extentions :TESTSPEC).to eq %w'spc spec'
51
+
52
+ end
53
+
54
+ it 'should get the group\'s types' do
55
+
56
+ expect(::Libis::Format::TypeDatabase.group_types :TESTMEDIUM).to eq [:TESTDATA, :TESTSPEC]
57
+
58
+ end
59
+
60
+ it 'should get the mimetype\'s types' do
61
+
62
+ expect(::Libis::Format::TypeDatabase.mime_types 'test/data').to eq [:TESTDATA]
63
+ expect(::Libis::Format::TypeDatabase.mime_types 'application/test/data').to eq [:TESTDATA]
64
+ expect(::Libis::Format::TypeDatabase.mime_types 'test/spec').to eq [:TESTSPEC]
65
+ expect(::Libis::Format::TypeDatabase.mime_types 'application/test/spec').to eq [:TESTSPEC]
66
+
67
+ end
68
+
69
+ it 'should get the mimetype\'s groups' do
70
+
71
+ expect(::Libis::Format::TypeDatabase.mime_groups 'test/data').to eq [:TESTMEDIUM]
72
+ expect(::Libis::Format::TypeDatabase.mime_groups 'application/test/data').to eq [:TESTMEDIUM]
73
+ expect(::Libis::Format::TypeDatabase.mime_groups 'test/spec').to eq [:TESTMEDIUM]
74
+ expect(::Libis::Format::TypeDatabase.mime_groups 'application/test/spec').to eq [:TESTMEDIUM]
75
+
76
+ end
77
+
78
+ it 'should get the extension\'s types' do
79
+
80
+ expect(::Libis::Format::TypeDatabase.ext_types 'dat').to eq [:TESTDATA]
81
+ expect(::Libis::Format::TypeDatabase.ext_types 'data').to eq [:TESTDATA]
82
+ expect(::Libis::Format::TypeDatabase.ext_types 'spc').to eq [:TESTSPEC]
83
+ expect(::Libis::Format::TypeDatabase.ext_types 'spec').to eq [:TESTSPEC]
84
+
85
+ end
86
+
87
+ it 'should check if mimetype is known' do
88
+
89
+ expect(::Libis::Format::TypeDatabase.known_mime? 'test/data').to be_truthy
90
+ expect(::Libis::Format::TypeDatabase.known_mime? 'test/spec').to be_truthy
91
+
92
+ end
93
+
94
+ it 'should load types from hash' do
95
+
96
+ ::Libis::Format::TypeDatabase.instance.load_types TESTMEDIUM: {
97
+ TESTREPORT: {
98
+ NAME: 'Test report format',
99
+ MIME: 'test/report application/test/report',
100
+ EXTENSIONS: 'rep'
101
+ }
102
+ }
103
+
104
+ expect(::Libis::Format::TypeDatabase.typeinfo :TESTREPORT).to eq GROUP: :TESTMEDIUM,
105
+ TYPE: :TESTREPORT,
106
+ NAME: 'Test report format',
107
+ MIME: %w'test/report application/test/report',
108
+ EXTENSIONS: %w'rep'
109
+
110
+ end
111
+
112
+ it 'should merge types from hash' do
113
+
114
+ ::Libis::Format::TypeDatabase.instance.load_types TESTMEDIUM: {
115
+ TESTREPORT: {
116
+ EXTENSIONS: 'rpt'
117
+ }
118
+ }
119
+
120
+ expect(::Libis::Format::TypeDatabase.typeinfo :TESTREPORT).to eq GROUP: :TESTMEDIUM,
121
+ TYPE: :TESTREPORT,
122
+ NAME: 'Test report format',
123
+ MIME: %w'test/report application/test/report',
124
+ EXTENSIONS: %w'rep rpt'
125
+
126
+ ::Libis::Format::TypeDatabase.instance.load_types({TESTMEDIUM: {
127
+ TESTREPORT: {
128
+ EXTENSIONS: 'report'
129
+ }
130
+ }}, false)
131
+
132
+ expect(::Libis::Format::TypeDatabase.typeinfo :TESTREPORT).to eq GROUP: :TESTMEDIUM,
133
+ TYPE: :TESTREPORT,
134
+ NAME: 'Test report format',
135
+ MIME: %w'test/report application/test/report',
136
+ EXTENSIONS: %w'report rep rpt'
137
+
138
+ end
139
+
140
+ end
data/tools/PdfTool.jar ADDED
Binary file
Binary file
Binary file