rails_respond_to_pb 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 27c0b4bdc93f8fa61505a205af19a464e1c76537fba1e5dc920aa1fbae17b0d3
4
- data.tar.gz: f0f8c4030a7418df027cb23335f90bff71005329bd9ca4708db902a67ade1a51
3
+ metadata.gz: 1c322c035c9d8609dc8627e797c78c18a180646114ca046e712de5c602833471
4
+ data.tar.gz: 4620238b1f729bf8afff9f914e89c66d2f28fd19527012bbbd292302cd5da68d
5
5
  SHA512:
6
- metadata.gz: 8077c5f026c6e8f945f0a522e260bb65a7fcc49a5e37d37dda3c0d08703d645ca32c2929579586ac52e9dbbb14f8eecda86dfb3d4005a9ab685978f93643dee2
7
- data.tar.gz: 90f9cbd36f60285beefa99a540ae747dfd336939ef66fcba19d3eb32f25e8b4b74a4b15b2082d33395dfc2c6ee1555d7972d79fc9c7a0aa4acd98f55a38b8bd9
6
+ metadata.gz: 2e46f10d9b60f0670413af3683d9ef4ad72d6f84ac1e7773d2bb690ac8e62273e8f48d4de3bd0dc8db2296c7a2eb661d2380945f1a3dec45fa4408392da4a7a8
7
+ data.tar.gz: 7888edb96143bba2691b486e81368bf3917d20ddd1c6fe66a47b2d7f388fe6b0c3808d01cbeafdcfe2ee7e97bc0e0ab72ab59e20759b049f0ac10cc6ad2d306a
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # rails_respond_to_pb
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/rails_respond_to_pb.svg)](https://badge.fury.io/rb/rails_respond_to_pb)
4
+
3
5
  This gem allows you to route RPC calls via protobuf to an existing rails controller. Currently supporting:
4
6
 
5
7
  - [Twirp](https://github.com/twitchtv/twirp-ruby)
@@ -31,7 +33,8 @@ This gem loads Rails middleware that routes to services with Controllers as Hand
31
33
  - assumes a single `ThingsService` per controller
32
34
  - Typical Rails namey-ness conventions are followed here
33
35
  - assumes a `ThingsService` routes to a `ThingsController`
34
- - loads any `_twirp.rb` files may exist within any folder of your app's `lib` directory
36
+ - looking into building generating proto files from controllers
37
+ - loads any `_twirp.rb` files that exist within your app's `lib` directory
35
38
  - allows a controller to `respond_to` the `pb` format
36
39
  - currently you'd respond with a `render plain: ThingResponse.new(id: 1, name: 'Foo').to_proto`
37
40
  - looking into `render pb:`
@@ -44,11 +47,11 @@ syntax = "proto3";
44
47
  service Things {
45
48
  // these rpc methods are important - use what's in the corresponding ThingsController.
46
49
  // whatever is sent as an argument will be made available to the controller as `params`
47
- rpc create (ThingParams) returns (ThingResponse);
48
- rpc show (ThingParams) returns (ThingResponse);
49
- rpc index (ThingFilter) returns (ThingList);
50
- rpc update (ThingParams) returns (ThingResponse);
51
- rpc destroy (ThingParams) returns (ThingResponse);
50
+ rpc Create (ThingParams) returns (ThingResponse);
51
+ rpc Show (ThingParams) returns (ThingResponse);
52
+ rpc Index (ThingFilter) returns (ThingList);
53
+ rpc Update (ThingParams) returns (ThingResponse);
54
+ rpc Destroy (ThingParams) returns (ThingResponse);
52
55
  }
53
56
 
54
57
  message ThingParams {
@@ -97,6 +100,15 @@ respond_to do |format|
97
100
  render plain: YourProtoResponse.to_proto
98
101
  ```
99
102
 
103
+ Of note, if you're trying to wire up **entirely new** methods, you do **NOT** need this gem at all, and you can simply add this to your routes file:
104
+
105
+ ```ruby
106
+ handler = ThingsHandler.new()
107
+ service = ThingsService.new(handler)
108
+
109
+ mount service, at: service.full_name
110
+ ```
111
+
100
112
  ### Client
101
113
 
102
114
  Assuming you have the prerequisite Client files loaded in your application, you can connect to a Twirp server as usual:
@@ -107,6 +119,18 @@ query = ThingFilter.new name: 'foo'
107
119
  client.index(query)
108
120
  ```
109
121
 
122
+ ## Development
123
+
124
+ I typically add an alias to make working with dockerized apps easier. This assumes [docker](https://docs.docker.com/get-docker/) is running.
125
+
126
+ ```sh
127
+ alias dr="docker compose run --rm "
128
+ ```
129
+
130
+ After checking out the repo, run `dr bundle install` to spin up a container, and install dependencies. Then, run `dr rspec spec` to run the tests. You can also run `dr bundle console` for an interactive prompt that will allow you to experiment.
131
+
132
+ To release a new version, update the version number in `version.rb`, and then run `dr bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
133
+
110
134
  ### Building protos
111
135
 
112
136
  For inspiration on how to build proto files locally (and working with docker-compose), here are some services to use within your application:
@@ -154,18 +178,6 @@ FROM ruby:3
154
178
  COPY --from=go /go/bin /usr/local/bin
155
179
  ```
156
180
 
157
- ## Development
158
-
159
- I typically add an alias to make working with dockerized apps easier. This assumes [docker](https://docs.docker.com/get-docker/) is running.
160
-
161
- ```sh
162
- alias dr="docker compose run --rm "
163
- ```
164
-
165
- After checking out the repo, run `dr bundle install` to spin up a container, and install dependencies. Then, run `dr rspec spec` to run the tests. You can also run `dr bundle console` for an interactive prompt that will allow you to experiment.
166
-
167
- To release a new version, update the version number in `version.rb`, and then run `dr bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
168
-
169
181
  ## Contributing
170
182
 
171
183
  Bug reports and pull requests are welcome on [GitHub](https://github.com/[USERNAME]/rails_respond_to_pb). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/rails_respond_to_pb/blob/main/CODE_OF_CONDUCT.md).
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsRespondToPb
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'Middleware for a Rails App providing functionality for gRPC and Twirp'
13
13
  spec.homepage = 'https://github.com/dudo/rails_respond_to_pb'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 3.0.0')
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7')
16
16
 
17
17
  # spec.metadata['allowed_push_host'] = 'http://mygemserver.com'
18
18
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_respond_to_pb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett C. Dudo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-18 00:00:00.000000000 Z
11
+ date: 2021-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc-tools
@@ -87,7 +87,7 @@ metadata:
87
87
  homepage_uri: https://github.com/dudo/rails_respond_to_pb
88
88
  source_code_uri: https://github.com/dudo/rails_respond_to_pb
89
89
  changelog_uri: https://github.com/dudo/rails_respond_to_pb/blob/main/CHANGELOG.md
90
- post_install_message:
90
+ post_install_message:
91
91
  rdoc_options: []
92
92
  require_paths:
93
93
  - lib
@@ -95,15 +95,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - ">="
97
97
  - !ruby/object:Gem::Version
98
- version: 3.0.0
98
+ version: '2.7'
99
99
  required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  requirements: []
105
- rubygems_version: 3.2.25
106
- signing_key:
105
+ rubygems_version: 3.2.32
106
+ signing_key:
107
107
  specification_version: 4
108
108
  summary: Middleware for a Rails App providing functionality for gRPC and Twirp
109
109
  test_files: []