aboutsummaryrefslogtreecommitdiffstats
path: root/lib/plum/hpack/encoder.rb
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-10-26 20:30:04 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-10-26 20:30:04 +0900
commitff7e81f4aba4995633b91adf0bbb8e45a6357444 (patch)
treee9101df02c26d52c60597d325e6aae6da0211651 /lib/plum/hpack/encoder.rb
parent1f541f2a210c32fbb094d3948347940cb107e478 (diff)
parent462b3646c9026e36d84d5c03caa7b63345d64f9f (diff)
downloadplum-ff7e81f4aba4995633b91adf0bbb8e45a6357444.tar.gz
Merge branch 'frozen-string-literal'
Diffstat (limited to 'lib/plum/hpack/encoder.rb')
-rw-r--r--lib/plum/hpack/encoder.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/plum/hpack/encoder.rb b/lib/plum/hpack/encoder.rb
index 152b0fe..d817589 100644
--- a/lib/plum/hpack/encoder.rb
+++ b/lib/plum/hpack/encoder.rb
@@ -1,3 +1,4 @@
+# -*- frozen-string-literal: true -*-
using Plum::BinaryString
module Plum
@@ -10,9 +11,8 @@ module Plum
@indexing = indexing
@huffman = huffman
end
-
def encode(headers)
- out = ""
+ out = String.new.force_encoding(Encoding::BINARY)
headers.each do |name, value|
name = name.to_s
value = value.to_s
@@ -24,7 +24,7 @@ module Plum
out << encode_literal(name, value)
end
end
- out.force_encoding(Encoding::BINARY)
+ out
end
private
@@ -46,7 +46,7 @@ module Plum
else
fb = "\x00"
end
- fb.force_encoding(Encoding::BINARY) << encode_string(name) << encode_string(value)
+ (fb + encode_string(name)) << encode_string(value)
end
# +---+---+---+---+---+---+---+---+
@@ -106,8 +106,7 @@ module Plum
def encode_string_huffman(str)
huffman_str = Huffman.encode(str)
- lenstr = encode_integer(huffman_str.bytesize, 7, 0b10000000)
- lenstr << huffman_str
+ encode_integer(huffman_str.bytesize, 7, 0b10000000) << huffman_str
end
end
end