wal 0.0.0 → 0.0.2

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,157 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `timeout` gem.
5
+ # Please instead update this file by running `bin/tapioca gem timeout`.
6
+
7
+
8
+ # source://timeout//lib/timeout.rb#21
9
+ module Timeout
10
+ private
11
+
12
+ # Perform an operation in a block, raising an error if it takes longer than
13
+ # +sec+ seconds to complete.
14
+ #
15
+ # +sec+:: Number of seconds to wait for the block to terminate. Any non-negative number
16
+ # or nil may be used, including Floats to specify fractional seconds. A
17
+ # value of 0 or +nil+ will execute the block without any timeout.
18
+ # Any negative number will raise an ArgumentError.
19
+ # +klass+:: Exception Class to raise if the block fails to terminate
20
+ # in +sec+ seconds. Omitting will use the default, Timeout::Error
21
+ # +message+:: Error message to raise with Exception Class.
22
+ # Omitting will use the default, "execution expired"
23
+ #
24
+ # Returns the result of the block *if* the block completed before
25
+ # +sec+ seconds, otherwise throws an exception, based on the value of +klass+.
26
+ #
27
+ # The exception thrown to terminate the given block cannot be rescued inside
28
+ # the block unless +klass+ is given explicitly. However, the block can use
29
+ # ensure to prevent the handling of the exception. For that reason, this
30
+ # method cannot be relied on to enforce timeouts for untrusted blocks.
31
+ #
32
+ # If a scheduler is defined, it will be used to handle the timeout by invoking
33
+ # Scheduler#timeout_after.
34
+ #
35
+ # Note that this is both a method of module Timeout, so you can <tt>include
36
+ # Timeout</tt> into your classes so they have a #timeout method, as well as
37
+ # a module method, so you can call it directly as Timeout.timeout().
38
+ #
39
+ # @raise [ArgumentError]
40
+ #
41
+ # source://timeout//lib/timeout.rb#167
42
+ def timeout(sec, klass = T.unsafe(nil), message = T.unsafe(nil), &block); end
43
+
44
+ class << self
45
+ # source://timeout//lib/timeout.rb#124
46
+ def ensure_timeout_thread_created; end
47
+
48
+ # Perform an operation in a block, raising an error if it takes longer than
49
+ # +sec+ seconds to complete.
50
+ #
51
+ # +sec+:: Number of seconds to wait for the block to terminate. Any non-negative number
52
+ # or nil may be used, including Floats to specify fractional seconds. A
53
+ # value of 0 or +nil+ will execute the block without any timeout.
54
+ # Any negative number will raise an ArgumentError.
55
+ # +klass+:: Exception Class to raise if the block fails to terminate
56
+ # in +sec+ seconds. Omitting will use the default, Timeout::Error
57
+ # +message+:: Error message to raise with Exception Class.
58
+ # Omitting will use the default, "execution expired"
59
+ #
60
+ # Returns the result of the block *if* the block completed before
61
+ # +sec+ seconds, otherwise throws an exception, based on the value of +klass+.
62
+ #
63
+ # The exception thrown to terminate the given block cannot be rescued inside
64
+ # the block unless +klass+ is given explicitly. However, the block can use
65
+ # ensure to prevent the handling of the exception. For that reason, this
66
+ # method cannot be relied on to enforce timeouts for untrusted blocks.
67
+ #
68
+ # If a scheduler is defined, it will be used to handle the timeout by invoking
69
+ # Scheduler#timeout_after.
70
+ #
71
+ # Note that this is both a method of module Timeout, so you can <tt>include
72
+ # Timeout</tt> into your classes so they have a #timeout method, as well as
73
+ # a module method, so you can call it directly as Timeout.timeout().
74
+ #
75
+ # @raise [ArgumentError]
76
+ #
77
+ # source://timeout//lib/timeout.rb#167
78
+ def timeout(sec, klass = T.unsafe(nil), message = T.unsafe(nil), &block); end
79
+
80
+ private
81
+
82
+ # source://timeout//lib/timeout.rb#94
83
+ def create_timeout_thread; end
84
+ end
85
+ end
86
+
87
+ # :stopdoc:
88
+ #
89
+ # source://timeout//lib/timeout.rb#47
90
+ Timeout::CONDVAR = T.let(T.unsafe(nil), Thread::ConditionVariable)
91
+
92
+ # Raised by Timeout.timeout when the block times out.
93
+ #
94
+ # source://timeout//lib/timeout.rb#33
95
+ class Timeout::Error < ::RuntimeError
96
+ class << self
97
+ # source://timeout//lib/timeout.rb#34
98
+ def handle_timeout(message); end
99
+ end
100
+ end
101
+
102
+ # Internal error raised to when a timeout is triggered.
103
+ #
104
+ # source://timeout//lib/timeout.rb#26
105
+ class Timeout::ExitException < ::Exception
106
+ # source://timeout//lib/timeout.rb#27
107
+ def exception(*_arg0); end
108
+ end
109
+
110
+ # We keep a private reference so that time mocking libraries won't break
111
+ # Timeout.
112
+ #
113
+ # source://timeout//lib/timeout.rb#136
114
+ Timeout::GET_TIME = T.let(T.unsafe(nil), Method)
115
+
116
+ # source://timeout//lib/timeout.rb#48
117
+ Timeout::QUEUE = T.let(T.unsafe(nil), Thread::Queue)
118
+
119
+ # source://timeout//lib/timeout.rb#49
120
+ Timeout::QUEUE_MUTEX = T.let(T.unsafe(nil), Thread::Mutex)
121
+
122
+ # source://timeout//lib/timeout.rb#54
123
+ class Timeout::Request
124
+ # @return [Request] a new instance of Request
125
+ #
126
+ # source://timeout//lib/timeout.rb#57
127
+ def initialize(thread, timeout, exception_class, message); end
128
+
129
+ # Returns the value of attribute deadline.
130
+ #
131
+ # source://timeout//lib/timeout.rb#55
132
+ def deadline; end
133
+
134
+ # @return [Boolean]
135
+ #
136
+ # source://timeout//lib/timeout.rb#67
137
+ def done?; end
138
+
139
+ # @return [Boolean]
140
+ #
141
+ # source://timeout//lib/timeout.rb#73
142
+ def expired?(now); end
143
+
144
+ # source://timeout//lib/timeout.rb#86
145
+ def finished; end
146
+
147
+ # source://timeout//lib/timeout.rb#77
148
+ def interrupt; end
149
+ end
150
+
151
+ # source://timeout//lib/timeout.rb#50
152
+ Timeout::TIMEOUT_THREAD_MUTEX = T.let(T.unsafe(nil), Thread::Mutex)
153
+
154
+ # The version
155
+ #
156
+ # source://timeout//lib/timeout.rb#23
157
+ Timeout::VERSION = T.let(T.unsafe(nil), String)