otto 1.1.0.pre.alpha4 → 1.3.0

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: e1ad2b9c043b3b58202eadcae63354ebead1b70178fd7723dc24820462a3831a
4
- data.tar.gz: f95e243be8e6e59c5a17f7ec98d7a05d1a31599e0970e9e20763c569a65acfb8
3
+ metadata.gz: 7974135aa7b516b1d0424fd1fb7f686524f0d091168a19df5527ec1e69d7314f
4
+ data.tar.gz: a20a52ce1479f00f880afa3ad43ed43bb85f34e519c9e024cd717a7d873dad5c
5
5
  SHA512:
6
- metadata.gz: 4ed91d559e7e339df4c5a28be0864ff2151e3e06e9dea577dedb346eaf4476e0d62adc84de508d3ff1ea1c55633789643b5f5bcee15d88bd6c8a43c6b7f04a59
7
- data.tar.gz: 7d5f8bfb03f7e9ce91eebf632df7cc5ccf8b804beac9777662ef490507d1dba3a3ed1401d9e498ecb749617b8ab561a73c2226cb66c02f4796e18148b6afa479
6
+ metadata.gz: 6a69222b7e5234e487d0098a25bbd36b2e9fc7637f563cf9f6b8562e5b03a314f06b97de755a1ec061310222c8c8ac35f215a8f6ad2b0d3e541ba1eec658f73d
7
+ data.tar.gz: 503f510059cc42f553981cd5ec27a19c5655d2047e11263eb81c63d7b2a49a09ebcd7f5df83da6f68e295b9927f8859812a2240ad4b1e05e8365702cfb89f91b
data/.gitignore CHANGED
@@ -9,6 +9,7 @@
9
9
  *.md
10
10
  *.txt
11
11
  !LICENSE.txt
