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

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.
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