Sha256: 1111b8d1d9d051568c248b5fed4e6fa54edfebab0c4891cdf9163e4e971b3cba
Contents?: true
Size: 837 Bytes
Versions: 1
Compression:
Stored size: 837 Bytes
Contents
require 'set' module Nuge class Pusher def self.clients=(clients) @clients = Set.new(clients) end def self.clients @clients ||= Set.new end attr_reader :clients attr_writer :expander def initialize(clients = nil) @clients = Set.new(clients || self.class.clients) end def push(ids, message) clients.each { |client| client.push(expanded(ids), message) } end def register(id, options = {}) clients.each { |client| client.register(expanded(id).first, options) } end def unregister(id, options = {}) clients.each { |client| client.unregister(expanded(id).first, options) } end def expander @expander ||= -> (obj) { obj } end def expanded(*objects) objects.flatten.map { |obj| expander.call(obj) } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nuge-0.1.0 | lib/nuge/pusher.rb |