Class: FayeRails::RackAdapter::RoutingExtension
- Inherits:
-
Object
- Object
- FayeRails::RackAdapter::RoutingExtension
- Defined in:
- lib/faye-rails/rack_adapter.rb
Instance Method Summary (collapse)
- - (Object) allow_unknown_channels!
- - (Object) block_unknown_channels!
- - (Object) drop_unknown_channels!
- - (Object) incoming(message, callback)
-
- (RoutingExtension) initialize
constructor
A new instance of RoutingExtension.
- - (Object) map(channel, controller)
- - (Object) take_action_for(message, callback, test = '')
Constructor Details
- (RoutingExtension) initialize
A new instance of RoutingExtension
102 103 104 105 |
# File 'lib/faye-rails/rack_adapter.rb', line 102 def initialize @default = :allow @mappings = {} end |
Instance Method Details
- (Object) allow_unknown_channels!
137 138 139 |
# File 'lib/faye-rails/rack_adapter.rb', line 137 def allow_unknown_channels! @default = :allow end |
- (Object) block_unknown_channels!
129 130 131 |
# File 'lib/faye-rails/rack_adapter.rb', line 129 def block_unknown_channels! @default = :block end |
- (Object) drop_unknown_channels!
133 134 135 |
# File 'lib/faye-rails/rack_adapter.rb', line 133 def drop_unknown_channels! @default = :drop end |
- (Object) incoming(message, callback)
107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/faye-rails/rack_adapter.rb', line 107 def incoming(, callback) if ['channel'] == '/meta/subscribe' take_action_for , callback, ['subscription'] elsif ['channel'] == '/meta/unsubscribe' take_action_for , callback, ['subscription'] elsif File.fnmatch?('/meta/*', ['channel']) callback.call() elsif File.fnmatch?('/service/**', ['channel']) callback.call() else take_action_for , callback, ['channel'] end end |
- (Object) map(channel, controller)
121 122 123 124 125 126 127 |
# File 'lib/faye-rails/rack_adapter.rb', line 121 def map(channel, controller) if File.fnmatch?('/**', channel) (@mappings[channel] ||= []) << controller else raise ArgumentError, "Invalid channel name: #{channel}" end end |
- (Object) take_action_for(message, callback, test = '')
141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/faye-rails/rack_adapter.rb', line 141 def take_action_for(, callback, test='') if @mappings.keys.select { |glob| File.fnmatch?(glob,test) }.size > 0 callback.call() elsif @default == :block ['error'] = "Permission denied" callback.call() elsif @default == :drop callback.call(nil) elsif @default == :allow callback.call() else callback.call(nil) end end |