rails_respond_to_pb 0.1.2 → 0.1.3

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: dfaac3cf5080bc47d884e92e4fa12da3512490396c1e40fed79172667a645527
4
- data.tar.gz: 7570d05d12f924e6498c7497d7e0bae2133fb6d95a652ea6c64a81797db4cbe7
3
+ metadata.gz: 27c0b4bdc93f8fa61505a205af19a464e1c76537fba1e5dc920aa1fbae17b0d3
4
+ data.tar.gz: f0f8c4030a7418df027cb23335f90bff71005329bd9ca4708db902a67ade1a51
5
5
  SHA512:
6
- metadata.gz: 43ab9bf02f8652bec55b073532c6ec06d5fc45a8c7c5668832c5644874f4d977a2e4294fd47b2db516dabd10f303b4efdccaa7faff7d8e64be294a7b5338034a
7
- data.tar.gz: a5e70fb72e256eca9558e2f7a19b1213da54f9daf5df680c7d7e51353241fbd688fd19c5e0e02b8723f22bee055f8633b3f03a2d01833c6136a94643f614f374
6
+ metadata.gz: 8077c5f026c6e8f945f0a522e260bb65a7fcc49a5e37d37dda3c0d08703d645ca32c2929579586ac52e9dbbb14f8eecda86dfb3d4005a9ab685978f93643dee2
7
+ data.tar.gz: 90f9cbd36f60285beefa99a540ae747dfd336939ef66fcba19d3eb32f25e8b4b74a4b15b2082d33395dfc2c6ee1555d7972d79fc9c7a0aa4acd98f55a38b8bd9
data/CHANGELOG.md CHANGED
@@ -5,6 +5,6 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## 0.1.2
8
+ ## 0.1.3
9
9
 
10
10
  - In the beginning...
data/README.md CHANGED
@@ -33,7 +33,7 @@ This gem loads Rails middleware that routes to services with Controllers as Hand
33
33
  - assumes a `ThingsService` routes to a `ThingsController`
34
34
  - loads any `_twirp.rb` files may exist within any folder of your app's `lib` directory
35
35
  - allows a controller to `respond_to` the `pb` format
36
- - currently you'd respond with a `render plain: ThingResponse.new(id: 1, name: 'Foo').proto`
36
+ - currently you'd respond with a `render plain: ThingResponse.new(id: 1, name: 'Foo').to_proto`
37
37
  - looking into `render pb:`
38
38
 
39
39
  Generate a proto like this for each of your controllers (`rpc` methods should match your controller methods. `message` is to your discretion):
@@ -72,11 +72,34 @@ message ThingList {
72
72
 
73
73
  ### Server
74
74
 
75
- This gem will allow your app to respond to Twirp requests. No setup required, other than having the prerequisite Service files loaded in your application.
75
+ This gem will allow your app to respond to Twirp requests. There is little setup required, other than having the prerequisite Service files loaded in your application.
76
+
77
+ Given a Service file of `ThingsService`, this gem assumes the presence of a `ThingsController` with actions corresponding with `rpc` methods. To allow your controller to respond to the RPC request, simply update the action accordingly:
78
+
79
+ ```ruby
80
+ def index
81
+ # ... business as usual
82
+
83
+ respond_to do |format|
84
+ format.pb do
85
+ render plain: ThingList.new(things: Thing.all.map { |r| ThingResponse.new(r.as_json) }).to_proto
86
+ end
87
+ format.json { render: Thing.all.as_json } # or whatever your controller responds to usually
88
+ end
89
+ end
90
+ ```
91
+
92
+ The **required** setup here is:
93
+
94
+ ```ruby
95
+ respond_to do |format|
96
+ format.pb do
97
+ render plain: YourProtoResponse.to_proto
98
+ ```
76
99
 
77
100
  ### Client
78
101
 
79
- Assuming you have the prerequisite Client files loaded in your application, you can connect to a Twirp server
102
+ Assuming you have the prerequisite Client files loaded in your application, you can connect to a Twirp server as usual:
80
103
 
81
104
  ```ruby
82
105
  client = ThingsClient.new('http://localhost:3000')
@@ -139,7 +162,7 @@ I typically add an alias to make working with dockerized apps easier. This assum
139
162
  alias dr="docker compose run --rm "
140
163
  ```
141
164
 
142
- 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 exec console` for an interactive prompt that will allow you to experiment.
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.
143
166
 
144
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).
145
168
 
data/docker-compose.yml CHANGED
@@ -9,6 +9,10 @@ services:
9
9
  volumes:
10
10
  - .:/usr/src/gem:delegated
11
11
  - bundle:/usr/local/bundle:delegated
12
+ - ~/.gitconfig:/etc/gitconfig:ro
13
+ - ~/.ssh:/root/.ssh:ro
14
+ - ~/.gemrc:/etc/.gemrc:ro
15
+ - ~/.local/share/gem/credentials:/root/.local/share/gem/credentials:ro
12
16
 
13
17
  rspec:
14
18
  <<: *bundle
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsRespondToPb
4
- VERSION = '0.1.2'
4
+ VERSION = '0.1.3'
5
5
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_respond_to_pb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
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
11
  date: 2021-08-18 00:00:00.000000000 Z
@@ -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
@@ -102,8 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  requirements: []
105
- rubygems_version: 3.2.3
106
- signing_key:
105
+ rubygems_version: 3.2.25
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: []