Module: Jouba

Extended by:
Forwardable, Wisper::Publisher
Defined in:
lib/jouba.rb,
lib/jouba/key.rb,
lib/jouba/cache.rb,
lib/jouba/event.rb,
lib/jouba/store.rb,
lib/jouba/version.rb,
lib/jouba/aggregate.rb

Defined Under Namespace

Modules: Cache Classes: Aggregate, Event, EventStore, Key, MemoryStore

Constant Summary collapse

DEFAULTS =
{
  Event: Jouba::Event,
  Key:   Jouba::Key,
  Cache: Cache::Null.new,
  Store: Jouba::EventStore.new
}
VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.configObject



28
29
30
# File 'lib/jouba.rb', line 28

def config
  @config ||= Hashie::Mash.new { |h, k| h[k] = DEFAULTS[k] }
end

.emit(key, name, data) ⇒ Object



32
33
34
35
36
37
# File 'lib/jouba.rb', line 32

def emit(key , name , data)
  config.Event.new(key: key, name: name, data: data).tap do |event|
    block_given? ? yield(event) : event.track
    publish(key, event)
  end
end

.stream(key, params = {}) ⇒ Object



39
40
41
# File 'lib/jouba.rb', line 39

def stream(key, params = {})
  config.Event.stream(key, params)
end