grpc_required_annotator 0.1.0 → 0.1.1
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/.gitignore +3 -0
- data/.travis.yml +4 -0
- data/CHANGELOG.md +8 -0
- data/README.md +64 -4
- data/codedov.yml +6 -0
- data/grpc_required_annotator.gemspec +2 -0
- data/lib/grpc_required_annotator/version.rb +1 -1
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1137b3d27d1b455478c786c6df2da4a33b513afdfe7d78840fec1e04a94ebc6c
|
4
|
+
data.tar.gz: d7cdc0d1040b518741bc9dc05093b8451f4f3edfc44bb81f0f0d61748d178653
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc0d9bc0b179d0c211b36d09aec429bb80e8bbc9e6cd1e480bfd582a7173d462b895327dfb39788d430b689a6cc7f5d183268a976d7263776889a8c1d1e8edc3
|
7
|
+
data.tar.gz: 3e4ba2ff99650cf8ff003c9ac5c278919d9fe6834943fced118abf428bc8d755110b1777b5213a655d3523b180e66233a3f35b82c5e90260b2250dc08ba61789
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
sudo: false
|
3
3
|
language: ruby
|
4
4
|
cache: bundler
|
5
|
+
env:
|
6
|
+
global:
|
7
|
+
# CODECOV_TOKEN
|
8
|
+
- secure: "P2TGqdOBYoDwwI/WxfwNOt9ITRVx0/nx6BBq3TX+oJ4I7L7FLj4CDp96OnrqpvyRScEAnWIW6K9vr4yv2wvXGsCRAVvauFJz2nLi3ZMCR8vHMLh64jINhfqIbJ1tRvtNy7DvyXNJDYQqUAWjo5ZbcuM+oYq9f8mfzquee5YzYLWhf96r3xsWEbJ3YVJyVNQoA7m35Mhqned9pESjIm2P0nZRF9C+6/lAPbsphEnnpBakz9k3wy7ALJ9wGfKpoUJ6DjtraoCRxPrWmg0pCOzVbATOVFWaKT7xcqJIeYSE7Q6aaLakrccfbPMumWUqU1sie5cT0WOhRdsiEEoS7xelRSmfnkmtz9EYB7xCRNB7X/AeqeH+YXUsWMoFiqs/oLUezay6AINBUgpSRACn14xx6lmbo4JKRYOLMW3/DcrV0aZzkSh5ARZA4VrmaGVxaR6a/jeZtpVvqfUHI5grkiM5wfVT/QoeWfYGH15AUp+g5l521BRfV+mf4mJVv2ShYgcrRX714D6p280xmcASy7TzxSftDXo47rZaFeHUm83HtGkBnSZphyjtizR5PXdb54MZHedjqiOeo9HH7MA4cSYZRN7dqSl2LbDjmnVEESREIou/YyR9WbmxGkod/JHMEcamNCInwcby/Pi/2hgVaLwFgMgQbWQpUYv+Ofs16t/IMk4="
|
5
9
|
rvm:
|
6
10
|
- 2.6.3
|
7
11
|
before_install: gem install bundler -v 2.0.2
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,19 @@
|
|
1
|
-
# GrpcRequiredAnnotator
|
1
|
+
# GrpcRequiredAnnotator [](https://badge.fury.io/rb/grpc_required_annotator) [](https://travis-ci.com/euglena1215/grpc_required_annotator) [](https://codecov.io/gh/euglena1215/grpc_required_annotator)
|
2
2
|
|
3
|
-
|
3
|
+
GrpcRequiredAnnotator is a annotator for null validation of gRPC requests using `required`.
|
4
4
|
|
5
|
-
|
5
|
+
### Supported Types
|
6
|
+
|
7
|
+
- Integer (int64, int32, etc...)
|
8
|
+
- String (string)
|
9
|
+
- Google::Protobuf::FieldMask (field_mask)
|
10
|
+
- Array (repeated fields)
|
11
|
+
- Symbol (enum)
|
12
|
+
|
13
|
+
### Unsupported Types
|
14
|
+
|
15
|
+
- oneof
|
16
|
+
- embedded messages
|
6
17
|
|
7
18
|
## Installation
|
8
19
|
|
@@ -22,7 +33,56 @@ Or install it yourself as:
|
|
22
33
|
|
23
34
|
## Usage
|
24
35
|
|
25
|
-
|
36
|
+
```proto
|
37
|
+
syntax = "proto3";
|
38
|
+
package sample;
|
39
|
+
|
40
|
+
option ruby_package = "SamplePb";
|
41
|
+
|
42
|
+
service Sample {
|
43
|
+
rpc Foo (FooRequest) returns (FooResponse);
|
44
|
+
}
|
45
|
+
|
46
|
+
message FooRequest {
|
47
|
+
int64 a = 1;
|
48
|
+
string b = 2;
|
49
|
+
}
|
50
|
+
|
51
|
+
message FooResponse {
|
52
|
+
int64 a = 1;
|
53
|
+
string b = 2;
|
54
|
+
}
|
55
|
+
```
|
56
|
+
|
57
|
+
```rb
|
58
|
+
class SampleService < SamplePb::Sample::Service
|
59
|
+
include GrpcRequiredAnnotator
|
60
|
+
|
61
|
+
# If a or b are null, raises GRPC::InvalidArgument
|
62
|
+
required :a, :b
|
63
|
+
def foo(request, call)
|
64
|
+
## `required :a, :b` is equivalent to the following:
|
65
|
+
# raise GRPC::InvalidArgument.new("`a` is required") if req.a == 0
|
66
|
+
# raise GRPC::InvalidArgument.new("`b` is required") if req.b == ""
|
67
|
+
FooResponse.new(a: req.a, b: req.b)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
```
|
71
|
+
|
72
|
+
### Testing by rspec
|
73
|
+
|
74
|
+
```rb
|
75
|
+
RSpec.describe SampleService do
|
76
|
+
describe "#foo" do
|
77
|
+
describe "required" do
|
78
|
+
it "a and b are required" do
|
79
|
+
expect(described_class.required_fields(:foo)).to eq [:a, :b]
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
```
|
26
86
|
|
27
87
|
## Development
|
28
88
|
|
data/codedov.yml
ADDED
@@ -35,4 +35,6 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.add_development_dependency "rake", "~> 10.0"
|
36
36
|
spec.add_development_dependency "rspec", "~> 3.0"
|
37
37
|
spec.add_development_dependency "pry-byebug"
|
38
|
+
spec.add_development_dependency "simplecov"
|
39
|
+
spec.add_development_dependency "codecov"
|
38
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grpc_required_annotator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shintani Teppei
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grpc
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: codecov
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
description: Annotator for null validation of gRPC requests using `required`
|
98
126
|
email:
|
99
127
|
- teppest1215@gmail.com
|
@@ -113,6 +141,7 @@ files:
|
|
113
141
|
- Rakefile
|
114
142
|
- bin/console
|
115
143
|
- bin/setup
|
144
|
+
- codedov.yml
|
116
145
|
- grpc_required_annotator.gemspec
|
117
146
|
- lib/grpc_required_annotator.rb
|
118
147
|
- lib/grpc_required_annotator/required.rb
|