Module: HTTTee::Server

Defined in:
lib/htttee/server.rb,
lib/htttee/server/api.rb,
lib/htttee/server/mock.rb,
lib/htttee/server/sse/body.rb,
lib/htttee/server/chunked_body.rb,
lib/htttee/server/sse/middleware.rb,
lib/htttee/server/middleware/dechunker.rb,
lib/htttee/server/middleware/rechunker.rb,
lib/htttee/server/middleware/async_fixer.rb

Defined Under Namespace

Modules: Mock, SSE Classes: Api, AsyncFixer, ChunkedBody, Dechunker, Rechunker

Class Method Summary collapse

Class Method Details

.api(host = (ENV['REDIS_HOST'] || 'localhost' ), port = (ENV['REDIS_PORT'] || 6379).to_i) ⇒ Object



15
16
17
# File 'lib/htttee/server.rb', line 15

def self.api(host = (ENV['REDIS_HOST'] || 'localhost' ), port = (ENV['REDIS_PORT'] || 6379).to_i)
  Api.new(host, port)
end

.appObject



11
12
13
# File 'lib/htttee/server.rb', line 11

def self.app
  mocking? ? mock_app : rack_app
end

.mock!Object



39
40
41
42
43
44
# File 'lib/htttee/server.rb', line 39

def self.mock!
  require 'htttee/server/mock'
  @mocking = true

  @mock_uri = Mock.boot_forking_server
end

.mock_appObject



29
30
31
32
33
34
35
36
37
# File 'lib/htttee/server.rb', line 29

def self.mock_app
  Rack::Builder.app do |builder|
    builder.use Mock::ThinMuxer
    builder.use Mock::EchoUri
    builder.use Rechunker
    builder.use SSE::Middleware
    builder.run Server.rack_app
  end
end

.mock_uriObject



60
61
62
63
# File 'lib/htttee/server.rb', line 60

def self.mock_uri
  raise "Not in mock mode!" unless mocking?
  @mock_uri
end

.mocking?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/htttee/server.rb', line 56

def self.mocking?
  @mocking
end

.rack_appObject



19
20
21
22
23
24
25
26
27
# File 'lib/htttee/server.rb', line 19

def self.rack_app
  Rack::Builder.app do |builder|
    builder.use AsyncFixer
    builder.use Dechunker
    builder.use Rechunker
    builder.use SSE::Middleware
    builder.run Server.api
  end
end

.reset!Object



46
47
48
49
50
51
52
53
54
# File 'lib/htttee/server.rb', line 46

def self.reset!
  raise "Can't reset in non-mocked mode." unless mocking?

  EM.run do
    EM::Protocols::Redis.connect.flush_all do
      EM.stop
    end
  end
end