httpkit 0.6.0.pre.3 → 0.6.0.pre.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +15 -0
  2. data/.rspec +0 -1
  3. data/.travis.yml +5 -4
  4. data/Gemfile +0 -2
  5. data/Gemfile.devtools +27 -22
  6. data/README.md +11 -13
  7. data/config/flay.yml +2 -2
  8. data/config/flog.yml +1 -1
  9. data/config/reek.yml +11 -5
  10. data/config/rubocop.yml +47 -5
  11. data/examples/echo_server.rb +2 -2
  12. data/examples/getting_started.rb +16 -10
  13. data/httpkit.gemspec +5 -4
  14. data/lib/httpkit.rb +15 -5
  15. data/lib/httpkit/body.rb +44 -33
  16. data/lib/httpkit/client.rb +52 -23
  17. data/lib/httpkit/client/body_handler.rb +21 -0
  18. data/lib/httpkit/client/{keep_alive.rb → keep_alive_handler.rb} +1 -1
  19. data/lib/httpkit/client/mandatory_handler.rb +29 -0
  20. data/lib/httpkit/client/{timeouts.rb → timeouts_handler.rb} +1 -1
  21. data/lib/httpkit/connection/eventmachine.rb +4 -4
  22. data/lib/httpkit/request.rb +46 -10
  23. data/lib/httpkit/response.rb +37 -5
  24. data/lib/httpkit/serializer.rb +33 -25
  25. data/lib/httpkit/server.rb +14 -19
  26. data/lib/httpkit/server/body_handler.rb +25 -0
  27. data/lib/httpkit/server/{keep_alive.rb → keep_alive_handler.rb} +22 -13
  28. data/lib/httpkit/server/mandatory_handler.rb +23 -0
  29. data/lib/httpkit/server/{timeouts.rb → timeouts_handler.rb} +1 -1
  30. data/lib/httpkit/support/handler_manager.rb +8 -5
  31. data/lib/httpkit/support/message.rb +28 -15
  32. data/lib/httpkit/version.rb +1 -1
  33. data/spec/integration/keep_alive_spec.rb +6 -7
  34. data/spec/integration/smoke_spec.rb +4 -4
  35. data/spec/integration/streaming_spec.rb +2 -3
  36. data/spec/integration/timeouts_spec.rb +6 -6
  37. data/spec/shared/integration/server_client_pair.rb +1 -1
  38. data/spec/spec_helper.rb +3 -2
  39. data/spec/support/handler.rb +1 -1
  40. data/spec/support/helper.rb +6 -4
  41. data/spec/unit/body_spec.rb +6 -0
  42. data/spec/unit/client/keep_alive_handler_spec.rb +6 -0
  43. data/spec/unit/client/mandatory_handler_spec.rb +31 -0
  44. data/spec/unit/client/timeouts_handler_spec.rb +6 -0
  45. data/spec/unit/client_spec.rb +83 -34
  46. data/spec/unit/connection/eventmachine_spec.rb +12 -13
  47. data/spec/unit/httpkit_spec.rb +65 -24
  48. data/spec/unit/promise_spec.rb +1 -1
  49. data/spec/unit/request_spec.rb +2 -10
  50. data/spec/unit/response_spec.rb +7 -15
  51. data/spec/unit/serializer_spec.rb +83 -0
  52. data/spec/unit/server/{keep_alive_spec.rb → keep_alive_handler_spec.rb} +5 -2
  53. data/spec/unit/server/mandatory_handler_spec.rb +30 -0
  54. data/spec/unit/server/timeouts_handler_spec.rb +6 -0
  55. data/spec/unit/server_spec.rb +26 -32
  56. data/spec/unit/support/handler_manager_spec.rb +38 -7
  57. data/spec/unit/support/message_spec.rb +45 -20
  58. metadata +57 -36
  59. data/lib/httpkit/serializer/encoding.rb +0 -43
metadata CHANGED
@@ -1,80 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httpkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0.pre.3
5
- prerelease: 6
4
+ version: 0.6.0.pre.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Lars Gierth
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-11 00:00:00.000000000 Z
11
+ date: 2014-07-19 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: eventmachine
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: '1.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: '1.0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: http_parser.rb
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: 0.6.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: 0.6.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: promise.rb
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: '0.6'
47
+ version: 0.6.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: '0.6'
54
+ version: 0.6.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: adamantium
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.2.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 0.2.0
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rspec
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
- - - ! '>='
73
+ - - ~>
68
74
  - !ruby/object:Gem::Version
69
- version: '0'
75
+ version: '3.0'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - ~>
76
81
  - !ruby/object:Gem::Version
77
- version: '0'
82
+ version: '3.0'
78
83
  description: HTTPkit is a Ruby toolkit for building HTTP clients and servers, as well
79
84
  as compositions of them.
80
85
  email:
@@ -106,18 +111,21 @@ files:
106
111
  - lib/httpkit.rb
107
112
  - lib/httpkit/body.rb
108
113
  - lib/httpkit/client.rb
109
- - lib/httpkit/client/keep_alive.rb
110
- - lib/httpkit/client/timeouts.rb
114
+ - lib/httpkit/client/body_handler.rb
115
+ - lib/httpkit/client/keep_alive_handler.rb
116
+ - lib/httpkit/client/mandatory_handler.rb
117
+ - lib/httpkit/client/timeouts_handler.rb
111
118
  - lib/httpkit/connection/eventmachine.rb
112
119
  - lib/httpkit/connection/status.rb
113
120
  - lib/httpkit/promise.rb
114
121
  - lib/httpkit/request.rb
115
122
  - lib/httpkit/response.rb
116
123
  - lib/httpkit/serializer.rb
