aboutsummaryrefslogtreecommitdiffstats
path: root/lib/plum/frame_factory.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plum/frame_factory.rb')
-rw-r--r--lib/plum/frame_factory.rb15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/plum/frame_factory.rb b/lib/plum/frame_factory.rb
index 686f88e..51908ec 100644
--- a/lib/plum/frame_factory.rb
+++ b/lib/plum/frame_factory.rb
@@ -1,3 +1,4 @@
+# -*- frozen-string-literal: true -*-
using Plum::BinaryString
module Plum
@@ -6,7 +7,7 @@ module Plum
# @param stream_id [Integer] The stream ID.
# @param error_type [Symbol] The error type defined in RFC 7540 Section 7.
def rst_stream(stream_id, error_type)
- payload = "".push_uint32(HTTPError::ERROR_CODES[error_type])
+ payload = String.new.push_uint32(HTTPError::ERROR_CODES[error_type])
Frame.new(type: :rst_stream, stream_id: stream_id, payload: payload)
end
@@ -16,9 +17,9 @@ module Plum
# @param message [String] Additional debug data.
# @see RFC 7540 Section 6.8
def goaway(last_id, error_type, message = "")
- payload = "".push_uint32((last_id || 0) | (0 << 31))
- .push_uint32(HTTPError::ERROR_CODES[error_type])
- .push(message)
+ payload = String.new.push_uint32((last_id || 0) | (0 << 31))
+ .push_uint32(HTTPError::ERROR_CODES[error_type])
+ .push(message)
Frame.new(type: :goaway, stream_id: 0, payload: payload)
end
@@ -26,7 +27,7 @@ module Plum
# @param ack [Symbol] Pass :ack to create an ACK frame.
# @param args [Hash<Symbol, Integer>] The settings values to send.
def settings(ack = nil, **args)
- payload = args.inject("") {|payload, (key, value)|
+ payload = args.inject(String.new) {|payload, (key, value)|
id = Frame::SETTINGS_TYPE[key] or raise ArgumentError.new("invalid settings type")
payload.push_uint16(id)
payload.push_uint32(value)
@@ -71,8 +72,8 @@ module Plum
# @param encoded [String] Request headers.
# @param flags [Array<Symbol>] Flags.
def push_promise(stream_id, new_id, encoded, *flags)
- payload = "".push_uint32(0 << 31 | new_id)
- .push(encoded)
+ payload = String.new.push_uint32(new_id)
+ .push(encoded)
Frame.new(type: :push_promise, stream_id: stream_id, flags: flags, payload: payload)
end