emmy-http 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/emmy-http.gemspec +1 -1
- data/lib/emmy_http/backend.rb +15 -0
- data/lib/emmy_http/operation.rb +3 -3
- data/lib/emmy_http/response.rb +14 -1
- data/lib/emmy_http/server/options.rb +19 -0
- data/lib/emmy_http/version.rb +1 -1
- data/lib/emmy_http.rb +1 -0
- data/spec/emmy_http_spec.rb +12 -9
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39764e025c6870fb136cc4a884e6d64431c88095
|
4
|
+
data.tar.gz: 9562f899182119fcd519d6165e5357078e31a784
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9fe0b8a5b137b27d568d2b88d49b1627ff71cd4e70723fe78087ea50e8838ba960c1b9b5c3f7fd990e261a4bbbe116f3d4306af81f0972497d711e915cd5c85
|
7
|
+
data.tar.gz: 1c76bdc834cd662247b736b3c1d4001931c1a1e44f287840a9689226b717d2aee5b6bef59a421be8b77c2ba1edf8e46657a425a899a874a10d167a239c9c7ba8
|
data/emmy-http.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "emmy-machine", "~> 0.1"
|
22
|
-
spec.add_dependency "fibre", "~> 0.9.
|
22
|
+
spec.add_dependency "fibre", "~> 0.9.3"
|
23
23
|
spec.add_dependency "model_pack", "~> 0.9"
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.6"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module EmmyHttp
|
2
|
+
class Backend
|
3
|
+
SUPPORTED_COMMANDS = %w(start stop restart)
|
4
|
+
|
5
|
+
def supported_commands
|
6
|
+
const_get(:SUPPORTED_COMMANDS)
|
7
|
+
end
|
8
|
+
|
9
|
+
SUPPORTED_COMMANDS.each do |method|
|
10
|
+
define_method method do
|
11
|
+
raise 'method not implemented'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/emmy_http/operation.rb
CHANGED
@@ -26,8 +26,8 @@ module EmmyHttp
|
|
26
26
|
# create connection
|
27
27
|
connect
|
28
28
|
|
29
|
-
on :success do |operation, conn|
|
30
|
-
fiber.resume
|
29
|
+
on :success do |response, operation, conn|
|
30
|
+
fiber.resume response
|
31
31
|
end
|
32
32
|
|
33
33
|
on :error do |error, operation, conn|
|
@@ -60,7 +60,7 @@ module EmmyHttp
|
|
60
60
|
response.headers = operation.adapter.headers
|
61
61
|
end
|
62
62
|
|
63
|
-
on :success do |operation, conn|
|
63
|
+
on :success do |response, operation, conn|
|
64
64
|
response.status = operation.adapter.status
|
65
65
|
response.body = operation.adapter.body
|
66
66
|
end
|
data/lib/emmy_http/response.rb
CHANGED
@@ -3,11 +3,24 @@ module EmmyHttp
|
|
3
3
|
include ModelPack::Document
|
4
4
|
|
5
5
|
attribute :status
|
6
|
-
dictionary :headers
|
6
|
+
dictionary :headers, writer: -> (head) { convert_headers(head) }
|
7
7
|
attribute :body
|
8
8
|
|
9
9
|
def to_a
|
10
10
|
[status, headers, body]
|
11
11
|
end
|
12
|
+
|
13
|
+
# CONTENT_TYPE becomes Content-Type
|
14
|
+
def convert_headers(headers)
|
15
|
+
{}.tap do |result|
|
16
|
+
headers.each do |k, v|
|
17
|
+
words = k.split("_")
|
18
|
+
key = words.map { |w| w.downcase.capitalize }.join("-")
|
19
|
+
result[key] = v
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
#<<<
|
12
25
|
end
|
13
26
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module EmmyHttp
|
2
|
+
class Server::Options
|
3
|
+
include ModelPack::Document
|
4
|
+
|
5
|
+
attribute :chdir, default: Dir.pwd
|
6
|
+
attribute :environment, default: 'development'
|
7
|
+
atrribute :address, default: '0.0.0.0'
|
8
|
+
attribute :port, default: 3434
|
9
|
+
attribute :timeout, default: 30
|
10
|
+
attribute :pid, default: File.join(Dir.pwd, "tmp/pids/server.log")
|
11
|
+
attribute :log, default: File.join(Dir.pwd, "log/server.log")
|
12
|
+
attribute :max_conns, default: 1024
|
13
|
+
attribute :max_persistent_conns, default: 100
|
14
|
+
attribute :require default: []
|
15
|
+
attribute :wait default: 30
|
16
|
+
attribute :fiberpool_size, default: 20
|
17
|
+
attribute :daemonize, default: false
|
18
|
+
end
|
19
|
+
end
|
data/lib/emmy_http/version.rb
CHANGED
data/lib/emmy_http.rb
CHANGED
data/spec/emmy_http_spec.rb
CHANGED
@@ -25,7 +25,7 @@ describe EmmyHttp do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def headers
|
28
|
-
{'
|
28
|
+
{'CONTENT_TYPE' => 'text/html'}
|
29
29
|
end
|
30
30
|
|
31
31
|
def body
|
@@ -43,7 +43,7 @@ describe EmmyHttp do
|
|
43
43
|
# replace request with timer
|
44
44
|
EventMachine.add_timer(0) do
|
45
45
|
self.delegate.head!(delegate, conn)
|
46
|
-
self.delegate.success!(delegate, conn)
|
46
|
+
self.delegate.success!(delegate.response, delegate, conn)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -63,13 +63,16 @@ describe EmmyHttp do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
it "should do http request with fake adapter" do
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
66
|
+
begin
|
67
|
+
request = EmmyHttp::Request.new(
|
68
|
+
method: 'get',
|
69
|
+
url: 'http://google.com'
|
70
|
+
)
|
71
|
+
operation = EmmyHttp::Operation.new(request, FakeAdapter.new)
|
72
|
+
response = operation.sync
|
73
|
+
ensure
|
74
|
+
EventMachine.stop
|
75
|
+
end
|
73
76
|
|
74
77
|
expect(response.status).to be 200
|
75
78
|
expect(response.headers).to include("Content-Type")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emmy-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- che
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: emmy-machine
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.9.
|
33
|
+
version: 0.9.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.9.
|
40
|
+
version: 0.9.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: model_pack
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,11 +109,13 @@ files:
|
|
109
109
|
- emmy-http.gemspec
|
110
110
|
- lib/emmy_http.rb
|
111
111
|
- lib/emmy_http/adapter.rb
|
112
|
+
- lib/emmy_http/backend.rb
|
112
113
|
- lib/emmy_http/operation.rb
|
113
114
|
- lib/emmy_http/request.rb
|
114
115
|
- lib/emmy_http/request/ssl.rb
|
115
116
|
- lib/emmy_http/request/timeouts.rb
|
116
117
|
- lib/emmy_http/response.rb
|
118
|
+
- lib/emmy_http/server/options.rb
|
117
119
|
- lib/emmy_http/version.rb
|
118
120
|
- spec/emmy_http_spec.rb
|
119
121
|
- spec/spec_helper.rb
|