12
+ !spec/fixtures/*.txt
12
13
  .ruby-version
13
14
  appendonlydir
14
15
  etc/config
@@ -16,3 +17,5 @@ log
16
17
  tmp
17
18
  vendor
18
19
  *.gem
20
+ .ruby-lsp
21
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
4
+ --order random
data/.rubocop.yml CHANGED
@@ -1,3 +1,5 @@
1
+ # .rubocop.yml
2
+
1
3
  ##
2
4
  # This is the RuboCop configuration file.
3
5
  # It contains the rules and settings for the RuboCop linter.
@@ -6,28 +8,160 @@
6
8
  # refer to the RuboCop documentation:
7
9
  # https://docs.rubocop.org/rubocop/cops.html
8
10
  #
9
- # Running `rubocop --regenerate-todo` will update the todo file
10
- # with the latest state of the onion (using the same options
11
- # as those documented at the top of the todo file). This is
12
- # useful for a gradual migration of the codebase.
13
- #
14
- inherit_from: .rubocop_todo.yml
15
11
 
16
- require:
12
+ plugins:
17
13
  - rubocop-performance
18
14
  - rubocop-thread_safety
15
+ - rubocop-rspec
19
16
 
20
17
  AllCops:
21
18
  NewCops: enable
19
+ DisabledByDefault: false # flip to true for a good autocorrect time
22
20
  UseCache: true
23
21
  MaxFilesInCache: 100
24
- TargetRubyVersion: 3.0
22
+ TargetRubyVersion: 3.4
25
23
  Exclude:
26
- - 'migrate/**/*.rb'
27
- - 'migrate/*.rb'
28
- - 'try/**/*'
29
- - 'try/*.rb'
30
- - 'vendor/**/*'
24
+ - "spec/**/*.rb"
25
+ - "vendor/**/*"
26
+
27
+ Layout/CaseIndentation:
28
+ Enabled: true
29
+ EnforcedStyle: end # case, end
30
+ IndentOneStep: false
31
+ IndentationWidth: 2
32
+
33
+ Layout/CommentIndentation:
34
+ Enabled: true
35
+
36
+ Layout/MultilineMethodCallBraceLayout:
37
+ Enabled: true
38
+ EnforcedStyle: new_line # symmetrical, new_line, same_line
39
+
40
+ Layout/TrailingWhitespace:
41
+ Enabled: true
42
+
43
+ Layout/SpaceAroundEqualsInParameterDefault:
44
+ Enabled: true
45
+
46
+ Layout/SpaceAroundOperators:
47
+ Enabled: false
48
+
49
+ # Use parentheses around a logical expression if it makes easier to read.
50
+ Style/RedundantParentheses:
51
+ Enabled: false
52
+
53
+ Lint/UnusedMethodArgument:
54
+ Enabled: true
55
+
56
+ Lint/UselessAssignment:
57
+ Enabled: true
58
+
59
+ Lint/DuplicateBranch:
60
+ Enabled: true
61
+ IgnoreLiteralBranches: false
62
+ IgnoreConstantBranches: false
63
+ IgnoreDuplicateElseBranch: false
64
+
65
+ # Offense count: 3
66
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
67
+ Metrics/PerceivedComplexity:
68
+ Max: 20
69
+
70
+ # Offense count: 186
71
+ # Configuration parameters: AllowedConstants.
72
+ Style/Documentation:
73
+ Enabled: false
74
+
75
+ Style/RescueStandardError:
76
+ Enabled: true
77
+ EnforcedStyle: explicit
78
+
79
+ # When true: Use match? instead of =~ when MatchData is not used. True is preferred but not for autocorrection. Regexs are too picky. Need to manually check every time.
80
+ Performance/RegexpMatch:
81
+ Enabled: false
82
+
83
+ Style/TrailingCommaInHashLiteral:
84
+ Enabled: true
85
+ EnforcedStyleForMultiline: comma
86
+
87
+ Style/StringLiterals:
88
+ Enabled: true
89
+ EnforcedStyle: single_quotes
90
+
91
+ # The Style/DoubleNegation cop is disabled because double negation provides
92
+ # a concise, idiomatic way to convert values to boolean in Ruby. Alternative
93
+ # approaches like ternary expressions or comparison with nil create unnecessary
94
+ # verbosity without adding clarity. In cases where boolean coercion is the
95
+ # explicit intent, !! clearly communicates this purpose to other Ruby developers.
96
+ Style/DoubleNegation:
97
+ Enabled: false
98
+
99
+ # Offense count: non-0
100
+ Style/FormatString:
101
+ EnforcedStyle: format
102
+ Enabled: true
103
+
104
+ Style/FormatStringToken:
105
+ EnforcedStyle: unannotated
106
+ Enabled: true
107
+
108
+ Style/RedundantReturn:
109
+ Enabled: true
110
+ AllowMultipleReturnValues: false
111
+
112
+ Style/IfUnlessModifier:
113
+ Enabled: false
114
+
115
+ # We prefer `extend self` and `class << self`.
116
+ Style/ModuleFunction:
117
+ Enabled: true
118
+ AutoCorrect: false
119
+ EnforcedStyle: extend_self
120
+
121
+ # Prefer 3 line if/else over one-liner
122
+ Style/GuardClause:
123
+ Enabled: true
124
+ MinBodyLength: 3
125
+ AllowConsecutiveConditionals: false
126
+
127
+ Style/SymbolArray:
128
+ EnforcedStyle: brackets
129
+ Enabled: true
130
+
131
+ Style/StringLiteralsInInterpolation:
132
+ Enabled: true
133
+
134
+ Style/BlockDelimiters:
135
+ Enabled: true
136
+
137
+ Naming/PredicateMethod:
138
+ Enabled: true
139
+ Mode: "conservative"
140
+ AllowedMethods:
141
+ - validate!
142
+ - migrate
143
+
144
+ # We use class instance variables quite a bit, mostly for readonly values set
145
+ # at boot time. Except for our models with have redis-rb Redis instances
146
+ # connected on their associated db via ModelClass.dbclient. We're well aware
147
+ # so keeping this disabled reduces warning noise.
148
+ ThreadSafety/ClassInstanceVariable:
149
+ Enabled: false
150
+
151
+ Naming/RescuedExceptionsVariableName:
152
+ Enabled: true
153
+ PreferredName: ex # Default is 'e'
154
+
155
+ Naming/PredicatePrefix:
156
+ Enabled: true
157
+ ForbiddenPrefixes: [is_, has_, have_]
158
+ AllowedMethods: [
159
+ has_passphrase?, # correlates with the REST API field `has_passphrase`
160
+ ]
161
+
162
+ Layout/MultilineMethodCallIndentation:
163
+ EnforcedStyle: indented
164
+ IndentationWidth: 2
31
165
 
32
166
  Gemspec/DeprecatedAttributeAssignment:
33
167
  Enabled: true
