openfeature-sdk-sorbet 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/.ruby-version +1 -1
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +12 -3
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +55 -49
  8. data/README.md +23 -6
  9. data/lib/open_feature/client.rb +90 -32
  10. data/lib/open_feature/client_metadata.rb +1 -0
  11. data/lib/open_feature/evaluation_context.rb +2 -2
  12. data/lib/open_feature/evaluation_details.rb +2 -2
  13. data/lib/open_feature/hook.rb +41 -1
  14. data/lib/open_feature/hook_context.rb +30 -0
  15. data/lib/open_feature/hooks.rb +22 -0
  16. data/lib/open_feature/multiple_source_provider.rb +28 -12
  17. data/lib/open_feature/no_op_provider.rb +2 -3
  18. data/lib/open_feature/provider.rb +16 -2
  19. data/lib/open_feature/provider_status.rb +13 -0
  20. data/lib/open_feature.rb +9 -2
  21. data/sorbet/rbi/gems/.gitattributes +1 -0
  22. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.1.rbi} +80 -60
  23. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  24. data/sorbet/rbi/gems/{minitest@5.18.0.rbi → minitest@5.21.2.rbi} +299 -258
  25. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.24.0.rbi} +8 -1
  26. data/sorbet/rbi/gems/{parser@3.2.2.1.rbi → parser@3.3.0.5.rbi} +438 -2219
  27. data/sorbet/rbi/gems/prism@0.19.0.rbi +25199 -0
  28. data/sorbet/rbi/gems/psych@5.1.2.rbi +1731 -0
  29. data/sorbet/rbi/gems/racc@1.7.3.rbi +157 -0
  30. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.1.0.rbi} +68 -65
  31. data/sorbet/rbi/gems/{rbi@0.0.16.rbi → rbi@0.1.6.rbi} +628 -755
  32. data/sorbet/rbi/gems/{regexp_parser@2.8.0.rbi → regexp_parser@2.9.0.rbi} +203 -180
  33. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.2.6.rbi} +116 -52
  34. data/sorbet/rbi/gems/{rubocop-ast@1.28.1.rbi → rubocop-ast@1.30.0.rbi} +178 -84
  35. data/sorbet/rbi/gems/{rubocop-minitest@0.31.0.rbi → rubocop-minitest@0.34.5.rbi} +280 -232
  36. data/sorbet/rbi/gems/{rubocop-performance@1.17.1.rbi → rubocop-performance@1.20.2.rbi} +397 -172
  37. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.0.rbi → rubocop-sorbet@0.7.6.rbi} +728 -261
  38. data/sorbet/rbi/gems/{rubocop@1.51.0.rbi → rubocop@1.60.2.rbi} +4006 -1936
  39. data/sorbet/rbi/gems/spoom@1.2.1.rbi +17 -56
  40. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  41. data/sorbet/rbi/gems/{tapioca@0.11.6.rbi → tapioca@0.11.17.rbi} +778 -576
  42. data/sorbet/rbi/gems/{thor@1.2.2.rbi → thor@1.3.0.rbi} +775 -395
  43. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +1 -1
  44. data/sorbet/rbi/gems/yard@0.9.34.rbi +2 -2
  45. data/sorbet/rbi/gems/{zeitwerk@2.6.8.rbi → zeitwerk@2.6.12.rbi} +78 -67
  46. data/sorbet/tapioca/config.yml +2 -2
  47. data/sorbet/tapioca/require.rb +3 -1
  48. metadata +36 -31
  49. data/openfeature-sdk-sorbet.gemspec +0 -35
  50. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  51. data/sorbet/rbi/gems/irb@1.6.4.rbi +0 -342
  52. data/sorbet/rbi/gems/unparser@0.6.7.rbi +0 -4524
  53. /data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +0 -0
  54. /data/sorbet/rbi/gems/{reline@0.3.3.rbi → reline@0.4.2.rbi} +0 -0
  55. /data/sorbet/rbi/gems/{unicode-display_width@2.4.2.rbi → unicode-display_width@2.5.0.rbi} +0 -0
