aspera-cli 4.5.0 → 4.8.0

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.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +1 -0
  3. data/README.md +1894 -1574
  4. data/bin/ascli +21 -1
  5. data/bin/asession +38 -34
  6. data/docs/test_env.conf +14 -3
  7. data/examples/aoc.rb +17 -15
  8. data/examples/dascli +26 -0
  9. data/examples/faspex4.rb +42 -35
  10. data/examples/proxy.pac +1 -1
  11. data/examples/transfer.rb +38 -37
  12. data/lib/aspera/aoc.rb +245 -205
  13. data/lib/aspera/ascmd.rb +111 -90
  14. data/lib/aspera/ats_api.rb +16 -14
  15. data/lib/aspera/cli/basic_auth_plugin.rb +19 -18
  16. data/lib/aspera/cli/extended_value.rb +50 -39
  17. data/lib/aspera/cli/formater.rb +161 -135
  18. data/lib/aspera/cli/info.rb +18 -0
  19. data/lib/aspera/cli/listener/line_dump.rb +4 -2
  20. data/lib/aspera/cli/listener/logger.rb +3 -1
  21. data/lib/aspera/cli/listener/progress.rb +20 -21
  22. data/lib/aspera/cli/listener/progress_multi.rb +29 -31
  23. data/lib/aspera/cli/main.rb +194 -183
  24. data/lib/aspera/cli/manager.rb +213 -206
  25. data/lib/aspera/cli/plugin.rb +71 -49
  26. data/lib/aspera/cli/plugins/alee.rb +8 -7
  27. data/lib/aspera/cli/plugins/aoc.rb +675 -558
  28. data/lib/aspera/cli/plugins/ats.rb +116 -109
  29. data/lib/aspera/cli/plugins/bss.rb +35 -34
  30. data/lib/aspera/cli/plugins/config.rb +722 -542
  31. data/lib/aspera/cli/plugins/console.rb +28 -22
  32. data/lib/aspera/cli/plugins/cos.rb +28 -37
  33. data/lib/aspera/cli/plugins/faspex.rb +281 -227
  34. data/lib/aspera/cli/plugins/faspex5.rb +129 -84
  35. data/lib/aspera/cli/plugins/node.rb +426 -232
  36. data/lib/aspera/cli/plugins/orchestrator.rb +106 -98
  37. data/lib/aspera/cli/plugins/preview.rb +196 -191
  38. data/lib/aspera/cli/plugins/server.rb +131 -126
  39. data/lib/aspera/cli/plugins/shares.rb +49 -36
  40. data/lib/aspera/cli/plugins/sync.rb +27 -28
  41. data/lib/aspera/cli/transfer_agent.rb +84 -79
  42. data/lib/aspera/cli/version.rb +3 -1
  43. data/lib/aspera/colors.rb +37 -28
  44. data/lib/aspera/command_line_builder.rb +84 -63
  45. data/lib/aspera/cos_node.rb +68 -34
  46. data/lib/aspera/data_repository.rb +4 -2
  47. data/lib/aspera/environment.rb +61 -46
  48. data/lib/aspera/fasp/agent_base.rb +36 -31
  49. data/lib/aspera/fasp/agent_connect.rb +44 -37
  50. data/lib/aspera/fasp/agent_direct.rb +101 -104
  51. data/lib/aspera/fasp/agent_httpgw.rb +91 -90
  52. data/lib/aspera/fasp/agent_node.rb +36 -33
  53. data/lib/aspera/fasp/agent_trsdk.rb +28 -31
  54. data/lib/aspera/fasp/error.rb +3 -1
  55. data/lib/aspera/fasp/error_info.rb +81 -54
  56. data/lib/aspera/fasp/installation.rb +171 -151
  57. data/lib/aspera/fasp/listener.rb +2 -0
  58. data/lib/aspera/fasp/parameters.rb +105 -111
  59. data/lib/aspera/fasp/parameters.yaml +305 -249
  60. data/lib/aspera/fasp/resume_policy.rb +20 -20
  61. data/lib/aspera/fasp/transfer_spec.rb +27 -0
  62. data/lib/aspera/fasp/uri.rb +31 -29
  63. data/lib/aspera/faspex_gw.rb +95 -118
  64. data/lib/aspera/hash_ext.rb +12 -13
  65. data/lib/aspera/id_generator.rb +11 -9
  66. data/lib/aspera/keychain/encrypted_hash.rb +73 -57
  67. data/lib/aspera/keychain/macos_security.rb +27 -29
  68. data/lib/aspera/log.rb +40 -39
  69. data/lib/aspera/nagios.rb +24 -22
  70. data/lib/aspera/node.rb +38 -30
  71. data/lib/aspera/oauth.rb +217 -248
  72. data/lib/aspera/open_application.rb +9 -7
  73. data/lib/aspera/persistency_action_once.rb +15 -14
  74. data/lib/aspera/persistency_folder.rb +15 -18
  75. data/lib/aspera/preview/file_types.rb +266 -270
  76. data/lib/aspera/preview/generator.rb +94 -92
  77. data/lib/aspera/preview/image_error.png +0 -0
  78. data/lib/aspera/preview/options.rb +20 -17
  79. data/lib/aspera/preview/utils.rb +99 -102
  80. data/lib/aspera/preview/video_error.png +0 -0
  81. data/lib/aspera/{proxy_auto_config.erb.js → proxy_auto_config.js} +23 -31
  82. data/lib/aspera/proxy_auto_config.rb +114 -21
  83. data/lib/aspera/rest.rb +144 -142
  84. data/lib/aspera/rest_call_error.rb +3 -2
  85. data/lib/aspera/rest_error_analyzer.rb +31 -31
  86. data/lib/aspera/rest_errors_aspera.rb +18 -16
  87. data/lib/aspera/secret_hider.rb +68 -0
  88. data/lib/aspera/ssh.rb +20 -16
  89. data/lib/aspera/sync.rb +57 -54
  90. data/lib/aspera/temp_file_manager.rb +20 -14
  91. data/lib/aspera/timer_limiter.rb +10 -8
  92. data/lib/aspera/uri_reader.rb +14 -15
  93. data/lib/aspera/web_auth.rb +85 -80
  94. data.tar.gz.sig +0 -0
  95. metadata +169 -40
  96. metadata.gz.sig +2 -0
  97. data/bin/dascli +0 -13
  98. data/docs/Makefile +0 -63
  99. data/docs/README.erb.md +0 -4221
  100. data/docs/README.md +0 -13
  101. data/docs/diagrams.txt +0 -49
  102. data/docs/doc_tools.rb +0 -58
  103. data/lib/aspera/cli/plugins/shares2.rb +0 -114
  104. data/lib/aspera/fasp/default.rb +0 -17
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'aspera/log'
2
4
  require 'singleton'