@@ -35,37 +169,249 @@ Gemspec/DeprecatedAttributeAssignment:
35
169
  Gemspec/DevelopmentDependencies:
36
170
  Enabled: true
37
171
 
38
- Layout/HashAlignment:
172
+ Layout/ElseAlignment:
39
173
  Enabled: false
40
174
 
41
- Lint/Void:
175
+ Layout/EndAlignment:
42
176
  Enabled: false
177
+ # Severity: low
178
+ # SupportedStylesAlignWith: 2
179
+ # Leave commented out. When we set align with, endless "error occurred"
180
+ # EnforcedStyle: keyword # keyword, variable, start_of_line
43
181
 
182
+ Layout/ExtraSpacing:
183
+ Enabled: true
184
+ AllowForAlignment: true
185
+ AllowBeforeTrailingComments: true
186
+ ForceEqualSignAlignment: true
187
+
188
+ Layout/IndentationConsistency:
189
+ EnforcedStyle: indented_internal_methods
190
+ Enabled: true
191
+
192
+ Layout/IndentationWidth:
193
+ # We don't want to enforce indentation width because it's doing weird things
194
+ # with if/else statements that capture values. The `if` expression is aligned
195
+ # with the right side of the `test` but the `else` expression is aligned with
196
+ # the start of the line.
197
+ Width: 2
198
+ Enabled: false
199
+
200
+ Layout/HashAlignment:
201
+ Enabled: true
202
+
203
+ Layout/FirstHashElementIndentation:
204
+ Enabled: true
205
+
206
+ Lint/Void:
207
+ Enabled: true
208
+
209
+ Lint/CopDirectiveSyntax:
210
+ Enabled: true
211
+
212
+ # Offense count: 122
213
+ # Assignment Branch Condition size
44
214
  Metrics/AbcSize:
45
215
  Enabled: false
46
216
  Max: 20
47
217
 
48
- Metrics/ClassLength:
218
+ # Offense count: 217
219
+ Layout/LineLength:
220
+ Enabled: false
221
+ AllowHeredoc: true
222
+ AllowURI: true
223
+ URISchemes:
224
+ - https
225
+ IgnoreCopDirectives: true
226
+ AllowedPatterns: []
227
+ SplitStrings: false
228
+ Max: 100
229
+
230
+ # Align the arguments of a method call if they span more than one line.
231
+ Layout/ArgumentAlignment:
49
232
  Enabled: true
50
- Max: 200
233
+ EnforcedStyle: with_fixed_indentation # with_first_argument, with_fixed_indentation
234
+ IndentationWidth: 2
51
235
 
52
- Metrics/CyclomaticComplexity:
53
- Enabled: false
236
+ Layout/EmptyLineAfterGuardClause:
237
+ Enabled: true
238
+
239
+ Layout/EmptyLineBetweenDefs:
240
+ Enabled: true
241
+
242
+ Layout/EmptyLines:
243
+ Enabled: true
244
+
245
+ Layout/EmptyLinesAroundAccessModifier:
246
+ Enabled: true
247
+
248
+ Layout/EmptyLinesAroundAttributeAccessor:
249
+ Enabled: true
250
+
251
+ Layout/EmptyLinesAroundBlockBody:
252
+ Enabled: true
253
+
254
+ Layout/EmptyLinesAroundClassBody:
255
+ Enabled: true
256
+
257
+ Layout/EmptyLinesAroundExceptionHandlingKeywords:
258
+ Enabled: true
259
+
260
+ Layout/EmptyLinesAroundMethodBody:
261
+ Enabled: true
262
+
263
+ Layout/EmptyLinesAroundModuleBody:
264
+ Enabled: true
265
+
266
+ Metrics/ClassLength:
267
+ Enabled: true
268
+ Max: 350
54
269
 
270
+ # Offense count: non-0
55
271
  Metrics/MethodLength:
56
272
  Enabled: true
57
- Max: 40
58
- CountAsOne: ['method_call']
273
+ Max: 50
274
+ CountAsOne: ["method_call"]
59
275
 
60
276
  Metrics/ModuleLength:
61
277
  Enabled: true
62
- Max: 250
63
- CountAsOne: ['method_call']
278
+ Max: 350
279
+ CountAsOne: ["method_call"]
64
280
 
65
281
  Performance/Size:
66
282
  Enabled: true
