File: pluggaloid.rb

package info (click to toggle)
ruby-pluggaloid 1.7.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 260 kB
  • sloc: ruby: 1,752; sh: 4; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 1,156 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require "pluggaloid/version"
require 'pluggaloid/collection'
require "pluggaloid/plugin"
require 'pluggaloid/stream'
require 'pluggaloid/event'
require "pluggaloid/identity"
require "pluggaloid/handler"
require 'pluggaloid/listener'
require 'pluggaloid/subscriber'
require 'pluggaloid/filter'
require 'pluggaloid/stream_generator'
require "pluggaloid/handler_tag"
require 'pluggaloid/mirage'
require 'pluggaloid/error'

require 'delayer'

module Pluggaloid
  VM = Struct.new(*%i<Delayer Plugin Event Listener Filter HandlerTag Subscriber StreamGenerator>, keyword_init: true)

  class PrototypeStream; end
  class PrototypeCollect; end
  STREAM = PrototypeStream.new.freeze
  COLLECT = PrototypeCollect.new.freeze

  def self.new(delayer)
    vm = VM.new(Delayer: delayer,
                Plugin: Class.new(Plugin),
                Event: Class.new(Event),
                Listener: Class.new(Listener),
                Filter: Class.new(Filter),
                HandlerTag: Class.new(HandlerTag),
                Subscriber: Class.new(Subscriber),
                StreamGenerator: Class.new(StreamGenerator))
    vm.Plugin.vm = vm.Event.vm = vm
  end
end