3
5
 
@@ -7,270 +9,264 @@ module Aspera
7
9
  class FileTypes
8
10
  include Singleton
9
11
  # values for conversion_type : input format
10
- CONVERSION_TYPES=[
11
- :image,
12
- :office,
13
- :pdf,
14
- :plaintext,
15
- :video
16
- ]
12
+ CONVERSION_TYPES = %i[image office pdf plaintext video].freeze
17
13
 
18
14
  # define how files are processed based on mime type
19
- SUPPORTED_MIME_TYPES={
20
- 'application/json' => :plaintext,
21
- 'application/mac-binhex40' => :office,
22
- 'application/msword' => :office,
23
- 'application/pdf' => :pdf,
24
- 'application/postscript' => :image,
25
- 'application/rtf' => :office,
26
- 'application/vnd.3gpp.pic-bw-small' => :image,
27
- 'application/vnd.hp-hpgl' => :image,
28
- 'application/vnd.hp-pcl' => :image,
29
- 'application/vnd.lotus-wordpro' => :office,
30
- 'application/vnd.mobius.msl' => :image,
31
- 'application/vnd.mophun.certificate' => :image,
32
- 'application/vnd.ms-excel' => :office,
33
- 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => :office,
34
- 'application/vnd.ms-excel.sheet.macroenabled.12' => :office,
35
- 'application/vnd.ms-excel.template.macroenabled.12' => :office,
36
- 'application/vnd.ms-powerpoint' => :office,
37
- 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => :office,
38
- 'application/vnd.ms-powerpoint.template.macroenabled.12' => :office,
39
- 'application/vnd.ms-word.document.macroenabled.12' => :office,
40
- 'application/vnd.ms-word.template.macroenabled.12' => :office,
41
- 'application/vnd.ms-works' => :office,
42
- 'application/vnd.oasis.opendocument.chart' => :office,
43
- 'application/vnd.oasis.opendocument.formula' => :office,
44
- 'application/vnd.oasis.opendocument.graphics' => :office,
45
- 'application/vnd.oasis.opendocument.graphics-template' => :office,
46
- 'application/vnd.oasis.opendocument.presentation' => :office,
47
- 'application/vnd.oasis.opendocument.presentation-template' => :office,
48
- 'application/vnd.oasis.opendocument.spreadsheet' => :office,
49
- 'application/vnd.oasis.opendocument.spreadsheet-template' => :office,
50
- 'application/vnd.oasis.opendocument.text' => :office,
51
- 'application/vnd.oasis.opendocument.text-template' => :office,
15
+ SUPPORTED_MIME_TYPES = {
16
+ 'application/json' => :plaintext,
17
+ 'application/mac-binhex40' => :office,
18
+ 'application/msword' => :office,
19
+ 'application/pdf' => :pdf,
20
+ 'application/postscript' => :image,
21
+ 'application/rtf' => :office,
22
+ 'application/vnd.3gpp.pic-bw-small' => :image,
23
+ 'application/vnd.hp-hpgl' => :image,
24
+ 'application/vnd.hp-pcl' => :image,
25
+ 'application/vnd.lotus-wordpro' => :office,
26
+ 'application/vnd.mobius.msl' => :image,
27
+ 'application/vnd.mophun.certificate' => :image,
28
+ 'application/vnd.ms-excel' => :office,
29
+ 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => :office,
30
+ 'application/vnd.ms-excel.sheet.macroenabled.12' => :office,
31
+ 'application/vnd.ms-excel.template.macroenabled.12' => :office,
32
+ 'application/vnd.ms-powerpoint' => :office,
33
+ 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => :office,
34
+ 'application/vnd.ms-powerpoint.template.macroenabled.12' => :office,
35
+ 'application/vnd.ms-word.document.macroenabled.12' => :office,
36
+ 'application/vnd.ms-word.template.macroenabled.12' => :office,
37
+ 'application/vnd.ms-works' => :office,
38
+ 'application/vnd.oasis.opendocument.chart' => :office,
39
+ 'application/vnd.oasis.opendocument.formula' => :office,
40
+ 'application/vnd.oasis.opendocument.graphics' => :office,
41
+ 'application/vnd.oasis.opendocument.graphics-template' => :office,
42
+ 'application/vnd.oasis.opendocument.presentation' => :office,
43
+ 'application/vnd.oasis.opendocument.presentation-template' => :office,
44
+ 'application/vnd.oasis.opendocument.spreadsheet' => :office,
45
+ 'application/vnd.oasis.opendocument.spreadsheet-template' => :office,
46
+ 'application/vnd.oasis.opendocument.text' => :office,
47
+ 'application/vnd.oasis.opendocument.text-template' => :office,
52
48
  'application/vnd.openxmlformats-officedocument.presentationml.presentation' => :office,
53
- 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => :office,
54
- 'application/vnd.openxmlformats-officedocument.presentationml.template' => :office,
55
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => :office,
56
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => :office,
57
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => :office,
58
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => :office,
59
- 'application/vnd.palm' => :office,
60
- 'application/vnd.sun.xml.calc' => :office,
61
- 'application/vnd.sun.xml.calc.template' => :office,
62
- 'application/vnd.sun.xml.draw' => :office,
63
- 'application/vnd.sun.xml.draw.template' => :office,
64
- 'application/vnd.sun.xml.impress' => :office,
65
- 'application/vnd.sun.xml.impress.template' => :office,
66
- 'application/vnd.sun.xml.math' => :office,
67
- 'application/vnd.sun.xml.writer' => :office,
68
- 'application/vnd.sun.xml.writer.template' => :office,
69
- 'application/vnd.wordperfect' => :office,
70
- 'application/x-abiword' => :office,
71
- 'application/x-director' => :image,
72
- 'application/x-font-type1' => :image,
73
- 'application/x-msmetafile' => :image,
74
- 'application/x-mspublisher' => :office,
75
- 'application/x-xfig' => :image,
76
- 'audio/ogg' => :video,
77
- 'font/ttf' => :image,
78
- 'image/bmp' => :image,
79
- 'image/cgm' => :image,
80
- 'image/gif' => :image,
81
- 'image/jpeg' => :image,
82
- 'image/png' => :image,
83
- 'image/sgi' => :image,
84
- 'image/svg+xml' => :image,
85
- 'image/tiff' => :image,
86
- 'image/vnd.adobe.photoshop' => :image,
87
- 'image/vnd.djvu' => :image,
88
- 'image/vnd.dxf' => :office,
89
- 'image/vnd.fpx' => :image,
90
- 'image/vnd.ms-photo' => :image,
91
- 'image/vnd.wap.wbmp' => :image,
92
- 'image/webp' => :image,
93
- 'image/x-cmx' => :office,
94
- 'image/x-freehand' => :office,
95
- 'image/x-icon' => :image,
96
- 'image/x-mrsid-image' => :image,
97
- 'image/x-pcx' => :image,
98
- 'image/x-pict' => :office,
99
- 'image/x-portable-anymap' => :image,
100
- 'image/x-portable-bitmap' => :image,
101
- 'image/x-portable-graymap' => :image,
102
- 'image/x-portable-pixmap' => :image,
103
- 'image/x-rgb' => :image,
104
- 'image/x-tga' => :image,
105
- 'image/x-xbitmap' => :image,
106
- 'image/x-xpixmap' => :image,
107
- 'image/x-xwindowdump' => :image,
108
- 'text/csv' => :office,
109
- 'text/html' => :office,
110
- 'text/plain' => :plaintext,
111
- 'text/troff' => :image,
112
- 'video/h261' => :video,
113
- 'video/h263' => :video,
114
- 'video/h264' => :video,
115
- 'video/mp4' => :video,
116
- 'video/mpeg' => :video,
117
- 'video/quicktime' => :video,
118
- 'video/x-flv' => :video,
119
- 'video/x-m4v' => :video,
120
- 'video/x-matroska' => :video,
121
- 'video/x-mng' => :image,
122
- 'video/x-ms-wmv' => :video,
123
- 'video/x-msvideo' => :video}
49
+ 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => :office,
50
+ 'application/vnd.openxmlformats-officedocument.presentationml.template' => :office,
51
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => :office,
52
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => :office,
53
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => :office,
54
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => :office,
55
+ 'application/vnd.palm' => :office,
56
+ 'application/vnd.sun.xml.calc' => :office,
57
+ 'application/vnd.sun.xml.calc.template' => :office,
58
+ 'application/vnd.sun.xml.draw' => :office,
59
+ 'application/vnd.sun.xml.draw.template' => :office,
60
+ 'application/vnd.sun.xml.impress' => :office,
61
+ 'application/vnd.sun.xml.impress.template' => :office,
62
+ 'application/vnd.sun.xml.math' => :office,
63
+ 'application/vnd.sun.xml.writer' => :office,
64
+ 'application/vnd.sun.xml.writer.template' => :office,
65
+ 'application/vnd.wordperfect' => :office,
66
+ 'application/x-abiword' => :office,
67
+ 'application/x-director' => :image,
68
+ 'application/x-font-type1' => :image,
69
+ 'application/x-msmetafile' => :image,
70
+ 'application/x-mspublisher' => :office,
71
+ 'application/x-xfig' => :image,
72
+ 'audio/ogg' => :video,
73
+ 'font/ttf' => :image,
74
+ 'image/bmp' => :image,
75
+ 'image/cgm' => :image,
76
+ 'image/gif' => :image,
77
+ 'image/jpeg' => :image,
78
+ 'image/png' => :image,
79
+ 'image/sgi' => :image,
80
+ 'image/svg+xml' => :image,
81
+ 'image/tiff' => :image,
82
+ 'image/vnd.adobe.photoshop' => :image,
83
+ 'image/vnd.djvu' => :image,
84
+ 'image/vnd.dxf' => :office,
85
+ 'image/vnd.fpx' => :image,
86
+ 'image/vnd.ms-photo' => :image,
87
+ 'image/vnd.wap.wbmp' => :image,
88
+ 'image/webp' => :image,
89
+ 'image/x-cmx' => :office,
90
+ 'image/x-freehand' => :office,
91
+ 'image/x-icon' => :image,
92
+ 'image/x-mrsid-image' => :image,
93
+ 'image/x-pcx' => :image,
94
+ 'image/x-pict' => :office,
95
+ 'image/x-portable-anymap' => :image,
96
+ 'image/x-portable-bitmap' => :image,
97
+ 'image/x-portable-graymap' => :image,
98
+ 'image/x-portable-pixmap' => :image,
99
+ 'image/x-rgb' => :image,
100
+ 'image/x-tga' => :image,
101
+ 'image/x-xbitmap' => :image,
102
+ 'image/x-xpixmap' => :image,
103
+ 'image/x-xwindowdump' => :image,
104
+ 'text/csv' => :office,
105
+ 'text/html' => :office,
106
+ 'text/plain' => :plaintext,
107
+ 'text/troff' => :image,
108
+ 'video/h261' => :video,
109
+ 'video/h263' => :video,
110
+ 'video/h264' => :video,
111
+ 'video/mp4' => :video,
112
+ 'video/mpeg' => :video,
113
+ 'video/quicktime' => :video,
114
+ 'video/x-flv' => :video,
115
+ 'video/x-m4v' => :video,
116
+ 'video/x-matroska' => :video,
117
+ 'video/x-mng' => :image,
118
+ 'video/x-ms-wmv' => :video,
119
+ 'video/x-msvideo' => :video}.freeze
124
120
 