67
- Exclude:
68
- # - lib/example.rb
283
+ Exclude: []
284
+
285
+ Naming/AsciiIdentifiers:
286
+ Enabled: true
287
+
288
+ Metrics/CyclomaticComplexity:
289
+ Enabled: false
69
290
 
70
291
  Style/NegatedIfElseCondition:
71
292
  Enabled: true
293
+
294
+ Style/TrailingCommaInArguments:
295
+ Enabled: true
296
+ EnforcedStyleForMultiline: comma
297
+
298
+ Style/TrailingCommaInArrayLiteral:
299
+ Enabled: true
300
+ EnforcedStyleForMultiline: comma
301
+
302
+ # Use #empty? when testing for objects of length 0.
303
+ Style/ZeroLengthPredicate:
304
+ Enabled: true
305
+ Safe: true
306
+
307
+ Style/MethodDefParentheses:
308
+ Enabled: true
309
+
310
+ Style/FrozenStringLiteralComment:
311
+ Enabled: true
312
+ EnforcedStyle: never
313
+
314
+ Style/SuperArguments:
315
+ Enabled: true
316
+
317
+ # Offense count: non-0
318
+ ThreadSafety/ClassAndModuleAttributes:
319
+ Description: Avoid mutating class and module attributes.
320
+ Enabled: true
321
+ ActiveSupportClassAttributeAllowed: false
322
+
323
+ ThreadSafety/DirChdir:
324
+ Description: Avoid using `Dir.chdir` due to its process-wide effect.
325
+ Enabled: true
326
+ AllowCallWithBlock: false
327
+
328
+ # Do not assign mutable objects to class instance variables.
329
+ ThreadSafety/MutableClassInstanceVariable:
330
+ Description:
331
+ Enabled: true
332
+ EnforcedStyle: literals # one of literals, strict
333
+ SafeAutoCorrect: false
334
+
335
+ # Avoid starting new threads. Let a framework like Sidekiq handle the threads.
336
+ ThreadSafety/NewThread:
337
+ Enabled: true
338
+
339
+ # Avoid instance variables in Rack middleware.
340
+ ThreadSafety/RackMiddlewareInstanceVariable:
341
+ Description:
342
+ Enabled: true
343
+ Include:
344
+ - lib/middleware/*.rb
345
+ - lib/middleware/onetime/*.rb
346
+
347
+ # Unsafe autocorrect:
348
+ Performance/MapCompact:
349
+ Enabled: false
350
+ Performance/StringInclude:
351
+ Enabled: false
352
+ Style/ClassAndModuleChildren:
353
+ Enabled: false
354
+ Style/GlobalStdStream:
355
+ Enabled: false
356
+ Style/HashConversion:
357
+ Enabled: false
358
+ Style/HashEachMethods:
359
+ Enabled: false
360
+ Style/IdenticalConditionalBranches:
361
+ Enabled: false
362
+ Style/MinMaxComparison:
363
+ Enabled: false
364
+ Style/MutableConstant:
365
+ Enabled: false
366
+ Style/NumericPredicate:
367
+ Enabled: false
368
+ Style/RaiseArgs:
369
+ Enabled: false
370
+ Style/RedundantInterpolation:
371
+ Enabled: false
372
+ Style/SafeNavigation:
373
+ Enabled: false
374
+ Style/SpecialGlobalVars:
375
+ Enabled: false
376
+ Style/StringConcatenation:
377
+ Enabled: false
378
+ Style/SymbolProc:
379
+ Enabled: false
380
+
381
+ # warnings
382
+ Lint/RedundantCopDisableDirective:
383
+ Enabled: false
384
+ Lint/AssignmentInCondition:
385
+ Enabled: false
386
+
387
+ # Manual corrections
388
+ Metrics/BlockLength:
389
+ Enabled: false
390
+ Metrics/BlockNesting:
391
+ Enabled: false
392
+ Metrics/ParameterLists:
393
+ Enabled: false
394
+ Naming/AccessorMethodName:
395
+ Enabled: false
396
+ Naming/MethodParameterName:
397
+ Enabled: false
398
+ Performance/CollectionLiteralInLoop:
399
+ Enabled: false
400
+ Style/OptionalBooleanParameter:
401
+ Enabled: false
402
+
403
+ # warnings
404
+ Lint/DuplicateMethods:
405
+ Enabled: false
406
+ Lint/UselessOr:
407
+ Enabled: false
408
+ Lint/UnreachableLoop:
409
+ Enabled: false
410
+ Lint/MissingCopEnableDirective:
411
+ Enabled: false
412
+ Lint/MissingSuper:
413
+ Enabled: false
414
+ Lint/EmptyFile:
415
+ Enabled: false
416
+ Lint/RescueException:
417
+ Enabled: false
data/Gemfile CHANGED
@@ -1,11 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
6
 
7
- group "development" do
8
- gem "pry-byebug"
9
- gem "rubocop"
10
- gem "tryouts"
7
+ group :development, :test do
8
+ gem 'rack-test'
9
+ gem 'rspec', '~> 3.12'
10
+ end
11
+
12
+ group 'development' do
13
+ gem 'pry-byebug', require: false
14
+ gem 'rubocop', require: false
15
+ gem 'rubocop-performance', require: false
16
+ gem 'rubocop-rspec', require: false
17
+ gem 'rubocop-thread_safety', require: false
18
+ gem 'ruby-lsp', require: false
19
+ gem 'stackprof', require: false
20
+ gem 'syntax_tree', require: false
21
+ gem 'tryouts', require: false
11
22
  end
data/Gemfile.lock CHANGED
@@ -1,70 +1,146 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- otto (1.1.0.pre.alpha3)
5
- addressable (~> 2.2, < 3)
6
- rack (~> 2.2, < 3.0)
4
+ otto (1.3.0)
5
+ rack (~> 3.1, < 4.0)
6
+ rack-parser (~> 0.7)
7
7
  rexml (>= 3.3.6)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.8.7)
13
- public_suffix (>= 2.0.2, < 7.0)
14
- ast (2.4.2)
15
- byebug (11.1.3)
12
+ ast (2.4.3)
13
+ byebug (12.0.0)
16
14
  coderay (1.1.3)
17
- drydock (0.6.9)
18
- json (2.7.2)
19
- language_server-protocol (3.17.0.3)
20
- method_source (1.0.0)
21
- parallel (1.24.0)
22
- parser (3.3.0.5)
15
+ date (3.4.1)
16
+ diff-lcs (1.6.2)
17
+ erb (5.0.2)
18
+ io-console (0.8.1)
19
+ irb (1.15.2)
20
+ pp (>= 0.6.0)
21
+ rdoc (>= 4.0.0)
22
+ reline (>= 0.4.2)
23
+ json (2.13.2)
24
+ language_server-protocol (3.17.0.5)
25
+ lint_roller (1.1.0)
26
+ logger (1.7.0)
27
+ method_source (1.1.0)
28
+ minitest (5.25.5)
29
+ parallel (1.27.0)
30
+ parser (3.3.9.0)
23
31
  ast (~> 2.4.1)
24
32
  racc
25
- pry (0.14.2)
33
+ pastel (0.8.0)
34
+ tty-color (~> 0.5)
35
+ pp (0.6.2)
36
+ prettyprint
37
+ prettier_print (1.2.1)
38
+ prettyprint (0.2.0)
39
+ prism (1.4.0)
40
+ pry (0.15.2)
26
41
  coderay (~> 1.1)
27
42
  method_source (~> 1.0)
28
- pry-byebug (3.10.1)
29
- byebug (~> 11.0)
30
- pry (>= 0.13, < 0.15)
31
- public_suffix (6.0.1)
32
- racc (1.7.3)
33
- rack (2.2.9)
43
+ pry-byebug (3.11.0)
44
+ byebug (~> 12.0)
45
+ pry (>= 0.13, < 0.16)
46
+ psych (5.2.6)
47
+ date
48
+ stringio
49
+ racc (1.8.1)
50
+ rack (3.2.0)
51
+ rack-parser (0.7.0)
52
+ rack
53
+ rack-test (2.2.0)
54
+ rack (>= 1.3)
34
55
  rainbow (3.1.1)
35
- regexp_parser (2.9.0)
36
- rexml (3.3.7)
37
- rubocop (1.62.1)
56
+ rbs (3.9.4)
57
+ logger
58
+ rdoc (6.14.2)
59
+ erb
60
+ psych (>= 4.0.0)
61
+ regexp_parser (2.11.0)
62
+ reline (0.6.2)
63
+ io-console (~> 0.5)
64
+ rexml (3.4.1)
65
+ rspec (3.13.1)
66
+ rspec-core (~> 3.13.0)
67
+ rspec-expectations (~> 3.13.0)
68
+ rspec-mocks (~> 3.13.0)
69
+ rspec-core (3.13.5)
70
+ rspec-support (~> 3.13.0)
71
+ rspec-expectations (3.13.5)
72
+ diff-lcs (>= 1.2.0, < 2.0)
73
+ rspec-support (~> 3.13.0)
74
+ rspec-mocks (3.13.5)
75
+ diff-lcs (>= 1.2.0, < 2.0)
76
+ rspec-support (~> 3.13.0)
77
+ rspec-support (3.13.4)
78
+ rubocop (1.79.1)
38
79
  json (~> 2.3)
39
- language_server-protocol (>= 3.17.0)
80
+ language_server-protocol (~> 3.17.0.2)
81
+ lint_roller (~> 1.1.0)
40
82
  parallel (~> 1.10)
41
83
  parser (>= 3.3.0.2)
42
84
  rainbow (>= 2.2.2, < 4.0)
43
- regexp_parser (>= 1.8, < 3.0)
44
- rexml (>= 3.2.5, < 4.0)
45
- rubocop-ast (>= 1.31.1, < 2.0)
85
+ regexp_parser (>= 2.9.3, < 3.0)
86
+ rubocop-ast (>= 1.46.0, < 2.0)
46
87
  ruby-progressbar (~> 1.7)
47
- unicode-display_width (>= 2.4.0, < 3.0)
48
- rubocop-ast (1.31.2)
49
- parser (>= 3.3.0.4)
88
+ unicode-display_width (>= 2.4.0, < 4.0)
89
+ rubocop-ast (1.46.0)
90
+ parser (>= 3.3.7.2)
91
+ prism (~> 1.4)
92
+ rubocop-performance (1.25.0)
93
+ lint_roller (~> 1.1)
94
+ rubocop (>= 1.75.0, < 2.0)
95
+ rubocop-ast (>= 1.38.0, < 2.0)
96
+ rubocop-rspec (3.6.0)
97
+ lint_roller (~> 1.1)
98
+ rubocop (~> 1.72, >= 1.72.1)
99
+ rubocop-thread_safety (0.7.3)
100
+ lint_roller (~> 1.1)
101
+ rubocop (~> 1.72, >= 1.72.1)
102
+ rubocop-ast (>= 1.44.0, < 2.0)
103
+ ruby-lsp (0.26.1)
104
+ language_server-protocol (~> 3.17.0)
105
+ prism (>= 1.2, < 2.0)
106
+ rbs (>= 3, < 5)
50
107
  ruby-progressbar (1.13.0)
51
- storable (0.10.0)
52
- sysinfo (0.10.0)
53
- drydock (< 1.0)
54
- storable (~> 0.10)
55
- tryouts (2.2.0)
56
- sysinfo (~> 0.10)
57
- unicode-display_width (2.5.0)
108
+ stackprof (0.2.27)
109
+ stringio (3.1.7)
110
+ syntax_tree (6.3.0)
111
+ prettier_print (>= 1.2.0)
112
+ tryouts (3.2.1)
113
+ irb
114
+ minitest (~> 5.0)
115
+ pastel (~> 0.8)
116
+ prism (~> 1.0)
117
+ rspec (~> 3.0)
118
+ tty-cursor (~> 0.7)
119
+ tty-screen (~> 0.8)
120
+ tty-color (0.6.0)
121
+ tty-cursor (0.7.1)
122
+ tty-screen (0.8.2)
123
+ unicode-display_width (3.1.4)
124
+ unicode-emoji (~> 4.0, >= 4.0.4)
125
+ unicode-emoji (4.0.4)
58
126
 
59
127
  PLATFORMS
60
- arm64-darwin-22
128
+ arm64-darwin-24
61
129
  ruby
62
130
 
63
131
  DEPENDENCIES
64
132
  otto!
65
133
  pry-byebug
134
+ rack-test
135
+ rspec (~> 3.12)
66
136
  rubocop
137
+ rubocop-performance
138
+ rubocop-rspec
139
+ rubocop-thread_safety
140
+ ruby-lsp
141
+ stackprof
142
+ syntax_tree
67
143
  tryouts
68
144
 
69
145
  BUNDLED WITH
70
- 2.5.7
146
+ 2.6.9
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2011-2024 delano
3
+ Copyright (c) 2011 Delano Mandelbaum
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal