Module: Hydra::Derivatives::ShellBasedProcessor
- Extended by:
- ActiveSupport::Concern
- Included in:
- Document, Jpeg2kImage
- Defined in:
- lib/hydra/derivatives/shell_based_processor.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #encode_datastream(dest_dsid, file_suffix, mime_type, options = '') ⇒ Object
-
#options_for(format) ⇒ Object
override this method in subclass if you want to provide specific options.
- #process ⇒ Object
Instance Method Details
#encode_datastream(dest_dsid, file_suffix, mime_type, options = '') ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/hydra/derivatives/shell_based_processor.rb', line 29 def encode_datastream(dest_dsid, file_suffix, mime_type, = '') out_file = nil output_file = Dir::Tmpname.create(['sufia', ".#{file_suffix}"], Hydra::Derivatives.temp_file_base){} source_datastream.to_tempfile do |f| self.class.encode(f.path, , output_file) end out_file = File.open(output_file, "rb") object.add_file_datastream(out_file.read, :dsid=>dest_dsid, :mimeType=>mime_type) File.unlink(output_file) end |
#options_for(format) ⇒ Object
override this method in subclass if you want to provide specific options.
26 27 |
# File 'lib/hydra/derivatives/shell_based_processor.rb', line 26 def (format) end |
#process ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/hydra/derivatives/shell_based_processor.rb', line 15 def process directives.each do |name, args| format = args[:format] raise ArgumentError, "You must provide the :format you want to transcode into. You provided #{args}" unless format # TODO if the source is in the correct format, we could just copy it and skip transcoding. output_datastream_name = args[:datastream] || output_datastream_id(name) encode_datastream(output_datastream_name, format, new_mime_type(format), (format)) end end |