Sha256: 6e5994cedba5c16df558dbc452abdeb10c31721c86045139d67c47a227ca95f7

Contents?: true

Size: 998 Bytes

Versions: 13

Compression:

Stored size: 998 Bytes

Contents

module Sinatra
  module RocketIO

    def rocketio=(options)
      RocketIO.options = options
    end

    def rocketio
      RocketIO.options
    end

    def self.default_options
      {
        :comet => [true, lambda{|v| [true, false].include? v }],
        :websocket => [true, lambda{|v| [true, false].include? v }]
      }
    end

    def self.options
      @@options ||= (
                     opts = {}
                     default_options.each do |k,v|
                       opts[k] = v[0]
                     end
                     opts
                     )
    end

    def self.options=(opts)
      @@options = {}
      opts.each do |k,v|
        k = k.to_sym
        if default_options.include? k
          @@options[k] = default_options[k][1].call(v) ? v : default_options[k][0]
        else
          @@options[k] = v
        end
      end
      default_options.each do |k, v|
        @@options[k] = v unless @@options.include? k
      end
      @@options
    end

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
sinatra-rocketio-0.2.1 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.2.0 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.1.2 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.1.1 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.1.0 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.9 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.8 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.7 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.6 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.5 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.4 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.3 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.0.2 lib/sinatra-rocketio/options.rb