class FayeRails::RackAdapter
Attributes
endpoint[R]
server[R]
Public Class Methods
new(app=nil, options=nil)
click to toggle source
Calls superclass method
# File lib/faye-rails/rack_adapter.rb, line 8 def initialize(app=nil, options=nil) super FayeRails.servers << self end
Public Instance Methods
debug_messages()
click to toggle source
Adds a very simple extension to the server causing it to log all messages in and out to Rails.logger.debug.
# File lib/faye-rails/rack_adapter.rb, line 54 def debug_messages add_extension(DebugMessagesExtension.new) end
map(opts)
click to toggle source
Rudimentary routing support for channels to controllers.
@param opts
a Hash of mappings either string keys (channel globs) mapping to controller constants eg: '/widgets/**' => WidgetsController or you can set the behaviour for unknown channels: :default => :block :default can be set to :allow, :drop or :block. if :drop is chosen then messages to unknown channels will be silently dropped, whereas if you choose :block then the message will be returned with the error "Permission denied."
# File lib/faye-rails/rack_adapter.rb, line 30 def map(opts) if opts.is_a? Hash opts.each do |channel, controller| if channel.is_a? String if FayeRails::Matcher.match? '/**', channel routing_extension.map(channel, controller) else raise ArgumentError, "Invalid channel: #{channel}" end elsif channel == :default if controller == :block routing_extension.block_unknown_channels! elsif controller == :drop routing_extension.drop_unknown_channels! elsif controller == :allow routing_extension.allow_unknown_channels! end end end end end
Private Instance Methods
routing_extension()
click to toggle source
# File lib/faye-rails/rack_adapter.rb, line 60 def routing_extension if @routing_extension @routing_extension else @routing_extension = RoutingExtension.new add_extension(@routing_extension) @routing_extension end end