Sha256: e0a5084f064d517ee375aeb96a5f66e2a932f443efe4db13e8c43488e0bae183

Contents?: true

Size: 895 Bytes

Versions: 6

Compression:

Stored size: 895 Bytes

Contents

# frozen_string_literal: true

module Evostream
  # Gem Evostream::Event
  module Events
    # Class parent for all event
    class Event
      def initialize(id_flux)
        Evostream.logger "Initialize event #{class_name}"
        @id_flux = id_flux
        @model = Service.model.find_by(Service.model_id => id_flux)
      end

      def execute(type_flux = %w(hls dash))
        Evostream.logger "Execute action for event #{class_name}"
        type_flux.each { |flux| yield(flux) } if block_given?
      end

      def class_name
        self.class.name.demodulize
      end

      def self.descendants
        ObjectSpace.each_object(Class).select { |klass| klass < self }
      end

      private

      attr_reader :id_flux, :model
    end
  end
end

require 'evostream/events/in_stream_created'
require 'evostream/events/in_stream_closed'
require 'evostream/events/out_stream_created'

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
evostream-event-0.1.0 lib/evostream/events.rb
evostream-event-0.1.0.pre.14 lib/evostream/events.rb
evostream-event-0.1.0.pre.10 lib/evostream/events.rb
evostream-event-0.1.0.pre.9 lib/evostream/events.rb
evostream-event-0.1.0.pre.42 lib/evostream/events.rb
evostream-event-0.1.0.pre.6 lib/evostream/events.rb