segregate 0.3.1 → 0.3.2
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/lib/segregate/version.rb +2 -2
- data/lib/segregate.rb +8 -3
- data/spec/segregate_spec.rb +9 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 650381fc8d34a02cc9c5a32f0a17d78063b4ff1b
|
4
|
+
data.tar.gz: 8d594fc4c8cd7602f43406aef2f10a4877a6a3e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 786702d456df832d92e1be71e4dc0501dba0138a7d42a77509f38293631b8f762594d728aaa62d2e99b4cd253d3db08338fae0e1ae58f85458109d5ed36973b9
|
7
|
+
data.tar.gz: 969e1c8f52fc64d63506c918e6777ceedb405b3d3c99cde8904576adb712bfd71e1254d3b087ffde15db3f7162707732f17dfc8ba1ec91ea3b411684cfe914e4
|
data/lib/segregate/version.rb
CHANGED
data/lib/segregate.rb
CHANGED
@@ -97,8 +97,9 @@ class Segregate
|
|
97
97
|
@header_orders.each do |header|
|
98
98
|
raw_message << "%s: %s\r\n" % [header, headers[header]]
|
99
99
|
end
|
100
|
+
raw_message << "\r\n"
|
100
101
|
|
101
|
-
raw_message <<
|
102
|
+
raw_message << @body + "\r\n\r\n" unless @body.empty?
|
102
103
|
end
|
103
104
|
|
104
105
|
def parse data
|
@@ -107,10 +108,16 @@ class Segregate
|
|
107
108
|
read_first_line data unless @first_line_complete
|
108
109
|
read_headers data unless @headers_complete
|
109
110
|
read_body data unless data.eof?
|
111
|
+
|
112
|
+
@callback.on_message_complete self if @callback.respond_to?(:on_message_complete) && @headers_complete && (no_body? || @body_complete)
|
110
113
|
end
|
111
114
|
|
112
115
|
private
|
113
116
|
|
117
|
+
def no_body?
|
118
|
+
(@headers['content-length'].nil? && @headers['content-encoding'].nil?)
|
119
|
+
end
|
120
|
+
|
114
121
|
def read data, size = nil
|
115
122
|
if size
|
116
123
|
data.read(size + 2).chomp("\r\n")
|
@@ -171,8 +178,6 @@ class Segregate
|
|
171
178
|
elsif headers['content-encoding'] == 'chunked'
|
172
179
|
parse_chunked_data data
|
173
180
|
end
|
174
|
-
|
175
|
-
@callback.on_body_complete self if @callback.respond_to?(:on_body_complete) && @body_complete
|
176
181
|
end
|
177
182
|
|
178
183
|
def parse_body data
|
data/spec/segregate_spec.rb
CHANGED
@@ -520,13 +520,19 @@ describe Segregate do
|
|
520
520
|
end
|
521
521
|
end
|
522
522
|
|
523
|
-
describe '
|
524
|
-
it 'calls the callback object' do
|
525
|
-
@callback_object.should_receive(:
|
523
|
+
describe 'on_message_complete' do
|
524
|
+
it 'calls the callback object with a body' do
|
525
|
+
@callback_object.should_receive(:on_message_complete).with(@parser)
|
526
526
|
@parser.parse "GET /endpoint HTTP/1.1\r\n"
|
527
527
|
@parser.parse "Content-Length: 8\r\n\r\n"
|
528
528
|
@parser.parse "TestData\r\n\r\n"
|
529
529
|
end
|
530
|
+
|
531
|
+
it 'calls the callback object without a body' do
|
532
|
+
@callback_object.should_receive(:on_message_complete).with(@parser)
|
533
|
+
@parser.parse "GET /endpoint HTTP/1.1\r\n"
|
534
|
+
@parser.parse "host: www.google.com\r\n\r\n"
|
535
|
+
end
|
530
536
|
end
|
531
537
|
end
|
532
538
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: segregate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Slaughter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|