125
121
  # this is a way to add support for extensions that are otherwise not known by node api (mime type)
126
- SUPPORTED_EXTENSIONS={
127
- 'aai' => :image,
128
- 'art' => :image,
129
- 'arw' => :image,
130
- 'avs' => :image,
131
- 'bmp2' => :image,
132
- 'bmp3' => :image,
133
- 'bpg' => :image,
134
- 'cals' => :image,
135
- 'cdr' => :office,
136
- 'cin' => :image,
137
- 'clipboard' => :image,
138
- 'cmyk' => :image,
139
- 'cmyka' => :image,
140
- 'cr2' => :image,
141
- 'crw' => :image,
142
- 'cur' => :image,
143
- 'cut' => :image,
144
- 'cwk' => :office,
145
- 'dbf' => :office,
146
- 'dcm' => :image,
147
- 'dcx' => :image,
148
- 'dds' => :image,
149
- 'dib' => :image,
150
- 'dif' => :office,
151
- 'divx' => :video,
152
- 'dng' => :image,
153
- 'docx' => :office,
154
- 'dpx' => :image,
155
- 'epdf' => :image,
156
- 'epi' => :image,
157
- 'eps2' => :image,
158
- 'eps3' => :image,
159
- 'epsf' => :image,
160
- 'epsi' => :image,
161
- 'ept' => :image,
162
- 'exr' => :image,
163
- 'fax' => :image,
164
- 'fb2' => :office,
165
- 'fits' => :image,
166
- 'fodg' => :office,
167
- 'fodp' => :office,
168
- 'fods' => :office,
169
- 'fodt' => :office,
170
- 'gplt' => :image,
171
- 'gray' => :image,
172
- 'hdr' => :image,
173
- 'hpw' => :office,
174
- 'hrz' => :image,
175
- 'info' => :image,
176
- 'inline' => :image,
177
- 'j2c' => :image,
178
- 'j2k' => :image,
179
- 'jbig' => :image,
180
- 'jng' => :image,
181
- 'jp2' => :image,
182
- 'jpt' => :image,
183
- 'jxr' => :image,
184
- 'key' => :office,
185
- 'log' => :plaintext,
186
- 'mat' => :image,
187
- 'mcw' => :office,
188
- 'met' => :office,
189
- 'miff' => :image,
190
- 'mml' => :office,
191
- 'mono' => :image,
192
- 'mpr' => :image,
193
- 'mrsid' => :image,
194
- 'mrw' => :image,
195
- 'mtv' => :image,
196
- 'mvg' => :image,
197
- 'mw' => :office,
198
- 'mwd' => :office,
199
- 'mxf' => :video,
200
- 'nef' => :image,
201
- 'numbers' => :office,
202
- 'orf' => :image,
203
- 'otb' => :image,
204
- 'p7' => :image,
205
- 'pages' => :office,
206
- 'palm' => :image,
207
- 'pam' => :image,
208
- 'pcd' => :image,
209
- 'pcds' => :image,
210
- 'pdf' => :pdf,
211
- 'pef' => :image,
212
- 'picon' => :image,
213
- 'pict' => :image,
214
- 'pix' => :image,
215
- 'pm' => :office,
216
- 'pm6' => :office,
217
- 'pmd' => :office,
218
- 'png00' => :image,
219
- 'png24' => :image,
220
- 'png32' => :image,
221
- 'png48' => :image,
222
- 'png64' => :image,
223
- 'png8' => :image,
224
- 'ps2' => :image,
225
- 'ps3' => :image,
226
- 'ptif' => :image,
227
- 'pwp' => :image,
228
- 'rad' => :image,
229
- 'raf' => :image,
230
- 'rfg' => :image,
231
- 'rgba' => :image,
232
- 'rla' => :image,
233
- 'rle' => :image,
234
- 'sct' => :image,
235
- 'sfw' => :image,
236
- 'sgf' => :office,
237
- 'sgv' => :office,
238
- 'slk' => :office,
122
+ SUPPORTED_EXTENSIONS = {
123
+ 'aai' => :image,
124
+ 'art' => :image,
125
+ 'arw' => :image,
126
+ 'avs' => :image,
127
+ 'bmp2' => :image,
128
+ 'bmp3' => :image,
129
+ 'bpg' => :image,
130
+ 'cals' => :image,
131
+ 'cdr' => :office,
132
+ 'cin' => :image,
133
+ 'clipboard' => :image,
134
+ 'cmyk' => :image,
135
+ 'cmyka' => :image,
136
+ 'cr2' => :image,
137
+ 'crw' => :image,
138
+ 'cur' => :image,
139
+ 'cut' => :image,
140
+ 'cwk' => :office,
141
+ 'dbf' => :office,
142
+ 'dcm' => :image,
143
+ 'dcx' => :image,
144
+ 'dds' => :image,
145
+ 'dib' => :image,
146
+ 'dif' => :office,
147
+ 'divx' => :video,
148
+ 'dng' => :image,
149
+ 'docx' => :office,
150
+ 'dpx' => :image,
151
+ 'epdf' => :image,
152
+ 'epi' => :image,
153
+ 'eps2' => :image,
154
+ 'eps3' => :image,
155
+ 'epsf' => :image,
156
+ 'epsi' => :image,
157
+ 'ept' => :image,
158
+ 'exr' => :image,
159
+ 'fax' => :image,
160
+ 'fb2' => :office,
161
+ 'fits' => :image,
162
+ 'fodg' => :office,
163
+ 'fodp' => :office,
164
+ 'fods' => :office,
165
+ 'fodt' => :office,
166
+ 'gplt' => :image,
167
+ 'gray' => :image,
168
+ 'hdr' => :image,
169
+ 'hpw' => :office,
170
+ 'hrz' => :image,
171
+ 'info' => :image,
172
+ 'inline' => :image,
173
+ 'j2c' => :image,
174
+ 'j2k' => :image,
175
+ 'jbig' => :image,
176
+ 'jng' => :image,
177
+ 'jp2' => :image,
178
+ 'jpt' => :image,
179
+ 'jxr' => :image,
180
+ 'key' => :office,
181
+ 'log' => :plaintext,
182
+ 'mat' => :image,
183
+ 'mcw' => :office,
184
+ 'met' => :office,
185
+ 'miff' => :image,
186
+ 'mml' => :office,
187
+ 'mono' => :image,
188
+ 'mpr' => :image,
189
+ 'mrsid' => :image,
190
+ 'mrw' => :image,
191
+ 'mtv' => :image,
192
+ 'mvg' => :image,
193
+ 'mw' => :office,
194
+ 'mwd' => :office,
195
+ 'mxf' => :video,
196
+ 'nef' => :image,
197
+ 'numbers' => :office,
198
+ 'orf' => :image,
199
+ 'otb' => :image,
200
+ 'p7' => :image,
201
+ 'pages' => :office,
202
+ 'palm' => :image,
203
+ 'pam' => :image,
204
+ 'pcd' => :image,
205
+ 'pcds' => :image,
206
+ 'pdf' => :pdf,
207
+ 'pef' => :image,
208
+ 'picon' => :image,
209
+ 'pict' => :image,
210
+ 'pix' => :image,
211
+ 'pm' => :office,
212
+ 'pm6' => :office,
213
+ 'pmd' => :office,
214
+ 'png00' => :image,
215
+ 'png24' => :image,
216
+ 'png32' => :image,
217
+ 'png48' => :image,
218
+ 'png64' => :image,
219
+ 'png8' => :image,
220
+ 'ps2' => :image,
221
+ 'ps3' => :image,
222
+ 'ptif' => :image,
223
+ 'pwp' => :image,
224
+ 'rad' => :image,
225
+ 'raf' => :image,
226
+ 'rfg' => :image,
227
+ 'rgba' => :image,
228
+ 'rla' => :image,
229
+ 'rle' => :image,
230
+ 'sct' => :image,
231
+ 'sfw' => :image,
232
+ 'sgf' => :office,
233
+ 'sgv' => :office,
234
+ 'slk' => :office,
239
235
  'sparse-color' => :image,
240
- 'sun' => :image,
241
- 'svm' => :office,
242
- 'sylk' => :office,
243
- 'tim' => :image,
244
- 'txt' => :plaintext,
245
- 'uil' => :image,
246
- 'uof' => :office,
247
- 'uop' => :office,
248
- 'uos' => :office,
249
- 'uot' => :office,
250
- 'uyvy' => :image,
251
- 'vds' => :office,
252
- 'vdx' => :office,
253
- 'vicar' => :image,
254
- 'viff' => :image,
255
- 'vsdx' => :office,
256
- 'webm' => :video,
257
- 'wb2' => :office,
258
- 'wk1' => :office,
259
- 'wk3' => :office,
260
- 'wn' => :office,
261
- 'wpg' => :image,
262
- 'wq1' => :office,
263
- 'wq2' => :office,
264
- 'x' => :image,
265
- 'x3f' => :image,
266
- 'xcf' => :image,
267
- 'xlk' => :office,
268
- 'xlsx' => :office,
269
- 'xls' => :office,
270
- 'ycbcr' => :image,
271
- 'ycbcra' => :image,
272
- 'yuv' => :image,
273
- 'zabw' => :office}
236
+ 'sun' => :image,
237
+ 'svm' => :office,
238
+ 'sylk' => :office,
239
+ 'tim' => :image,
240
+ 'txt' => :plaintext,
241
+ 'uil' => :image,
242
+ 'uof' => :office,
243
+ 'uop' => :office,
244
+ 'uos' => :office,
245
+ 'uot' => :office,
246
+ 'uyvy' => :image,
247
+ 'vds' => :office,
248
+ 'vdx' => :office,
249
+ 'vicar' => :image,
250
+ 'viff' => :image,
251
+ 'vsdx' => :office,
252
+ 'webm' => :video,
253
+ 'wb2' => :office,
254
+ 'wk1' => :office,
255
+ 'wk3' => :office,
256
+ 'wn' => :office,
257
+ 'wpg' => :image,
258
+ 'wq1' => :office,
259
+ 'wq2' => :office,
260
+ 'x' => :image,
261
+ 'x3f' => :image,
262
+ 'xcf' => :image,
263
+ 'xlk' => :office,
264
+ 'xlsx' => :office,
265
+ 'xls' => :office,
266
+ 'ycbcr' => :image,
267
+ 'ycbcra' => :image,
268
+ 'yuv' => :image,
269
+ 'zabw' => :office}.freeze
274
270
 