@@ -1,342 +0,0 @@
1
- # typed: true
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `irb` gem.
5
- # Please instead update this file by running `bin/tapioca gem irb`.
6
-
7
- # An output formatter used internally by the lexer.
8
- #
9
- # source://irb//lib/irb/notifier.rb#11
10
- module IRB::Notifier
11
- private
12
-
13
- # Define a new Notifier output source, returning a new CompositeNotifier
14
- # with the given +prefix+ and +output_method+.
15
- #
16
- # The optional +prefix+ will be appended to all objects being inspected
17
- # during output, using the given +output_method+ as the output source. If
18
- # no +output_method+ is given, StdioOutputMethod will be used, and all
19
- # expressions will be sent directly to STDOUT without any additional
20
- # formatting.
21
- #
22
- # source://irb//lib/irb/notifier.rb#31
23
- def def_notifier(prefix = T.unsafe(nil), output_method = T.unsafe(nil)); end
24
-
25
- class << self
26
- # Define a new Notifier output source, returning a new CompositeNotifier
27
- # with the given +prefix+ and +output_method+.
28
- #
29
- # The optional +prefix+ will be appended to all objects being inspected
30
- # during output, using the given +output_method+ as the output source. If
31
- # no +output_method+ is given, StdioOutputMethod will be used, and all
32
- # expressions will be sent directly to STDOUT without any additional
33
- # formatting.
34
- #
35
- # source://irb//lib/irb/notifier.rb#31
36
- def def_notifier(prefix = T.unsafe(nil), output_method = T.unsafe(nil)); end
37
- end
38
- end
39
-
40
- # An abstract class, or superclass, for CompositeNotifier and
41
- # LeveledNotifier to inherit. It provides several wrapper methods for the
42
- # OutputMethod object used by the Notifier.
43
- #
44
- # source://irb//lib/irb/notifier.rb#39
45
- class IRB::Notifier::AbstractNotifier
46
- # Creates a new Notifier object
47
- #
48
- # @return [AbstractNotifier] a new instance of AbstractNotifier
49
- #
50
- # source://irb//lib/irb/notifier.rb#41
51
- def initialize(prefix, base_notifier); end
52
-
53
- # Execute the given block if notifications are enabled.
54
- #
55
- # @yield [@base_notifier]
56
- #
57
- # source://irb//lib/irb/notifier.rb#99
58
- def exec_if; end
59
-
60
- # A wrapper method used to determine whether notifications are enabled.
61
- #
62
- # Defaults to +true+.
63
- #
64
- # @return [Boolean]
65
- #
66
- # source://irb//lib/irb/notifier.rb#53
67
- def notify?; end
68
-
69
- # Same as #ppx, except it uses the #prefix given during object
70
- # initialization.
71
- # See OutputMethod#ppx for more detail.
72
- #
73
- # source://irb//lib/irb/notifier.rb#82
74
- def pp(*objs); end
75
-
76
- # Same as #pp, except it concatenates the given +prefix+ with the #prefix
77
- # given during object initialization.
78
- #
79
- # See OutputMethod#ppx for more detail.
80
- #
81
- # source://irb//lib/irb/notifier.rb#92
82
- def ppx(prefix, *objs); end
83
-
84
- # The +prefix+ for this Notifier, which is appended to all objects being
85
- # inspected during output.
86
- #
87
- # source://irb//lib/irb/notifier.rb#48
88
- def prefix; end
89
-
90
- # See OutputMethod#print for more detail.
91
- #
92
- # source://irb//lib/irb/notifier.rb#58
93
- def print(*opts); end
94
-
95
- # See OutputMethod#printf for more detail.
96
- #
97
- # source://irb//lib/irb/notifier.rb#68
98
- def printf(format, *opts); end
99
-
100
- # See OutputMethod#printn for more detail.
101
- #
102
- # source://irb//lib/irb/notifier.rb#63
103
- def printn(*opts); end
104
-
105
- # See OutputMethod#puts for more detail.
106
- #
107
- # source://irb//lib/irb/notifier.rb#73
108
- def puts(*objs); end
109
- end
110
-
111
- # A class that can be used to create a group of notifier objects with the
112
- # intent of representing a leveled notification system for irb.
113
- #
114
- # This class will allow you to generate other notifiers, and assign them
115
- # the appropriate level for output.
116
- #
117
- # The Notifier class provides a class-method Notifier.def_notifier to
118
- # create a new composite notifier. Using the first composite notifier
119
- # object you create, sibling notifiers can be initialized with
120
- # #def_notifier.
121
- #
122
- # source://irb//lib/irb/notifier.rb#114
123
- class IRB::Notifier::CompositeNotifier < ::IRB::Notifier::AbstractNotifier
124
- # Create a new composite notifier object with the given +prefix+, and
125
- # +base_notifier+ to use for output.
126
- #
127
- # @return [CompositeNotifier] a new instance of CompositeNotifier
128
- #
129
- # source://irb//lib/irb/notifier.rb#117
130
- def initialize(prefix, base_notifier); end
131
-
132
- # Creates a new LeveledNotifier in the composite #notifiers group.
133
- #
134
- # The given +prefix+ will be assigned to the notifier, and +level+ will
135
- # be used as the index of the #notifiers Array.
136
- #
137
- # This method returns the newly created instance.
138
- #
139
- # source://irb//lib/irb/notifier.rb#133
140
- def def_notifier(level, prefix = T.unsafe(nil)); end
141
-
142
- # Returns the leveled notifier for this object
143
- #
144
- # source://irb//lib/irb/notifier.rb#140
145
- def level; end
146
-
147
- # Sets the leveled notifier for this object.
148
- #
149
- # When the given +value+ is an instance of AbstractNotifier,
150
- # #level_notifier is set to the given object.
151
- #
152
- # When an Integer is given, #level_notifier is set to the notifier at the
153
- # index +value+ in the #notifiers Array.
154
- #
155
- # If no notifier exists at the index +value+ in the #notifiers Array, an
156
- # ErrUndefinedNotifier exception is raised.
157
- #
158
- # An ErrUnrecognizedLevel exception is raised if the given +value+ is not
159
- # found in the existing #notifiers Array, or an instance of
160
- # AbstractNotifier
161
- #
162
- # source://irb//lib/irb/notifier.rb#157
163
- def level=(value); end
164
-
165
- # Returns the leveled notifier for this object
166
- #
167
- # source://irb//lib/irb/notifier.rb#140
168
- def level_notifier; end
169
-
170
- # Sets the leveled notifier for this object.
171
- #
172
- # When the given +value+ is an instance of AbstractNotifier,
173
- # #level_notifier is set to the given object.
174
- #
175
- # When an Integer is given, #level_notifier is set to the notifier at the
176
- # index +value+ in the #notifiers Array.
177
- #
178
- # If no notifier exists at the index +value+ in the #notifiers Array, an
179
- # ErrUndefinedNotifier exception is raised.
180
- #
181
- # An ErrUnrecognizedLevel exception is raised if the given +value+ is not
182
- # found in the existing #notifiers Array, or an instance of
183
- # AbstractNotifier
184
- #
185
- # source://irb//lib/irb/notifier.rb#157
186
- def level_notifier=(value); end
187
-
188
- # List of notifiers in the group
189
- #
190
- # source://irb//lib/irb/notifier.rb#125
191
- def notifiers; end
192
- end
193
-
194
- # source://irb//lib/irb/notifier.rb#12
195
- class IRB::Notifier::ErrUndefinedNotifier < ::StandardError
196
- # @return [ErrUndefinedNotifier] a new instance of ErrUndefinedNotifier
197
- #
198
- # source://irb//lib/irb/notifier.rb#13
199
- def initialize(val); end
200
- end
201
-
202
- # source://irb//lib/irb/notifier.rb#17
203
- class IRB::Notifier::ErrUnrecognizedLevel < ::StandardError
204
- # @return [ErrUnrecognizedLevel] a new instance of ErrUnrecognizedLevel
205
- #
206
- # source://irb//lib/irb/notifier.rb#18
207
- def initialize(val); end
208
- end
209
-
210
- # A leveled notifier is comparable to the composite group from
211
- # CompositeNotifier#notifiers.
212
- #
213
- # source://irb//lib/irb/notifier.rb#175
214
- class IRB::Notifier::LeveledNotifier < ::IRB::Notifier::AbstractNotifier
215
- include ::Comparable
216
-
217
- # Create a new leveled notifier with the given +base+, and +prefix+ to
218
- # send to AbstractNotifier.new
219
- #
220
- # The given +level+ is used to compare other leveled notifiers in the
221
- # CompositeNotifier group to determine whether or not to output
222
- # notifications.
223
- #
224
- # @return [LeveledNotifier] a new instance of LeveledNotifier
225
- #
226
- # source://irb//lib/irb/notifier.rb#184
227
- def initialize(base, level, prefix); end
228
-
229
- # Compares the level of this notifier object with the given +other+
230
- # notifier.
231
- #
232
- # See the Comparable module for more information.
233
- #
234
- # source://irb//lib/irb/notifier.rb#197
235
- def <=>(other); end
236
-
237
- # The current level of this notifier object
238
- #
239
- # source://irb//lib/irb/notifier.rb#191
240
- def level; end
241
-
242
- # Whether to output messages to the output method, depending on the level
243
- # of this notifier object.
244
- #
245
- # @return [Boolean]
246
- #
247
- # source://irb//lib/irb/notifier.rb#203
248
- def notify?; end
249
- end
250
-
251
- # NoMsgNotifier is a LeveledNotifier that's used as the default notifier
252
- # when creating a new CompositeNotifier.
253
- #
254
- # This notifier is used as the +zero+ index, or level +0+, for
255
- # CompositeNotifier#notifiers, and will not output messages of any sort.
256
- #
257
- # source://irb//lib/irb/notifier.rb#213
258
- class IRB::Notifier::NoMsgNotifier < ::IRB::Notifier::LeveledNotifier
259
- # Creates a new notifier that should not be used to output messages.
260
- #
261
- # @return [NoMsgNotifier] a new instance of NoMsgNotifier
262
- #
263
- # source://irb//lib/irb/notifier.rb#215
264
- def initialize; end
265
-
266
- # Ensures notifications are ignored, see AbstractNotifier#notify? for
267
- # more information.
268
- #
269
- # @return [Boolean]
270
- #
271
- # source://irb//lib/irb/notifier.rb#223
272
- def notify?; end
273
- end
274
-
275
- # An abstract output class for IO in irb. This is mainly used internally by
276
- # IRB::Notifier. You can define your own output method to use with Irb.new,
277
- # or Context.new
278
- #
279
- # source://irb//lib/irb/output-method.rb#11
280
- class IRB::OutputMethod
281
- # Returns an array of the given +format+ and +opts+ to be used by
282
- # Kernel#sprintf, if there was a successful Regexp match in the given
283
- # +format+ from #printf
284
- #
285
- # %
286
- # <flag> [#0- +]
287
- # <minimum field width> (\*|\*[1-9][0-9]*\$|[1-9][0-9]*)
288
- # <precision>.(\*|\*[1-9][0-9]*\$|[1-9][0-9]*|)?
289
- # #<length modifier>(hh|h|l|ll|L|q|j|z|t)
290
- # <conversion specifier>[diouxXeEfgGcsb%]
291
- #
292
- # source://irb//lib/irb/output-method.rb#48
293
- def parse_printf_format(format, opts); end
294
-
295
- # Prints the given +objs+ calling Object#inspect on each.
296
- #
297
- # See #puts for more detail.
298
- #
299
- # source://irb//lib/irb/output-method.rb#64
300
- def pp(*objs); end
301
-
302
- # Prints the given +objs+ calling Object#inspect on each and appending the
303
- # given +prefix+.
304
- #
305
- # See #puts for more detail.
306
- #
307
- # source://irb//lib/irb/output-method.rb#72
308
- def ppx(prefix, *objs); end
309
-
310
- # Open this method to implement your own output method, raises a
311
- # NotImplementedError if you don't define #print in your own class.
312
- #
313
- # @raise [NotImplementedError]
314
- #
315
- # source://irb//lib/irb/output-method.rb#20
316
- def print(*opts); end
317
-
318
- # Extends IO#printf to format the given +opts+ for Kernel#sprintf using
319
- # #parse_printf_format
320
- #
321
- # source://irb//lib/irb/output-method.rb#31
322
- def printf(format, *opts); end
323
-
324
- # Prints the given +opts+, with a newline delimiter.
325
- #
326
- # source://irb//lib/irb/output-method.rb#25
327
- def printn(*opts); end
328
-
329
- # Calls #print on each element in the given +objs+, followed by a newline
330
- # character.
331
- #
332
- # source://irb//lib/irb/output-method.rb#54
333
- def puts(*objs); end
334
- end
335
-
336
- # source://irb//lib/irb/output-method.rb#12
337
- class IRB::OutputMethod::NotImplementedError < ::StandardError
338
- # @return [NotImplementedError] a new instance of NotImplementedError
339
- #
340
- # source://irb//lib/irb/output-method.rb#13
341
- def initialize(val); end
342
- end