├── .gitignore ├── .yardopts ├── Gemfile ├── LICENSE.txt ├── README.erb ├── README.markdown ├── Rakefile ├── brainguy.gemspec ├── examples ├── include_manifestly_observable.rb ├── include_observable.rb ├── include_observer.rb ├── manual_observable.rb ├── open_observer.rb ├── proc_observer.rb ├── scoped_subscription.rb └── synopsis.rb ├── lib ├── brainguy.rb └── brainguy │ ├── basic_notifier.rb │ ├── emitter.rb │ ├── error_collecting_notifier.rb │ ├── error_handling_notifier.rb │ ├── event.rb │ ├── fluent_emitter.rb │ ├── full_subscription.rb │ ├── idempotent_emitter.rb │ ├── manifest_emitter.rb │ ├── manifestly_observable.rb │ ├── observable.rb │ ├── observer.rb │ ├── open_observer.rb │ ├── single_event_subscription.rb │ ├── subscription.rb │ ├── subscription_scope.rb │ └── version.rb ├── scripts └── benchmark_listener_dispatch.rb └── spec ├── brainguy ├── emitter_spec.rb ├── error_collecting_notifier_spec.rb ├── error_handling_notifier_spec.rb ├── manifest_emitter_spec.rb ├── manifestly_observable_spec.rb ├── observable_spec.rb ├── observer_spec.rb ├── open_observer_spec.rb ├── single_event_subscription_spec.rb ├── subscription_scope_spec.rb └── subscription_spec.rb ├── features ├── basics_spec.rb ├── idempotent_events_spec.rb └── method_scoped_events_spec.rb └── support └── shared_examples_for_eventful_modules.rb /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/.gitignore -------------------------------------------------------------------------------- /.yardopts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/.yardopts -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/README.erb -------------------------------------------------------------------------------- /README.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/README.markdown -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/Rakefile -------------------------------------------------------------------------------- /brainguy.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/brainguy.gemspec -------------------------------------------------------------------------------- /examples/include_manifestly_observable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/include_manifestly_observable.rb -------------------------------------------------------------------------------- /examples/include_observable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/include_observable.rb -------------------------------------------------------------------------------- /examples/include_observer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/include_observer.rb -------------------------------------------------------------------------------- /examples/manual_observable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/manual_observable.rb -------------------------------------------------------------------------------- /examples/open_observer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/open_observer.rb -------------------------------------------------------------------------------- /examples/proc_observer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/proc_observer.rb -------------------------------------------------------------------------------- /examples/scoped_subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/scoped_subscription.rb -------------------------------------------------------------------------------- /examples/synopsis.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/examples/synopsis.rb -------------------------------------------------------------------------------- /lib/brainguy.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy.rb -------------------------------------------------------------------------------- /lib/brainguy/basic_notifier.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/basic_notifier.rb -------------------------------------------------------------------------------- /lib/brainguy/emitter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/emitter.rb -------------------------------------------------------------------------------- /lib/brainguy/error_collecting_notifier.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/error_collecting_notifier.rb -------------------------------------------------------------------------------- /lib/brainguy/error_handling_notifier.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/error_handling_notifier.rb -------------------------------------------------------------------------------- /lib/brainguy/event.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/event.rb -------------------------------------------------------------------------------- /lib/brainguy/fluent_emitter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/fluent_emitter.rb -------------------------------------------------------------------------------- /lib/brainguy/full_subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/full_subscription.rb -------------------------------------------------------------------------------- /lib/brainguy/idempotent_emitter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/idempotent_emitter.rb -------------------------------------------------------------------------------- /lib/brainguy/manifest_emitter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/manifest_emitter.rb -------------------------------------------------------------------------------- /lib/brainguy/manifestly_observable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/manifestly_observable.rb -------------------------------------------------------------------------------- /lib/brainguy/observable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/observable.rb -------------------------------------------------------------------------------- /lib/brainguy/observer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/observer.rb -------------------------------------------------------------------------------- /lib/brainguy/open_observer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/open_observer.rb -------------------------------------------------------------------------------- /lib/brainguy/single_event_subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/single_event_subscription.rb -------------------------------------------------------------------------------- /lib/brainguy/subscription.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/subscription.rb -------------------------------------------------------------------------------- /lib/brainguy/subscription_scope.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/lib/brainguy/subscription_scope.rb -------------------------------------------------------------------------------- /lib/brainguy/version.rb: -------------------------------------------------------------------------------- 1 | module Brainguy 2 | # The library version 3 | VERSION = "0.0.1" 4 | end 5 | -------------------------------------------------------------------------------- /scripts/benchmark_listener_dispatch.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/scripts/benchmark_listener_dispatch.rb -------------------------------------------------------------------------------- /spec/brainguy/emitter_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/emitter_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/error_collecting_notifier_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/error_collecting_notifier_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/error_handling_notifier_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/error_handling_notifier_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/manifest_emitter_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/manifest_emitter_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/manifestly_observable_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/manifestly_observable_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/observable_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/observable_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/observer_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/observer_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/open_observer_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/open_observer_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/single_event_subscription_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/single_event_subscription_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/subscription_scope_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/subscription_scope_spec.rb -------------------------------------------------------------------------------- /spec/brainguy/subscription_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/brainguy/subscription_spec.rb -------------------------------------------------------------------------------- /spec/features/basics_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/features/basics_spec.rb -------------------------------------------------------------------------------- /spec/features/idempotent_events_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/features/idempotent_events_spec.rb -------------------------------------------------------------------------------- /spec/features/method_scoped_events_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/features/method_scoped_events_spec.rb -------------------------------------------------------------------------------- /spec/support/shared_examples_for_eventful_modules.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avdi/brainguy/HEAD/spec/support/shared_examples_for_eventful_modules.rb --------------------------------------------------------------------------------