diff options
Diffstat (limited to 'lib/plum/frame_factory.rb')
-rw-r--r-- | lib/plum/frame_factory.rb | 15 |
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 |