Sha256: effa1fb5b43bb3ba6248597255a7266426670b9db1f9b0c341e9ab2db0bfb7dc
Contents?: true
Size: 849 Bytes
Versions: 2
Compression:
Stored size: 849 Bytes
Contents
class SandwichMaker end class SandwichEater end module Cloudist class << self @@workers = {} def handle(*queue_names) class << queue_names def with(handler) self.each do |queue_name| ((@@workers[queue_name.to_s] ||= []) << handler).uniq! end end end queue_names end def use(handler) proxy = handler.new class << proxy def to(queue_name) ((@@workers[queue_name.to_s] ||= []) << self.class).uniq! end end proxy end def workers @@workers end end end Cloudist.handle('make.sandwich', 'eat').with(SandwichMaker) Cloudist.use(SandwichEater).to('eat.sandwich') p Cloudist.workers # >> {"eat"=>[SandwichMaker], "make.sandwich"=>[SandwichMaker], "eat.sandwich"=>[SandwichEater]}
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cloudist-0.2.1 | examples/extending_values.rb |
cloudist-0.2.0 | examples/extending_values.rb |