wal 0.0.0 → 0.0.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.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/README.md +49 -0
  4. data/Rakefile +9 -1
  5. data/exe/wal +64 -0
  6. data/lib/wal/active_record_context_extension.rb +15 -0
  7. data/lib/wal/noop_watcher.rb +12 -0
  8. data/lib/wal/record_watcher.rb +389 -0
  9. data/lib/wal/replicator.rb +205 -0
  10. data/lib/wal/streaming_watcher.rb +74 -0
  11. data/lib/wal/version.rb +2 -1
  12. data/lib/wal/watcher.rb +95 -0
  13. data/lib/wal.rb +128 -1
  14. data/rbi/wal.rbi +295 -0
  15. data/sig/wal.rbs +184 -2
  16. data/sorbet/config +7 -0
  17. data/sorbet/rbi/annotations/.gitattributes +1 -0
  18. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  19. data/sorbet/rbi/annotations/activerecord.rbi +98 -0
  20. data/sorbet/rbi/annotations/activesupport.rbi +463 -0
  21. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  22. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  23. data/sorbet/rbi/gems/.gitattributes +1 -0
  24. data/sorbet/rbi/gems/actioncable@8.0.2.rbi +9 -0
  25. data/sorbet/rbi/gems/actionmailbox@8.0.2.rbi +9 -0
  26. data/sorbet/rbi/gems/actionmailer@8.0.2.rbi +9 -0
  27. data/sorbet/rbi/gems/actionpack@8.0.2.rbi +21122 -0
  28. data/sorbet/rbi/gems/actiontext@8.0.2.rbi +9 -0
  29. data/sorbet/rbi/gems/actionview@8.0.2.rbi +16423 -0
  30. data/sorbet/rbi/gems/activejob@8.0.2.rbi +9 -0
  31. data/sorbet/rbi/gems/activemodel@8.0.2.rbi +6866 -0
  32. data/sorbet/rbi/gems/activerecord@8.0.2.rbi +43227 -0
  33. data/sorbet/rbi/gems/activestorage@8.0.2.rbi +9 -0
  34. data/sorbet/rbi/gems/activesupport@8.0.2.rbi +21110 -0
  35. data/sorbet/rbi/gems/ast@2.4.3.rbi +585 -0
  36. data/sorbet/rbi/gems/base64@0.3.0.rbi +545 -0
  37. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  38. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +78 -0
  39. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  40. data/sorbet/rbi/gems/commander@5.0.0.rbi +9 -0
  41. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +11657 -0
  42. data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
  43. data/sorbet/rbi/gems/crass@1.0.6.rbi +623 -0
  44. data/sorbet/rbi/gems/date@3.4.1.rbi +75 -0
  45. data/sorbet/rbi/gems/diff-lcs@1.6.2.rbi +1134 -0
  46. data/sorbet/rbi/gems/docker-api@2.4.0.rbi +1719 -0
  47. data/sorbet/rbi/gems/docopt@0.6.1.rbi +9 -0
  48. data/sorbet/rbi/gems/drb@2.2.3.rbi +1661 -0
  49. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  50. data/sorbet/rbi/gems/excon@1.2.7.rbi +1514 -0
  51. data/sorbet/rbi/gems/globalid@1.2.1.rbi +9 -0
  52. data/sorbet/rbi/gems/highline@3.0.1.rbi +9 -0
  53. data/sorbet/rbi/gems/i18n@1.14.7.rbi +2359 -0
  54. data/sorbet/rbi/gems/io-console@0.8.0.rbi +9 -0
  55. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  56. data/sorbet/rbi/gems/loofah@2.24.1.rbi +1105 -0
  57. data/sorbet/rbi/gems/mail@2.8.1.rbi +9 -0
  58. data/sorbet/rbi/gems/marcel@1.0.4.rbi +9 -0
  59. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +9 -0
  60. data/sorbet/rbi/gems/minitest@5.25.5.rbi +1704 -0
  61. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +268 -0
  62. data/sorbet/rbi/gems/net-imap@0.5.9.rbi +9 -0
  63. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +9 -0
  64. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +292 -0
  65. data/sorbet/rbi/gems/net-smtp@0.5.1.rbi +9 -0
  66. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  67. data/sorbet/rbi/gems/nio4r@2.7.4.rbi +9 -0
  68. data/sorbet/rbi/gems/nokogiri@1.18.8.rbi +8206 -0
  69. data/sorbet/rbi/gems/ostruct@0.6.2.rbi +354 -0
  70. data/sorbet/rbi/gems/parallel@1.27.0.rbi +291 -0
  71. data/sorbet/rbi/gems/parlour@9.1.1.rbi +3071 -0
  72. data/sorbet/rbi/gems/parser@3.3.8.0.rbi +7338 -0
  73. data/sorbet/rbi/gems/pg-replication-protocol@0.0.7.rbi +633 -0
  74. data/sorbet/rbi/gems/pg@1.5.9.rbi +2806 -0
  75. data/sorbet/rbi/gems/pp@0.6.2.rbi +368 -0
  76. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +477 -0
  77. data/sorbet/rbi/gems/prism@1.4.0.rbi +41732 -0
  78. data/sorbet/rbi/gems/psych@5.2.3.rbi +2435 -0
  79. data/sorbet/rbi/gems/racc@1.8.1.rbi +160 -0
  80. data/sorbet/rbi/gems/rack-session@2.1.1.rbi +727 -0
  81. data/sorbet/rbi/gems/rack-test@2.2.0.rbi +734 -0
  82. data/sorbet/rbi/gems/rack@3.1.16.rbi +4940 -0
  83. data/sorbet/rbi/gems/rackup@2.2.1.rbi +230 -0
  84. data/sorbet/rbi/gems/rails-dom-testing@2.3.0.rbi +858 -0
  85. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +785 -0
  86. data/sorbet/rbi/gems/rails@8.0.2.rbi +9 -0
  87. data/sorbet/rbi/gems/railties@8.0.2.rbi +3865 -0
  88. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  89. data/sorbet/rbi/gems/rake@13.2.1.rbi +3120 -0
  90. data/sorbet/rbi/gems/rbi@0.3.6.rbi +6893 -0
  91. data/sorbet/rbi/gems/rbs@3.9.4.rbi +6978 -0
  92. data/sorbet/rbi/gems/rdoc@6.12.0.rbi +12760 -0
  93. data/sorbet/rbi/gems/reline@0.6.0.rbi +2451 -0
  94. data/sorbet/rbi/gems/rexml@3.4.1.rbi +5240 -0
  95. data/sorbet/rbi/gems/rspec-core@3.13.4.rbi +11348 -0
  96. data/sorbet/rbi/gems/rspec-expectations@3.13.5.rbi +8189 -0
  97. data/sorbet/rbi/gems/rspec-mocks@3.13.5.rbi +5350 -0
  98. data/sorbet/rbi/gems/rspec-sorbet@1.9.2.rbi +164 -0
  99. data/sorbet/rbi/gems/rspec-support@3.13.4.rbi +1630 -0
  100. data/sorbet/rbi/gems/rspec@3.13.1.rbi +83 -0
  101. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  102. data/sorbet/rbi/gems/spoom@1.6.3.rbi +6985 -0
  103. data/sorbet/rbi/gems/stringio@3.1.5.rbi +9 -0
  104. data/sorbet/rbi/gems/tapioca@0.16.11.rbi +3628 -0
  105. data/sorbet/rbi/gems/testcontainers-core@0.2.0.rbi +1005 -0
  106. data/sorbet/rbi/gems/testcontainers-postgres@0.2.0.rbi +145 -0
  107. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  108. data/sorbet/rbi/gems/timeout@0.4.3.rbi +157 -0
  109. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  110. data/sorbet/rbi/gems/uri@1.0.3.rbi +2349 -0
  111. data/sorbet/rbi/gems/useragent@0.16.11.rbi +9 -0
  112. data/sorbet/rbi/gems/websocket-driver@0.8.0.rbi +9 -0
  113. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +9 -0
  114. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  115. data/sorbet/rbi/gems/yard@0.9.37.rbi +18379 -0
  116. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +9 -0
  117. data/sorbet/tapioca/config.yml +5 -0
  118. data/sorbet/tapioca/require.rb +12 -0
  119. metadata +231 -6
