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.



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

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.



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

def encode_class
  @encode_class
end

#options_service_classObject

Returns the value of attribute options_service_class.



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

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
31
# File 'app/services/hyrax/active_encode/active_encode_derivative_service.rb', line 28

def default_local_streaming
  @@default_local_streaming = true unless defined?(@@default_local_streaming)
  @@default_local_streaming
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?



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

def cleanup_derivatives; end

#create_derivatives(filename) ⇒ Object



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

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?



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

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

#local_streaming?Boolean

Returns:

  • (Boolean)


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

def local_streaming?
  @local_streaming == true
end

#valid?Boolean

Returns:

  • (Boolean)


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

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