Class: Hyrax::ActiveEncode::ActiveEncodeDerivativeService

Inherits:
DerivativeService
  • Object
show all
Defined in:
app/services/hyrax/active_encode/active_encode_derivative_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_set, encode_class: ::ActiveEncode::Base, options_service_class: DefaultOptionService, local_streaming: true) ⇒ ActiveEncodeDerivativeService

Returns a new instance of ActiveEncodeDerivativeService.



9
10
11
12
13
14
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 9

def initialize(file_set, encode_class: ::ActiveEncode::Base, options_service_class: DefaultOptionService, local_streaming: true)
  super(file_set)
  @encode_class = encode_class
  @options_service_class = options_service_class
  @local_streaming = local_streaming
end

Instance Attribute Details

#encode_classObject

Returns the value of attribute encode_class.



7
8
9
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 7

def encode_class
  @encode_class
end

#options_service_classObject

Returns the value of attribute options_service_class.



7
8
9
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 7

def options_service_class
  @options_service_class
end

Instance Method Details

#cleanup_derivativesObject

TODO: Implement this?



36
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 36

def cleanup_derivatives; end

#create_derivatives(filename) ⇒ Object



16
17
18
19
20
21
22
23
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 16

def create_derivatives(filename)
  options = options_service_class.call(@file_set)
  options.each do |option|
    option[:file_set_id] = file_set.id
    option[:local_streaming] = true if local_streaming?
  end
  Hydra::Derivatives::ActiveEncodeDerivatives.create(filename, outputs: options, encode_class: @encode_class)
end

#derivative_url(file_label) ⇒ Object

What should this return?



26
27
28
29
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 26

def derivative_url(file_label)
  derivative = file_set.derivatives.find { |d| d.label.first == file_label }
  derivative.nil? ? nil : derivative.external_file_uri.first
end

#local_streaming?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 38

def local_streaming?
  @local_streaming == true
end

#valid?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 31

def valid?
  supported_mime_types.include?(file_set.mime_type) && file_set.class.include?(Hyrax::ActiveEncode::FileSetBehavior)
end