rails_twirp 0.13.1 → 0.14

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.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +21 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Gemfile +2 -0
  5. data/Rakefile +2 -0
  6. data/bin/test +5 -0
  7. data/lib/commands/twirp/routes_command.rb +2 -0
  8. data/lib/rails_twirp/application.rb +2 -0
  9. data/lib/rails_twirp/engine.rb +2 -0
  10. data/lib/rails_twirp/errors.rb +2 -0
  11. data/lib/rails_twirp/exception_handling.rb +2 -0
  12. data/lib/rails_twirp/implicit_render.rb +2 -0
  13. data/lib/rails_twirp/instrumentation.rb +2 -0
  14. data/lib/rails_twirp/log_subscriber.rb +2 -0
  15. data/lib/rails_twirp/mapper.rb +2 -0
  16. data/lib/rails_twirp/render_pb.rb +2 -0
  17. data/lib/rails_twirp/rescue.rb +2 -0
  18. data/lib/rails_twirp/route_set.rb +2 -0
  19. data/lib/rails_twirp/testing/integration_test.rb +108 -0
  20. data/lib/rails_twirp/url_for.rb +2 -0
  21. data/lib/rails_twirp/version.rb +3 -1
  22. data/lib/rails_twirp.rb +2 -0
  23. data/rails_twirp.gemspec +3 -1
  24. data/test/dummy/Rakefile +8 -0
  25. data/test/dummy/app/assets/config/manifest.js +2 -0
  26. data/test/dummy/app/assets/images/.keep +0 -0
  27. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  28. data/test/dummy/app/channels/application_cable/channel.rb +6 -0
  29. data/test/dummy/app/channels/application_cable/connection.rb +6 -0
  30. data/test/dummy/app/controllers/application_controller.rb +4 -0
  31. data/test/dummy/app/controllers/application_twirp_controller.rb +9 -0
  32. data/test/dummy/app/controllers/concerns/.keep +0 -0
  33. data/test/dummy/app/controllers/dummy_controller.rb +7 -0
  34. data/test/dummy/app/controllers/pings_controller.rb +42 -0
  35. data/test/dummy/app/controllers/testmod/nested/other_controller.rb +12 -0
  36. data/test/dummy/app/helpers/application_helper.rb +4 -0
  37. data/test/dummy/app/helpers/random_helper.rb +7 -0
  38. data/test/dummy/app/javascript/packs/application.js +15 -0
  39. data/test/dummy/app/jobs/application_job.rb +9 -0
  40. data/test/dummy/app/mailers/application_mailer.rb +6 -0
  41. data/test/dummy/app/models/application_record.rb +5 -0
  42. data/test/dummy/app/models/concerns/.keep +0 -0
  43. data/test/dummy/app/views/dummy/rpc_name_check.pb.pbbuilder +3 -0
  44. data/test/dummy/app/views/layouts/application.html.erb +15 -0
  45. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  46. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  47. data/test/dummy/app/views/pings/ping_template.pb.pbbuilder +1 -0
  48. data/test/dummy/bin/generate +3 -0
  49. data/test/dummy/bin/rails +4 -0
  50. data/test/dummy/bin/rake +4 -0
  51. data/test/dummy/bin/setup +33 -0
  52. data/test/dummy/config/application.rb +25 -0
  53. data/test/dummy/config/boot.rb +7 -0
  54. data/test/dummy/config/cable.yml +10 -0
  55. data/test/dummy/config/database.yml +25 -0
  56. data/test/dummy/config/environment.rb +7 -0
  57. data/test/dummy/config/environments/development.rb +78 -0
  58. data/test/dummy/config/environments/production.rb +122 -0
  59. data/test/dummy/config/environments/test.rb +61 -0
  60. data/test/dummy/config/initializers/application_controller_renderer.rb +10 -0
  61. data/test/dummy/config/initializers/backtrace_silencers.rb +10 -0
  62. data/test/dummy/config/initializers/content_security_policy.rb +30 -0
  63. data/test/dummy/config/initializers/cookies_serializer.rb +7 -0
  64. data/test/dummy/config/initializers/filter_parameter_logging.rb +8 -0
  65. data/test/dummy/config/initializers/inflections.rb +18 -0
  66. data/test/dummy/config/initializers/mime_types.rb +6 -0
  67. data/test/dummy/config/initializers/permissions_policy.rb +13 -0
  68. data/test/dummy/config/initializers/wrap_parameters.rb +16 -0
  69. data/test/dummy/config/locales/en.yml +33 -0
  70. data/test/dummy/config/puma.rb +45 -0
  71. data/test/dummy/config/routes.rb +5 -0
  72. data/test/dummy/config/storage.yml +34 -0
  73. data/test/dummy/config/twirp/routes.rb +24 -0
  74. data/test/dummy/config.ru +8 -0
  75. data/test/dummy/lib/assets/.keep +0 -0
  76. data/test/dummy/log/.keep +0 -0
  77. data/test/dummy/proto/api.proto +30 -0
  78. data/test/dummy/proto/api_pb.rb +31 -0
  79. data/test/dummy/proto/api_twirp.rb +27 -0
  80. data/test/dummy/public/404.html +67 -0
  81. data/test/dummy/public/422.html +67 -0
  82. data/test/dummy/public/500.html +66 -0
  83. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  84. data/test/dummy/public/apple-touch-icon.png +0 -0
  85. data/test/dummy/public/favicon.ico +0 -0
  86. data/test/dummy_test.rb +12 -0
  87. data/test/other_controller_test.rb +11 -0
  88. data/test/ping_controller_test.rb +116 -0
  89. data/test/rails_twirp_test.rb +9 -0
  90. data/test/test_helper.rb +18 -0
  91. metadata +72 -2
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code generated by protoc-gen-twirp_ruby 1.8.0, DO NOT EDIT.
4
+ require "twirp"
5
+ require_relative "api_pb"
6
+
7
+ module RPC
8
+ module DummyAPI
9
+ class DummyService < Twirp::Service
10
+ package "dummy.api"
11
+ service "Dummy"
12
+ rpc :Ping, PingRequest, PingResponse, ruby_method: :ping
13
+ rpc :PingRender, PingRequest, PingResponse, ruby_method: :ping_render
14
+ rpc :PingTemplate, PingRequest, PingResponse, ruby_method: :ping_template
15
+ rpc :ErrorResponse, PingRequest, PingResponse, ruby_method: :error_response
16
+ rpc :RaiseError, PingRequest, PingResponse, ruby_method: :raise_error
17
+ rpc :UncaughtError, PingRequest, PingResponse, ruby_method: :uncaught_error
18
+ rpc :BeforeError, PingRequest, PingResponse, ruby_method: :before_error
19
+ rpc :Nested, PingRequest, PingResponse, ruby_method: :nested
20
+ rpc :RpcNameCheck, RpcNameCheckRequest, RpcNameCheckResponse, ruby_method: :rpc_name_check
21
+ end
22
+
23
+ class DummyClient < Twirp::Client
24
+ client_for DummyService
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
File without changes
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class DummyControllerTest < RailsTwirp::IntegrationTest
6
+ test "controller gets rpc name" do
7
+ req = RPC::DummyAPI::RpcNameCheckRequest.new
8
+ rpc RPC::DummyAPI::DummyService, "RpcNameCheck", req
9
+ assert_instance_of RPC::DummyAPI::RpcNameCheckResponse, response
10
+ assert_equal "RpcNameCheck", response.rpc_name
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class OtherControllerTest < RailsTwirp::IntegrationTest
6
+ test "modules work" do
7
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
8
+ rpc RPC::DummyAPI::DummyService, "Nested", req
9
+ assert_equal "BoukeBouke", response.double_name
10
+ end
11
+ end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class PingControllerTest < RailsTwirp::IntegrationTest
6
+ test "you can ping it" do
7
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
8
+ rpc RPC::DummyAPI::DummyService, "Ping", req
9
+ assert_equal "BoukeBouke", response.double_name
10
+ end
11
+
12
+ test "you can ping render" do
13
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
14
+ rpc RPC::DummyAPI::DummyService, "PingRender", req
15
+ refute_instance_of Twirp::Error, response
16
+ assert_equal "http://www.example.com/twirp BoukeBouke", response.double_name
17
+ end
18
+
19
+ test "you can ping render with host and https" do
20
+ host! "localhost"
21
+ https!
22
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
23
+ rpc RPC::DummyAPI::DummyService, "PingRender", req
24
+ refute_instance_of Twirp::Error, response
25
+ assert_equal "https://localhost/twirp BoukeBouke", response.double_name
26
+ end
27
+
28
+ test "you can ping template" do
29
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
30
+ rpc RPC::DummyAPI::DummyService, "PingTemplate", req
31
+ refute_instance_of Twirp::Error, response
32
+ assert_equal "BoukeBouke", response.double_name
33
+ end
34
+
35
+ test "error response" do
36
+ req = RPC::DummyAPI::PingRequest.new
37
+ rpc RPC::DummyAPI::DummyService, "ErrorResponse", req
38
+ assert_instance_of Twirp::Error, response
39
+ assert_equal "You are not authenticated!!", response.msg
40
+ assert_equal :unauthenticated, response.code
41
+ end
42
+
43
+ test "raise error" do
44
+ req = RPC::DummyAPI::PingRequest.new
45
+ rpc RPC::DummyAPI::DummyService, "RaiseError", req
46
+ assert_instance_of Twirp::Error, response
47
+ assert_equal "Not found", response.msg
48
+ assert_equal :not_found, response.code
49
+ end
50
+
51
+ test "uncaught errors should bubble up to the test" do
52
+ req = RPC::DummyAPI::PingRequest.new
53
+ assert_raises StandardError, "Uncaught" do
54
+ rpc RPC::DummyAPI::DummyService, "UncaughtError", req
55
+ end
56
+ end
57
+
58
+ test "uncaught errors should return an internal error with details if show_exceptions is true" do
59
+ Rails.application.env_config["action_dispatch.show_exceptions"] = true
60
+
61
+ req = RPC::DummyAPI::PingRequest.new
62
+ rpc RPC::DummyAPI::DummyService, "UncaughtError", req
63
+ assert_instance_of Twirp::Error, response
64
+ assert_equal :internal, response.code
65
+ assert_equal "Uncaught", response.msg
66
+ assert_equal "StandardError", response.meta["cause"]
67
+ ensure
68
+ Rails.application.env_config["action_dispatch.show_exceptions"] = false
69
+ end
70
+
71
+ test "uncaught errors should be fanned out to the exception handler proc if one is defined" do
72
+ Rails.application.env_config["action_dispatch.show_exceptions"] = true
73
+
74
+ captured_exception = nil
75
+ RailsTwirp.unhandled_exception_handler = ->(e) { captured_exception = e }
76
+
77
+ req = RPC::DummyAPI::PingRequest.new
78
+ rpc RPC::DummyAPI::DummyService, "UncaughtError", req
79
+ assert_instance_of Twirp::Error, response
80
+ assert_equal :internal, response.code
81
+ assert_equal "Uncaught", response.msg
82
+ assert_equal "StandardError", response.meta["cause"]
83
+ assert_kind_of StandardError, captured_exception
84
+ ensure
85
+ RailsTwirp.unhandled_exception_handler = nil
86
+ Rails.application.env_config["action_dispatch.show_exceptions"] = false
87
+ end
88
+
89
+ test "uncaught errors should return an internal error without if show_exceptions is true and show_detailed_exceptions is false" do
90
+ Rails.application.env_config["action_dispatch.show_exceptions"] = true
91
+ Rails.application.env_config["action_dispatch.show_detailed_exceptions"] = false
92
+
93
+ req = RPC::DummyAPI::PingRequest.new
94
+ rpc RPC::DummyAPI::DummyService, "UncaughtError", req
95
+ assert_instance_of Twirp::Error, response
96
+ assert_equal :internal, response.code
97
+ assert_equal "Internal error", response.msg
98
+ ensure
99
+ Rails.application.env_config["action_dispatch.show_detailed_exceptions"] = true
100
+ Rails.application.env_config["action_dispatch.show_exceptions"] = false
101
+ end
102
+
103
+ test "before error" do
104
+ req = RPC::DummyAPI::PingRequest.new
105
+ rpc RPC::DummyAPI::DummyService, "BeforeError", req
106
+ assert_instance_of Twirp::Error, response
107
+ assert_equal "yOuR ReQuEsT Is mAlFoRmEd", response.msg
108
+ assert_equal :malformed, response.code
109
+ end
110
+
111
+ test "controller is set to the controller that handled the request" do
112
+ req = RPC::DummyAPI::PingRequest.new(name: "Bouke")
113
+ rpc RPC::DummyAPI::DummyService, "Ping", req
114
+ assert_instance_of PingsController, controller
115
+ end
116
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class RailsTwirpTest < ActiveSupport::TestCase
6
+ test "it has a version number" do
7
+ assert RailsTwirp::VERSION
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Configure Rails Environment
4
+ ENV["RAILS_ENV"] = "test"
5
+
6
+ require_relative "../test/dummy/config/environment"
7
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../test/dummy/db/migrate", __dir__)]
8
+ require "rails/test_help"
9
+ require "rails/test_unit/reporter"
10
+ Rails::TestUnitReporter.executable = "bin/test"
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("fixtures", __dir__)
15
+ ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
16
+ ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "/files"
17
+ ActiveSupport::TestCase.fixtures :all
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_twirp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: '0.14'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bouke van der Bijl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-25 00:00:00.000000000 Z
11
+ date: 2023-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,6 +52,7 @@ extensions: []
52
52
  extra_rdoc_files: []
