Sha256: 530790d3bfa3abd81d652ac13ef931a2ad2e973e1edaee2d8ff116144334c691

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

require 'hara'

Celluloid.logger = nil

def wait_until wait_time = 3
  timeout wait_time do
    sleep 0.1 until yield
  end
end

class FayeHandshake
  def headers_downcased
    {'host' => 'localhost:8080'}
  end
end

class FayeSocket
  attr_accessor :remote_ip, :close_info, :app

  def initialize
    @client_messages = []
    @server_messages = []
    @mri_peername = "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"
    @jruby_peername = "\x00\x02\x8Av\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"
  end

  def app= app
    @app = app
    @alive = true
  end

  def get_peername
    defined?(JRuby) ? @jruby_peername : @mri_peername
  end

  def alive= alive
    @alive = alive
  end

  def alive?
    @alive
  end

  def close code = nil, body = nil
    if @alive
      @close_info = [code, body]
      @alive = false
      @app.terminate! if @app
    end
  end

  def send message
    @client_messages << message
  end

  def client_read
    @client_messages.shift
  end

  [:onclose, :onmessage, :onopen].each do |method|
    attribute = "#{method}_block".to_sym
    attr_accessor attribute
    define_method method do |&blk|
      __send__ "#{attribute}=", blk
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hara-0.3.0 spec/spec_helper.rb