protocol-grpc 0.7.0 → 0.9.0
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
- checksums.yaml.gz.sig +0 -0
- data/context/getting-started.md +2 -2
- data/lib/protocol/grpc/header/message.rb +1 -1
- data/lib/protocol/grpc/header/status.rb +1 -1
- data/lib/protocol/grpc/header.rb +1 -2
- data/lib/protocol/grpc/interface.rb +1 -1
- data/lib/protocol/grpc/methods.rb +10 -4
- data/lib/protocol/grpc/version.rb +2 -2
- data/license.md +1 -1
- data.tar.gz.sig +0 -0
- metadata +1 -2
- metadata.gz.sig +0 -0
- data/lib/protocol/grpc/header/metadata.rb +0 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7a4e884fa493dfbcc313a9c261b9d0cbeef027dc04b7ad99f031160f9231a8e5
|
|
4
|
+
data.tar.gz: f0bb7c75757eef5ae129197304ebe1922b928348b65560512ef110586d49ba66
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1a9db6d101f6f41583d0b8c09fd00f7c4aa03de315e6a969484ae9c48b23a102b5c957bd47cd3c99d70c367e944d18f23e36c27436c8d8d897df7339d49bf9f7
|
|
7
|
+
data.tar.gz: 90f1f8718e1b147cae4a6140aa2b391cb513abe89fa53708c22f5fa8f40724c36c61f35ad448e5ccbcf5437cb4e9bc4e4ee4b4276ea9f1e26399716d55c6fc5c
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/context/getting-started.md
CHANGED
|
@@ -91,8 +91,8 @@ require "protocol/grpc/body/readable"
|
|
|
91
91
|
|
|
92
92
|
# Read response body
|
|
93
93
|
readable_body = Protocol::GRPC::Body::Readable.new(
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
response.body,
|
|
95
|
+
message_class: Hello::HelloReply
|
|
96
96
|
)
|
|
97
97
|
|
|
98
98
|
message = readable_body.read
|
data/lib/protocol/grpc/header.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2025, by Samuel Williams.
|
|
4
|
+
# Copyright, 2025-2026, by Samuel Williams.
|
|
5
5
|
|
|
6
6
|
require "protocol/http"
|
|
7
7
|
|
|
8
8
|
require_relative "status"
|
|
9
9
|
require_relative "header/status"
|
|
10
10
|
require_relative "header/message"
|
|
11
|
-
require_relative "header/metadata"
|
|
12
11
|
|
|
13
12
|
module Protocol
|
|
14
13
|
module GRPC
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2025, by Samuel Williams.
|
|
4
|
+
# Copyright, 2025-2026, by Samuel Williams.
|
|
5
5
|
|
|
6
6
|
require "base64"
|
|
7
7
|
require "protocol/http"
|
|
@@ -55,16 +55,22 @@ module Protocol
|
|
|
55
55
|
def self.extract_metadata(headers)
|
|
56
56
|
metadata = {}
|
|
57
57
|
|
|
58
|
-
headers.each do |key, value|
|
|
58
|
+
headers.to_h.each do |key, value|
|
|
59
59
|
# Skip reserved headers:
|
|
60
60
|
next if key.start_with?("grpc-") || key == "content-type" || key == "te"
|
|
61
61
|
|
|
62
62
|
# Decode binary headers:
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
if key.end_with?("-bin")
|
|
64
|
+
if value.is_a?(String)
|
|
65
|
+
value = Base64.strict_decode64(value)
|
|
66
|
+
elsif value.is_a?(Array)
|
|
67
|
+
value = value.map{|item| Base64.strict_decode64(item)}
|
|
68
|
+
end
|
|
65
69
|
else
|
|
66
70
|
value
|
|
67
71
|
end
|
|
72
|
+
|
|
73
|
+
metadata[key] = value
|
|
68
74
|
end
|
|
69
75
|
|
|
70
76
|
metadata
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2025, by Samuel Williams.
|
|
4
|
+
# Copyright, 2025-2026, by Samuel Williams.
|
|
5
5
|
|
|
6
6
|
# @namespace
|
|
7
7
|
module Protocol
|
|
8
8
|
# @namespace
|
|
9
9
|
module GRPC
|
|
10
|
-
VERSION = "0.
|
|
10
|
+
VERSION = "0.9.0"
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
|
data/license.md
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: protocol-grpc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -110,7 +110,6 @@ files:
|
|
|
110
110
|
- lib/protocol/grpc/error.rb
|
|
111
111
|
- lib/protocol/grpc/header.rb
|
|
112
112
|
- lib/protocol/grpc/header/message.rb
|
|
113
|
-
- lib/protocol/grpc/header/metadata.rb
|
|
114
113
|
- lib/protocol/grpc/header/status.rb
|
|
115
114
|
- lib/protocol/grpc/health_check.rb
|
|
116
115
|
- lib/protocol/grpc/interface.rb
|
metadata.gz.sig
CHANGED
|
Binary file
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2025, by Samuel Williams.
|
|
5
|
-
|
|
6
|
-
require "protocol/http"
|
|
7
|
-
|
|
8
|
-
module Protocol
|
|
9
|
-
module GRPC
|
|
10
|
-
module Header
|
|
11
|
-
# Base class for custom gRPC metadata (allowed in trailers).
|
|
12
|
-
class Metadata < Protocol::HTTP::Header::Split
|
|
13
|
-
# Whether this header is acceptable in HTTP trailers.
|
|
14
|
-
# The `grpc-metadata` header can appear in trailers as per the gRPC specification.
|
|
15
|
-
# @returns [Boolean] `true`, as grpc-metadata can appear in trailers.
|
|
16
|
-
def self.trailer?
|
|
17
|
-
true
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|