@@ -0,0 +1,230 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `rackup` gem.
5
+ # Please instead update this file by running `bin/tapioca gem rackup`.
6
+
7
+
8
+ # source://rackup//lib/rackup/handler.rb#6
9
+ module Rackup; end
10
+
11
+ # *Handlers* connect web servers with Rack.
12
+ #
13
+ # Rackup includes Handlers for WEBrick and CGI.
14
+ #
15
+ # Handlers usually are activated by calling <tt>MyHandler.run(myapp)</tt>.
16
+ # A second optional hash can be passed to include server-specific
17
+ # configuration.
18
+ #
19
+ # source://rackup//lib/rackup/handler.rb#14
20
+ module Rackup::Handler
21
+ class << self
22
+ # source://rackup//lib/rackup/handler.rb#30
23
+ def [](name); end
24
+
25
+ # source://rackup//lib/rackup/handler.rb#84
26
+ def default; end
27
+
28
+ # source://rackup//lib/rackup/handler.rb#40
29
+ def get(name); end
30
+
31
+ # Select first available Rack handler given an `Array` of server names.
32
+ # Raises `LoadError` if no handler was found.
33
+ #
34
+ # > pick ['puma', 'webrick']
35
+ # => Rackup::Handler::WEBrick
36
+ #
37
+ # @raise [LoadError]
38
+ #
39
+ # source://rackup//lib/rackup/handler.rb#69
40
+ def pick(server_names); end
41
+
42
+ # Register a named handler class.
43
+ #
44
+ # source://rackup//lib/rackup/handler.rb#18
45
+ def register(name, klass); end
46
+
47
+ # Transforms server-name constants to their canonical form as filenames,
48
+ # then tries to require them but silences the LoadError if not found
49
+ #
50
+ # Naming convention:
51
+ #
52
+ # Foo # => 'foo'
53
+ # FooBar # => 'foo_bar.rb'
54
+ # FooBAR # => 'foobar.rb'
55
+ # FOObar # => 'foobar.rb'
56
+ # FOOBAR # => 'foobar.rb'
57
+ # FooBarBaz # => 'foo_bar_baz.rb'
58
+ #
59
+ # source://rackup//lib/rackup/handler.rb#106
60
+ def require_handler(prefix, const_name); end
61
+ end
62
+ end
63
+
64
+ # source://rackup//lib/rackup/handler.rb#59
65
+ Rackup::Handler::RACKUP_HANDLER = T.let(T.unsafe(nil), String)
66
+
67
+ # source://rackup//lib/rackup/handler.rb#58
68
+ Rackup::Handler::RACK_HANDLER = T.let(T.unsafe(nil), String)
69
+
70
+ # source://rackup//lib/rackup/handler.rb#61
71
+ Rackup::Handler::SERVER_NAMES = T.let(T.unsafe(nil), Array)
72
+
73
+ # source://rackup//lib/rackup/server.rb#22
74
+ class Rackup::Server
75
+ # Options may include:
76
+ # * :app
77
+ # a rack application to run (overrides :config and :builder)
78
+ # * :builder
79
+ # a string to evaluate a Rack::Builder from
80
+ # * :config
81
+ # a rackup configuration file path to load (.ru)
82
+ # * :environment
83
+ # this selects the middleware that will be wrapped around
84
+ # your application. Default options available are:
85
+ # - development: CommonLogger, ShowExceptions, and Lint
86
+ # - deployment: CommonLogger
87
+ # - none: no extra middleware
88
+ # note: when the server is a cgi server, CommonLogger is not included.
89
+ # * :server
90
+ # choose a specific Rackup::Handler, e.g. cgi, fcgi, webrick
91
+ # * :daemonize
92
+ # if truthy, the server will daemonize itself (fork, detach, etc)
93
+ # if :noclose, the server will not close STDOUT/STDERR
94
+ # * :pid
95
+ # path to write a pid file after daemonize
96
+ # * :Host
97
+ # the host address to bind to (used by supporting Rackup::Handler)
98
+ # * :Port
99
+ # the port to bind to (used by supporting Rackup::Handler)
100
+ # * :AccessLog
101
+ # webrick access log options (or supporting Rackup::Handler)
102
+ # * :debug
103
+ # turn on debug output ($DEBUG = true)
104
+ # * :warn
105
+ # turn on warnings ($-w = true)
106
+ # * :include
107
+ # add given paths to $LOAD_PATH
108
+ # * :require
109
+ # require the given libraries
110
+ #
111
+ # Additional options for profiling app initialization include:
112
+ # * :heapfile
113
+ # location for ObjectSpace.dump_all to write the output to
114
+ # * :profile_file
115
+ # location for CPU/Memory (StackProf) profile output (defaults to a tempfile)
116
+ # * :profile_mode
117
+ # StackProf profile mode (cpu|wall|object)
118
+ #
119
+ # @return [Server] a new instance of Server
120
+ #
121
+ # source://rackup//lib/rackup/server.rb#230
122
+ def initialize(options = T.unsafe(nil)); end
123
+
124
+ # source://rackup//lib/rackup/server.rb#262
125
+ def app; end
126
+
127
+ # source://rackup//lib/rackup/server.rb#248
128
+ def default_options; end
129
+
130
+ # source://rackup//lib/rackup/server.rb#296
131
+ def middleware; end
132
+
133
+ # source://rackup//lib/rackup/server.rb#243
134
+ def options; end
135
+
136
+ # Sets the attribute options
137
+ #
138
+ # @param value the value to set the attribute options to.
139
+ #
140
+ # source://rackup//lib/rackup/server.rb#185
141
+ def options=(_arg0); end
142
+
143
+ # source://rackup//lib/rackup/server.rb#344
144
+ def server; end
145
+
146
+ # source://rackup//lib/rackup/server.rb#300
147
+ def start(&block); end
148
+
149
+ private
150
+
151
+ # source://rackup//lib/rackup/server.rb#413
152
+ def build_app(app); end
153
+
154
+ # source://rackup//lib/rackup/server.rb#349
155
+ def build_app_and_options_from_config; end
156
+
157
+ # source://rackup//lib/rackup/server.rb#395
158
+ def build_app_from_string; end
159
+
160
+ # source://rackup//lib/rackup/server.rb#442
161
+ def check_pid!; end
162
+
163
+ # source://rackup//lib/rackup/server.rb#427
164
+ def daemonize_app; end
165
+
166
+ # source://rackup//lib/rackup/server.rb#456
167
+ def exit_with_pid(pid); end
168
+
169
+ # source://rackup//lib/rackup/server.rb#357
170
+ def handle_profiling(heapfile, profile_mode, filename); end
171
+
172
+ # source://rackup//lib/rackup/server.rb#385
173
+ def make_profile_name(filename); end
174
+
175
+ # source://rackup//lib/rackup/server.rb#409
176
+ def opt_parser; end
177
+
178
+ # source://rackup//lib/rackup/server.rb#399
179
+ def parse_options(args); end
180
+
181
+ # source://rackup//lib/rackup/server.rb#423
182
+ def wrapped_app; end
183
+
184
+ # source://rackup//lib/rackup/server.rb#434
185
+ def write_pid; end
186
+
187
+ class << self
188
+ # source://rackup//lib/rackup/server.rb#273
189
+ def default_middleware_by_environment; end
190
+
191
+ # source://rackup//lib/rackup/server.rb#267
192
+ def logging_middleware; end
193
+
194
+ # source://rackup//lib/rackup/server.rb#291
195
+ def middleware; end
196
+
197
+ # Start a new rack server (like running rackup). This will parse ARGV and
198
+ # provide standard ARGV rackup options, defaulting to load 'config.ru'.
199
+ #
200
+ # Providing an options hash will prevent ARGV parsing and will not include
201
+ # any default options.
202
+ #
203
+ # This method can be used to very easily launch a CGI application, for
204
+ # example:
205
+ #
206
+ # Rack::Server.start(
207
+ # :app => lambda do |e|
208
+ # [200, {'content-type' => 'text/html'}, ['hello world']]
209
+ # end,
210
+ # :server => 'cgi'
211
+ # )
212
+ #
213
+ # Further options available here are documented on Rack::Server#initialize
214
+ #
215
+ # source://rackup//lib/rackup/server.rb#181
216
+ def start(options = T.unsafe(nil)); end
217
+ end
218
+ end
219
+
220
+ # source://rackup//lib/rackup/server.rb#23
221
+ class Rackup::Server::Options
222
+ # source://rackup//lib/rackup/server.rb#143
223
+ def handler_opts(options); end
224
+
225
+ # source://rackup//lib/rackup/server.rb#24
226
+ def parse!(args); end
227
+ end
228
+
229
+ # source://rackup//lib/rackup/version.rb#7
230
+ Rackup::VERSION = T.let(T.unsafe(nil), String)