Sha256: 9a81f1d4ddc22088479d54eb9451e99405e9b71aae8ca780948c5eaf0d2231f6

Contents?: true

Size: 1.11 KB

Versions: 28

Compression:

Stored size: 1.11 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])
        Evostream.logger "Execute action for event #{class_name}"
        type_flux.each { |flux| yield(flux) } if block_given?
        @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

28 entries across 28 versions & 1 rubygems

Version Path
evostream-event-1.0.3 lib/evostream/event/event/events.rb
evostream-event-1.0.3.pre.95 lib/evostream/event/event/events.rb
evostream-event-1.0.3.pre.93 lib/evostream/event/event/events.rb
evostream-event-1.0.3.pre.91 lib/evostream/event/event/events.rb
evostream-event-1.0.3.pre.83 lib/evostream/event/event/events.rb
evostream-event-1.0.2 lib/evostream/event/event/events.rb
evostream-event-1.0.2.pre.75 lib/evostream/event/event/events.rb
evostream-event-1.0.2.pre.74 lib/evostream/event/event/events.rb
evostream-event-1.0.1 lib/evostream/event/event/events.rb
evostream-event-1.0.1.pre.72 lib/evostream/event/event/events.rb
evostream-event-1.0.0 lib/evostream/event/event/events.rb
evostream-event-1.0.0.pre.69 lib/evostream/event/event/events.rb
evostream-event-1.0.0.pre.65 lib/evostream/event/event/events.rb
evostream-event-1.0.0.pre.59 lib/evostream/event/event/events.rb
evostream-event-1.0.0.pre.58 lib/evostream/event/event/events.rb
evostream-event-0.3.2.pre.57 lib/evostream/event/event/events.rb
evostream-event-0.3.2.pre.56 lib/evostream/event/event/events.rb
evostream-event-0.3.2.pre.55 lib/evostream/event/event/events.rb
evostream-event-0.3.1 lib/evostream/event/event/events.rb
evostream-event-0.3.1.pre.53 lib/evostream/event/event/events.rb