Module: Vidibus::Recording

Extended by:
Recording
Included in:
Recording
Defined in:
lib/vidibus/recording.rb,
lib/vidibus/recording/part.rb,
lib/vidibus/recording/daemon.rb,
lib/vidibus/recording/worker.rb,
lib/vidibus/recording/backend.rb,
lib/vidibus/recording/helpers.rb,
lib/vidibus/recording/mongoid.rb,
lib/vidibus/recording/railtie.rb,
lib/vidibus/recording/version.rb

Defined Under Namespace

Modules: Backend, Helpers, Mongoid Classes: Daemon, Engine, Error, Part, Worker

Constant Summary collapse

INTERVAL =
1
VERSION =
'2.0.2'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#autoload_pathsObject

Returns the value of attribute autoload_paths.



16
17
18
# File 'lib/vidibus/recording.rb', line 16

def autoload_paths
  @autoload_paths
end

#classesObject

Returns the value of attribute classes.



16
17
18
# File 'lib/vidibus/recording.rb', line 16

def classes
  @classes
end

#loggerObject

Returns the value of attribute logger.



16
17
18
# File 'lib/vidibus/recording.rb', line 16

def logger
  @logger
end

#monitoring_intervalObject

Returns the value of attribute monitoring_interval.



16
17
18
# File 'lib/vidibus/recording.rb', line 16

def monitoring_interval
  @monitoring_interval
end

Instance Method Details

#autoloadObject

Obtain all classes that include the Mongoid module



34
35
36
37
38
39
40
41
# File 'lib/vidibus/recording.rb', line 34

def autoload
  return [] unless autoload_paths.any?
  regexp = /class ([^<\n]+).+include Vidibus::Recording::Mongoid/m
  names = Dir[*autoload_paths].map do |f|
    File.read(f)[regexp, 1]
  end.compact
  self.classes = names.map { |k| k.constantize }
end

#monitorObject

Monitor all started recordings



23
24
25
26
27
28
29
30
31
# File 'lib/vidibus/recording.rb', line 23

def monitor
  autoload
  unless classes.any?
    logger.error("[#{Time.now.utc}] - No recording classes given")
  else
    logger.info("[#{Time.now.utc}] - Watching recordings")
    run
  end
end