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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_set, encode_class: self.class.default_encode_class, options_service_class: self.class.default_options_service_class, local_streaming: self.class.default_local_streaming) ⇒ ActiveEncodeDerivativeService

Returns a new instance of ActiveEncodeDerivativeService.



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

def initialize(file_set, encode_class: self.class.default_encode_class, options_service_class: self.class.default_options_service_class, local_streaming: self.class.default_local_streaming)
  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.



33
34
35
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 33

def encode_class
  @encode_class
end

#options_service_classObject

Returns the value of attribute options_service_class.



33
34
35
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 33

def options_service_class
  @options_service_class
end

Class Method Details

.default_encode_classObject



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

def default_encode_class
  @@default_encode_class ||= ::ActiveEncode::Base
end

.default_encode_class=(klass) ⇒ Object



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

def default_encode_class=(klass)
  @@default_encode_class = klass
end

.default_local_streamingObject



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

def default_local_streaming
  @@default_local_streaming ||= true
end

.default_local_streaming=(local_streaming) ⇒ Object



24
25
26
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 24

def default_local_streaming=(local_streaming)
  @@default_local_streaming = local_streaming
end

.default_options_service_classObject



20
21
22
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 20

def default_options_service_class
  @@default_options_service_class ||= Hyrax::ActiveEncode::DefaultOptionService
end

.default_options_service_class=(klass) ⇒ Object



16
17
18
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 16

def default_options_service_class=(klass)
  @@default_options_service_class = klass
end

Instance Method Details

#cleanup_derivativesObject

TODO: Implement this?



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

def cleanup_derivatives; end

#create_derivatives(filename) ⇒ Object



42
43
44
45
46
47
48
49
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 42

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?



52
53
54
55
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 52

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)


64
65
66
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 64

def local_streaming?
  @local_streaming == true
end

#valid?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 57

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