Sha256: 5de68f7be145b98b438315b4efe2eb165cb1a6760bf3ae8ab683ecc1bbbd5cd5

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

if defined? ActionDispatch::Routing

  module ActionDispatch::Routing
    class Mapper

      def faye_server(mount_path, options={}, &block)

        defaults = {
          :mount => mount_path||'/faye',
          :timeout => 25,
          :extensions => nil,
          :engine => nil,
          :ping => nil,
          :server => 'thin'
        }

        unknown_options = options.keys - defaults.keys
        if unknown_options.one?
          raise ArgumentError, "Unknown option: #{unknown_options.first}."
        elsif unknown_options.any?
          raise ArgumentError, "Unknown options: #{unknown_options * ", "}."
        end

        options = defaults.merge(options)

        Faye::WebSocket.load_adapter(options.delete(:server))

        adapter = FayeRails::RackAdapter.new(options)
        adapter.instance_eval(&block) if block.respond_to? :call

        match options[:mount] => adapter, via: :all

      end

    end
  end

end

if defined? Rails::Application::RoutesReloader

  class Rails::Application::RoutesReloader

    def clear_with_faye_servers!
      FayeRails.servers.clear!
      clear_without_faye_servers!
    end

    alias_method_chain :clear!, :faye_servers

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
faye-rails-1.0.4 lib/faye-rails/routing_hooks.rb