Sha256: 18ff5875301a68379cf2178f3a822e82ff927de382771cb70888e0e27caad92b

Contents?: true

Size: 1.5 KB

Versions: 6

Compression:

Stored size: 1.5 KB

Contents

module Sinatra
  module RocketIO

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

    def rocketio
      RocketIO.options
    end

    def self.default_options
      {
        :comet     => [
                       (ENV["COMET"].to_s =~ /^(false|disable)$/i ? false : true),
                       lambda{|v| [true, false].include? v }
                      ],
        :websocket => [
                       (ENV["WEBSOCKET"].to_s =~ /^(false|disable)$/i ? false : 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
        unless default_options.include? k
          STDERR.puts "!! Sinatra::RocketIO setting - \"#{k}\" is not valid key"
        else
          unless default_options[k][1].call(v)
            default = default_options[k][0]
            STDERR.puts "!! Sinatra::RocketIO setting - \"#{k} => #{v}\" is not valid. set default \"#{k} => #{default}\""
            @@options[k] = default
          else
            @@options[k] = v
          end
        end
      end
      default_options.each do |k, v|
        @@options[k] = v[0] unless @@options.include? k
      end
      @@options
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sinatra-rocketio-0.3.3 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.3.2 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.3.1 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.3.0 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.2.6 lib/sinatra-rocketio/options.rb
sinatra-rocketio-0.2.5 lib/sinatra-rocketio/options.rb