class Faye::Channel
def <<(message)
def <<(message) trigger(:message, message) end
def expand(name)
def expand(name) segments = parse(name) channels = ['/**', name] copy = segments.dup copy[copy.size - 1] = '*' channels << unparse(copy) 1.upto(segments.size - 1) do |i| copy = segments[0...i] copy << '**' channels << unparse(copy) end channels end
def initialize(name)
def initialize(name) super() @name = name end
def meta?(name)
def meta?(name) segments = parse(name) segments ? (segments.first == META) : nil end
def parse(name)
def parse(name) return nil unless valid?(name) name.split('/')[1..-1] end
def service?(name)
def service?(name) segments = parse(name) segments ? (segments.first == SERVICE) : nil end
def subscribable?(name)
def subscribable?(name) return nil unless valid?(name) not meta?(name) and not service?(name) end
def unparse(segments)
def unparse(segments) '/' + segments.join('/') end
def unused?
def unused? listener_count(:message).zero? end
def valid?(name)
def valid?(name) Grammar::CHANNEL_NAME =~ name or Grammar::CHANNEL_PATTERN =~ name end