53
53
  files:
54
54
  - ".github/dependabot.yml"
55
+ - ".github/workflows/test.yml"
55
56
  - ".gitignore"
56
57
  - ".ruby-version"
57
58
  - ".standard.yml"
@@ -60,6 +61,7 @@ files:
60
61
  - MIT-LICENSE
61
62
  - README.md
62
63
  - Rakefile
64
+ - bin/test
63
65
  - lib/commands/twirp/routes_command.rb
64
66
  - lib/rails_twirp.rb
65
67
  - lib/rails_twirp/application.rb
@@ -75,9 +77,77 @@ files:
75
77
  - lib/rails_twirp/render_pb.rb
76
78
  - lib/rails_twirp/rescue.rb
77
79
  - lib/rails_twirp/route_set.rb
80
+ - lib/rails_twirp/testing/integration_test.rb
78
81
  - lib/rails_twirp/url_for.rb
79
82
  - lib/rails_twirp/version.rb
80
83
  - rails_twirp.gemspec
84
+ - test/dummy/Rakefile
85
+ - test/dummy/app/assets/config/manifest.js
86
+ - test/dummy/app/assets/images/.keep
87
+ - test/dummy/app/assets/stylesheets/application.css
88
+ - test/dummy/app/channels/application_cable/channel.rb
89
+ - test/dummy/app/channels/application_cable/connection.rb
90
+ - test/dummy/app/controllers/application_controller.rb
91
+ - test/dummy/app/controllers/application_twirp_controller.rb
92
+ - test/dummy/app/controllers/concerns/.keep
93
+ - test/dummy/app/controllers/dummy_controller.rb
94
+ - test/dummy/app/controllers/pings_controller.rb
95
+ - test/dummy/app/controllers/testmod/nested/other_controller.rb
96
+ - test/dummy/app/helpers/application_helper.rb
97
+ - test/dummy/app/helpers/random_helper.rb
98
+ - test/dummy/app/javascript/packs/application.js
99
+ - test/dummy/app/jobs/application_job.rb
100
+ - test/dummy/app/mailers/application_mailer.rb
101
+ - test/dummy/app/models/application_record.rb
102
+ - test/dummy/app/models/concerns/.keep
103
+ - test/dummy/app/views/dummy/rpc_name_check.pb.pbbuilder
104
+ - test/dummy/app/views/layouts/application.html.erb
105
+ - test/dummy/app/views/layouts/mailer.html.erb
106
+ - test/dummy/app/views/layouts/mailer.text.erb
107
+ - test/dummy/app/views/pings/ping_template.pb.pbbuilder
108
+ - test/dummy/bin/generate
109
+ - test/dummy/bin/rails
110
+ - test/dummy/bin/rake
111
+ - test/dummy/bin/setup
112
+ - test/dummy/config.ru
113
+ - test/dummy/config/application.rb
114
+ - test/dummy/config/boot.rb
115
+ - test/dummy/config/cable.yml
116
+ - test/dummy/config/database.yml
117
+ - test/dummy/config/environment.rb
118
+ - test/dummy/config/environments/development.rb
119
+ - test/dummy/config/environments/production.rb
120
+ - test/dummy/config/environments/test.rb
121
+ - test/dummy/config/initializers/application_controller_renderer.rb
122
+ - test/dummy/config/initializers/backtrace_silencers.rb
123
+ - test/dummy/config/initializers/content_security_policy.rb
124
+ - test/dummy/config/initializers/cookies_serializer.rb
125
+ - test/dummy/config/initializers/filter_parameter_logging.rb
126
+ - test/dummy/config/initializers/inflections.rb
127
+ - test/dummy/config/initializers/mime_types.rb
128
+ - test/dummy/config/initializers/permissions_policy.rb
129
+ - test/dummy/config/initializers/wrap_parameters.rb
130
+ - test/dummy/config/locales/en.yml
131
+ - test/dummy/config/puma.rb
132
+ - test/dummy/config/routes.rb
133
+ - test/dummy/config/storage.yml
134
+ - test/dummy/config/twirp/routes.rb
135
+ - test/dummy/lib/assets/.keep
136
+ - test/dummy/log/.keep
137
+ - test/dummy/proto/api.proto
138
+ - test/dummy/proto/api_pb.rb
139
+ - test/dummy/proto/api_twirp.rb
140
+ - test/dummy/public/404.html
141
+ - test/dummy/public/422.html
142
+ - test/dummy/public/500.html
143
+ - test/dummy/public/apple-touch-icon-precomposed.png
144
+ - test/dummy/public/apple-touch-icon.png
145
+ - test/dummy/public/favicon.ico
146
+ - test/dummy_test.rb
147
+ - test/other_controller_test.rb
148
+ - test/ping_controller_test.rb
149
+ - test/rails_twirp_test.rb
150
+ - test/test_helper.rb
81
151
  homepage: https://github.com/cheddar-me/rails-twirp
82
152
  licenses:
83
153
  - MIT