117
- - lib/httpkit/serializer/encoding.rb
118
124
  - lib/httpkit/server.rb
119
- - lib/httpkit/server/keep_alive.rb
120
- - lib/httpkit/server/timeouts.rb
125
+ - lib/httpkit/server/body_handler.rb
126
+ - lib/httpkit/server/keep_alive_handler.rb
127
+ - lib/httpkit/server/mandatory_handler.rb
128
+ - lib/httpkit/server/timeouts_handler.rb
121
129
  - lib/httpkit/support/handler_manager.rb
122
130
  - lib/httpkit/support/message.rb
123
131
  - lib/httpkit/version.rb
@@ -130,6 +138,10 @@ files:
130
138
  - spec/spec_helper.rb
131
139
  - spec/support/handler.rb
132
140
  - spec/support/helper.rb
141
+ - spec/unit/body_spec.rb
142
+ - spec/unit/client/keep_alive_handler_spec.rb
143
+ - spec/unit/client/mandatory_handler_spec.rb
144
+ - spec/unit/client/timeouts_handler_spec.rb
133
145
  - spec/unit/client_spec.rb
134
146
  - spec/unit/connection/eventmachine_spec.rb
135
147
  - spec/unit/connection/status_spec.rb
@@ -137,34 +149,36 @@ files:
137
149
  - spec/unit/promise_spec.rb
138
150
  - spec/unit/request_spec.rb
139
151
  - spec/unit/response_spec.rb
140
- - spec/unit/server/keep_alive_spec.rb
152
+ - spec/unit/serializer_spec.rb
153
+ - spec/unit/server/keep_alive_handler_spec.rb
154
+ - spec/unit/server/mandatory_handler_spec.rb
155
+ - spec/unit/server/timeouts_handler_spec.rb
141
156
  - spec/unit/server_spec.rb
142
157
  - spec/unit/support/handler_manager_spec.rb
143
158
  - spec/unit/support/message_spec.rb
144
159
  homepage: https://github.com/lgierth/httpkit
145
160
  licenses:
146
161
  - Public Domain
162
+ metadata: {}
147
163
  post_install_message:
148
164
  rdoc_options: []
149
165
  require_paths:
150
166
  - lib
151
167
  required_ruby_version: !ruby/object:Gem::Requirement
152
- none: false
153
168
  requirements:
154
169
  - - ! '>='
155
170
  - !ruby/object:Gem::Version
156
171
  version: '0'
157
172
  required_rubygems_version: !ruby/object:Gem::Requirement
158
- none: false
159
173
  requirements:
160
174
  - - ! '>'
161
175
  - !ruby/object:Gem::Version
162
176
  version: 1.3.1
163
177
  requirements: []
164
178
  rubyforge_project:
165
- rubygems_version: 1.8.23
179
+ rubygems_version: 2.3.0
166
180
  signing_key:
167
- specification_version: 3
181
+ specification_version: 4
168
182
  summary: The HTTP toolkit for Ruby
169
183
  test_files:
170
184
  - spec/integration/error_handling_spec.rb
@@ -176,6 +190,10 @@ test_files:
176
190
  - spec/spec_helper.rb
177
191
  - spec/support/handler.rb
178
192
  - spec/support/helper.rb
193
+ - spec/unit/body_spec.rb
194
+ - spec/unit/client/keep_alive_handler_spec.rb
195
+ - spec/unit/client/mandatory_handler_spec.rb
196
+ - spec/unit/client/timeouts_handler_spec.rb
179
197
  - spec/unit/client_spec.rb
180
198
  - spec/unit/connection/eventmachine_spec.rb
181
199
  - spec/unit/connection/status_spec.rb
@@ -183,7 +201,10 @@ test_files:
183
201
  - spec/unit/promise_spec.rb
184
202
  - spec/unit/request_spec.rb
185
203
  - spec/unit/response_spec.rb
186
- - spec/unit/server/keep_alive_spec.rb
204
+ - spec/unit/serializer_spec.rb
205
+ - spec/unit/server/keep_alive_handler_spec.rb
206
+ - spec/unit/server/mandatory_handler_spec.rb
207
+ - spec/unit/server/timeouts_handler_spec.rb
187
208
  - spec/unit/server_spec.rb
188
209
  - spec/unit/support/handler_manager_spec.rb
189
210
  - spec/unit/support/message_spec.rb
@@ -1,43 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module HTTPkit
4
- class Serializer
5
- module Encoding
6
- TRANSFER_ENCODING = 'Transfer-Encoding'.freeze
7
- CHUNKED = 'chunked'.freeze
8
- CRLF = "\r\n".freeze
9
- CONTENT_LENGTH = 'Content-Length'.freeze
10
-
11
- def setup_chunked_encoding
12
- headers.delete(CONTENT_LENGTH)
13
- headers[TRANSFER_ENCODING] = CHUNKED
14
- end
15
-
16
- def setup_chunked_streaming
17
- body.closed.on_progress { |chunk| write_chunk(chunk) }
18
- body.closed.then { |_| write_chunk!('') }
19
- end
20
-
21
- def setup_identity_encoding
22
- headers.delete(TRANSFER_ENCODING)
23
- headers[CONTENT_LENGTH] = body.to_s.bytesize
24
- end
25
-
26
- def write_body
27
- if headers.key?(TRANSFER_ENCODING)
28
- write_chunk(body.string)
29
- else
30
- write(body.to_s)
31
- end
32
- end
33
-
34
- def write_chunk(chunk)
35
- write_chunk!(chunk) unless chunk.empty?
36
- end
37
-
38
- def write_chunk!(chunk)
39
- write(chunk.bytesize.to_s(16), CRLF, chunk, CRLF)
40
- end
41
- end
42
- end
43
- end