275
271
  private_constant :SUPPORTED_MIME_TYPES, :SUPPORTED_EXTENSIONS
276
272
 
@@ -278,7 +274,7 @@ module Aspera
278
274
  attr_accessor :use_mimemagic
279
275
 
280
276
  def initialize
281
- @use_mimemagic=false
277
+ @use_mimemagic = false
282
278
  end
283
279
 
284
280
  # use mime magic to find mime type based on file content (magic numbers)
@@ -288,13 +284,13 @@ module Aspera
288
284
  require 'mimemagic/version'
289
285
  require 'mimemagic/overlay' if MimeMagic::VERSION.start_with?('0.3.')
290
286
  # check magic number inside file (empty string if not found)
291
- detected_mime=MimeMagic.by_magic(File.open(filepath)).to_s
287
+ detected_mime = MimeMagic.by_magic(File.open(filepath)).to_s
292
288
  # check extension only
293
289
  if !SUPPORTED_MIME_TYPES.has_key?(detected_mime)
294
290
  Log.log.debug("no conversion for #{detected_mime}, trying extension")
295
- detected_mime=MimeMagic.by_extension(File.extname(filepath)).to_s
291
+ detected_mime = MimeMagic.by_extension(File.extname(filepath)).to_s
296
292
  end
297
- detected_mime=nil if detected_mime.empty?
293
+ detected_mime = nil if detected_mime.empty?
298
294
  Log.log.debug("mimemagic: #{detected_mime.class.name} [#{detected_mime}]")
