Sha256: 1673bf95303f6ea36360e03721f6639a6cf29d5409797bf783a57208f43e5e08
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
# frozen_string_literal: true module Stenotype # # {Stenotype::Event} represents a triggered event # class Event # # Delegates event to instance of {Stenotype::Event}. # # @example # # Stenotype::Event.emit!(data, options, eval_context) # # @param data {Hash} Data to be published to the targets. # @param options {Hash} A hash of additional options to be tracked. # @param eval_context {Hash} A context having handler defined in {Stenotype::ContextHandlers}. # @param dispatcher {#publish} A dispatcher object responding to [#publish] # @return {Stenotype::Event} An instance of {Stenotype::Event} # def self.emit!(data, options: {}, eval_context: {}, dispatcher: Stenotype.config.dispatcher) event = new(data, options: options, eval_context: eval_context, dispatcher: dispatcher) event.emit! event end attr_reader :data, :options, :eval_context, :dispatcher # # @example # # Stenotype::Event.emit!(data, options, eval_context) # # @param {Hash} data Data to be published to the targets. # @param {Hash} options A hash of additional options to be tracked. # @param {Hash} eval_context A context having handler defined in {Stenotype::ContextHandlers}. # @param dispatcher {#publish} A dispatcher object responding to [#publish]. # @return {Stenotype::Event} An instance of event # def initialize(data, options: {}, eval_context: {}, dispatcher: Stenotype.config.dispatcher) @data = data @options = options @eval_context = eval_context @dispatcher = dispatcher end # # Emits a {Stenotype::Event}. # # @example # # event = Stenotype::Event.new(data, options, eval_context) # event.emit! # def emit! dispatcher.publish(self) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
stenotype-0.1.0 | lib/stenotype/event.rb |