Sha256: e6ce3a01d2842e241975f88de4be3f9493f4e89a0cb0299dd088cc8aff33540e

Contents?: true

Size: 1.1 KB

Versions: 14

Compression:

Stored size: 1.1 KB

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)
        @result = nil
      end

      def execute(type_flux = %w[hls dash], &block)
        Evostream.logger "Execute action for event #{class_name}"
        type_flux.each(&block) if block
        @result
      end

      def class_name
        self.class.name.demodulize
      end

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

      def self.all_event
        descendants.collect do |klass|
          klass.to_s.split('::').last.camelize(:lower)
        end
      end

      private

      attr_reader :id_flux, :model
      attr_accessor :result
    end
  end
end

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

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
evostream-event-2.0.3 lib/evostream/event/event/events.rb
evostream-event-2.0.3.pre.1265906291 lib/evostream/event/event/events.rb
evostream-event-2.0.3.pre.1265756691 lib/evostream/event/event/events.rb
evostream-event-2.0.3.pre.1265752332 lib/evostream/event/event/events.rb
evostream-event-2.0.2 lib/evostream/event/event/events.rb
evostream-event-2.0.2.pre.994185738 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.994170151 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.994165179 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.994159616 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.856454391 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.856447460 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.856441003 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.816370746 lib/evostream/event/event/events.rb
evostream-event-2.0.0.pre.809444619 lib/evostream/event/event/events.rb