299
295
  return detected_mime
300
296
  end
@@ -305,15 +301,15 @@ module Aspera
305
301
  def conversion_type(filepath,mimetype)
306
302
  Log.log.debug("conversion_type(#{filepath},m=#{mimetype},t=#{@use_mimemagic})")
307
303
  # 1- get type from provided mime type, using local mapping
308
- conv_type=SUPPORTED_MIME_TYPES[mimetype] if ! mimetype.nil?
304
+ conv_type = SUPPORTED_MIME_TYPES[mimetype] if !mimetype.nil?
309
305
  # 2- else, from computed mime type (if available)
310
- if conv_type.nil? and @use_mimemagic
311
- detected_mime=mime_from_file(filepath)
312
- if ! detected_mime.nil?
313
- conv_type=SUPPORTED_MIME_TYPES[detected_mime]
314
- if ! mimetype.nil?
306
+ if conv_type.nil? && @use_mimemagic
307
+ detected_mime = mime_from_file(filepath)
308
+ if !detected_mime.nil?
309
+ conv_type = SUPPORTED_MIME_TYPES[detected_mime]
310
+ if !mimetype.nil?
315
311
  if mimetype.eql?(detected_mime)
316
- Log.log.debug("matching mime type per magic number")
312
+ Log.log.debug('matching mime type per magic number')
317
313
  else
318
314
  # note: detected can be nil
319
315
  Log.log.debug("non matching mime types: node=[#{mimetype}], magic=[#{detected_mime}]")
@@ -323,7 +319,7 @@ module Aspera
323
319
  end
324
320
  # 3- else, from extensions, using local mapping
325
321
  extension = File.extname(filepath.downcase)[1..-1]
326
- conv_type=SUPPORTED_EXTENSIONS[extension] if conv_type.nil?
322
+ conv_type = SUPPORTED_EXTENSIONS[extension] if conv_type.nil?
327
323
  Log.log.debug("conversion_type(#{extension}): #{conv_type.class.name} [#{conv_type}]")
328
324
  return conv_type
329
325
  end