ruby-next-core 0.15.2 → 1.0.0.rc.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/README.md +118 -48
  4. data/bin/mspec +11 -0
  5. data/lib/.rbnext/2.1/ruby-next/commands/nextify.rb +295 -0
  6. data/lib/.rbnext/2.1/ruby-next/core.rb +10 -2
  7. data/lib/.rbnext/2.1/ruby-next/language.rb +54 -10
  8. data/lib/.rbnext/2.3/ruby-next/commands/nextify.rb +82 -2
  9. data/lib/.rbnext/2.3/ruby-next/config.rb +79 -0
  10. data/lib/.rbnext/2.3/ruby-next/core/data.rb +159 -0
  11. data/lib/.rbnext/2.3/ruby-next/language/rewriters/2.7/pattern_matching.rb +44 -9
  12. data/lib/.rbnext/2.3/ruby-next/language/rewriters/base.rb +6 -32
  13. data/lib/.rbnext/2.3/ruby-next/utils.rb +3 -22
  14. data/lib/.rbnext/2.6/ruby-next/core/data.rb +159 -0
  15. data/lib/.rbnext/2.7/ruby-next/core/data.rb +159 -0
  16. data/lib/.rbnext/2.7/ruby-next/core.rb +10 -2
  17. data/lib/.rbnext/2.7/ruby-next/language/paco_parsers/string_literals.rb +109 -0
  18. data/lib/.rbnext/2.7/ruby-next/language/rewriters/2.7/pattern_matching.rb +44 -9
  19. data/lib/.rbnext/2.7/ruby-next/language/rewriters/text.rb +132 -0
  20. data/lib/.rbnext/3.2/ruby-next/commands/base.rb +55 -0
  21. data/lib/.rbnext/3.2/ruby-next/language/rewriters/2.7/pattern_matching.rb +1095 -0
  22. data/lib/.rbnext/3.2/ruby-next/rubocop.rb +210 -0
  23. data/lib/ruby-next/commands/nextify.rb +84 -2
  24. data/lib/ruby-next/config.rb +27 -0
  25. data/lib/ruby-next/core/data.rb +159 -0
  26. data/lib/ruby-next/core/matchdata/deconstruct.rb +9 -0
  27. data/lib/ruby-next/core/matchdata/deconstruct_keys.rb +20 -0
  28. data/lib/ruby-next/core/matchdata/named_captures.rb +11 -0
  29. data/lib/ruby-next/core/refinement/import.rb +44 -36
  30. data/lib/ruby-next/core/time/deconstruct_keys.rb +30 -0
  31. data/lib/ruby-next/core.rb +10 -2
  32. data/lib/ruby-next/irb.rb +2 -2
  33. data/lib/ruby-next/language/bootsnap.rb +2 -25
  34. data/lib/ruby-next/language/paco_parser.rb +7 -0
  35. data/lib/ruby-next/language/paco_parsers/base.rb +47 -0
  36. data/lib/ruby-next/language/paco_parsers/comments.rb +26 -0
  37. data/lib/ruby-next/language/paco_parsers/string_literals.rb +109 -0
  38. data/lib/ruby-next/language/parser.rb +24 -2
  39. data/lib/ruby-next/language/rewriters/2.7/pattern_matching.rb +42 -7
  40. data/lib/ruby-next/language/rewriters/3.0/args_forward_leading.rb +2 -2
  41. data/lib/ruby-next/language/rewriters/3.1/oneline_pattern_parensless.rb +1 -1
  42. data/lib/ruby-next/language/rewriters/3.2/anonymous_restargs.rb +104 -0
  43. data/lib/ruby-next/language/rewriters/abstract.rb +57 -0
  44. data/lib/ruby-next/language/rewriters/base.rb +6 -32
  45. data/lib/ruby-next/language/rewriters/edge/it_param.rb +58 -0
  46. data/lib/ruby-next/language/rewriters/edge.rb +12 -0
  47. data/lib/ruby-next/language/rewriters/proposed/bind_vars_pattern.rb +3 -0
  48. data/lib/ruby-next/language/rewriters/proposed/method_reference.rb +9 -20
  49. data/lib/ruby-next/language/rewriters/text.rb +132 -0
  50. data/lib/ruby-next/language/runtime.rb +9 -86
  51. data/lib/ruby-next/language/setup.rb +5 -2
  52. data/lib/ruby-next/language/unparser.rb +5 -0
  53. data/lib/ruby-next/language.rb +54 -10
  54. data/lib/ruby-next/pry.rb +1 -1
  55. data/lib/ruby-next/rubocop.rb +2 -0
  56. data/lib/ruby-next/utils.rb +3 -22
  57. data/lib/ruby-next/version.rb +1 -1
  58. data/lib/uby-next.rb +2 -2
  59. metadata +65 -12
@@ -3,7 +3,7 @@
3
3
  gem "ruby-next-parser", ">= 2.8.0.3"
4
4
  gem "unparser", ">= 0.4.7"
5
5
 
6
- require "set"
6
+ require "set" # rubocop:disable Lint/RedundantRequireStatement
7
7
 
8
8
  require "ruby-next"
9
9
 
@@ -62,8 +62,15 @@ module RubyNext
62
62
  end
63
63
 
64
64
  class << self
65
+ attr_reader :include_patterns
66
+ attr_reader :exclude_patterns
67
+
68
+ def watch_dirs
69
+ warn "[DEPRECATED] Use `RubyNext::Language.include_patterns` instead of `RubyNext::Language.watch_dirs`"
70
+ @watch_dirs
71
+ end
72
+
65
73
  attr_accessor :rewriters
66
- attr_reader :watch_dirs
67
74
 
68
75
  attr_accessor :strategy
69
76
 
@@ -95,14 +102,17 @@ module RubyNext
95
102
  end
96
103
 
97
104
  def transform(source, rewriters: self.rewriters, using: RubyNext::Core.refine?, context: TransformContext.new)
105
+ text_rewriters, ast_rewriters = rewriters.partition(&:text?)
106
+
98
107
  retried = 0
99
- new_source = nil
108
+ new_source = text_rewrite(source, rewriters: text_rewriters, using: using, context: context)
109
+
100
110
  begin
101
111
  new_source =
102
112
  if mode == :rewrite
103
- rewrite(source, rewriters: rewriters, using: using, context: context)
113
+ rewrite(new_source, rewriters: ast_rewriters, using: using, context: context)
104
114
  else
105
- regenerate(source, rewriters: rewriters, using: using, context: context)
115
+ regenerate(new_source, rewriters: ast_rewriters, using: using, context: context)
106
116
  end
107
117
  rescue Unparser::UnknownNodeError => err
108
118
  RubyNext.warn "Ruby Next fallbacks to \"rewrite\" transpiling mode since the version of Unparser you use doesn't support some syntax yet: #{err.message}.\n" \
@@ -119,8 +129,17 @@ module RubyNext
119
129
  Core.inject! new_source.dup
120
130
  end
121
131
 
132
+ def target_dir?(dirname)
133
+ # fnmatch? requires a file name, not a folder
134
+ fname = File.join(dirname, "x.rb")
135
+
136
+ include_patterns.any? { |pattern| File.fnmatch?(pattern, fname) } &&
137
+ exclude_patterns.none? { |pattern| File.fnmatch?(pattern, fname) }
138
+ end
139
+
122
140
  def transformable?(path)
123
- watch_dirs.any? { |dir| path.start_with?(dir) }
141
+ include_patterns.any? { |pattern| File.fnmatch?(pattern, path) } &&
142
+ exclude_patterns.none? { |pattern| File.fnmatch?(pattern, path) }
124
143
  end
125
144
 
126
145
  # Rewriters required for the current version
@@ -165,14 +184,36 @@ module RubyNext
165
184
  end
166
185
  end
167
186
 
187
+ def text_rewrite(source, rewriters:, using:, context:)
188
+ rewriters.inject(source) do |src, rewriter|
189
+ rewriter.new(context).rewrite(src)
190
+ end.then do |new_source|
191
+ next source unless context.dirty?
192
+
193
+ new_source
194
+ end
195
+ end
196
+
168
197
  attr_writer :watch_dirs
198
+ attr_writer :include_patterns, :exclude_patterns
169
199
  end
170
200
 
171
201
  self.rewriters = []
172
- self.watch_dirs = %w[app lib spec test].map { |path| File.join(Dir.pwd, path) }
202
+ self.watch_dirs = [].tap do |dirs|
203
+ # For backward compatibility
204
+ dirs.define_singleton_method(:<<) do |dir|
205
+ super(dir)
206
+ RubyNext::Language.include_patterns << File.join(dir, "*.rb")
207
+ end
208
+ end
209
+
210
+ self.include_patterns = %w[app lib spec test].map { |path| File.join(Dir.pwd, path, "*.rb") }
211
+ self.exclude_patterns = %w[vendor/bundle].map { |path| File.join(Dir.pwd, path, "*") }
173
212
  self.mode = ENV.fetch("RUBY_NEXT_TRANSPILE_MODE", "rewrite").to_sym
174
213
 
214
+ require "ruby-next/language/rewriters/abstract"
175
215
  require "ruby-next/language/rewriters/base"
216
+ require "ruby-next/language/rewriters/text"
176
217
 
177
218
  require "ruby-next/language/rewriters/2.1/numeric_literals"
178
219
  rewriters << Rewriters::NumericLiterals
@@ -212,7 +253,7 @@ module RubyNext
212
253
  rewriters << Rewriters::InPattern
213
254
 
214
255
  require "ruby-next/language/rewriters/3.0/endless_method"
215
- RubyNext::Language.rewriters << RubyNext::Language::Rewriters::EndlessMethod
256
+ rewriters << RubyNext::Language::Rewriters::EndlessMethod
216
257
 
217
258
  require "ruby-next/language/rewriters/3.1/oneline_pattern_parensless"
218
259
  rewriters << Rewriters::OnelinePatternParensless
@@ -232,16 +273,19 @@ module RubyNext
232
273
  require "ruby-next/language/rewriters/3.1/shorthand_hash"
233
274
  rewriters << RubyNext::Language::Rewriters::ShorthandHash
234
275
 
276
+ require "ruby-next/language/rewriters/3.2/anonymous_restargs"
277
+ rewriters << RubyNext::Language::Rewriters::AnonymousRestArgs
278
+
235
279
  # Put endless range in the end, 'cause Parser fails to parse it in
236
280
  # pattern matching
237
281
  require "ruby-next/language/rewriters/2.6/endless_range"
238
282
  rewriters << Rewriters::EndlessRange
239
283
 
240
- if ENV["RUBY_NEXT_EDGE"] == "1"
284
+ if RubyNext.edge_syntax?
241
285
  require "ruby-next/language/rewriters/edge"
242
286
  end
243
287
 
244
- if ENV["RUBY_NEXT_PROPOSED"] == "1"
288
+ if RubyNext.proposed_syntax?
245
289
  require "ruby-next/language/rewriters/proposed"
246
290
  end
247
291
  end
data/lib/ruby-next/pry.rb CHANGED
@@ -64,7 +64,7 @@ end)
64
64
  Pry::Code.singleton_class.prepend(Module.new do
65
65
  def complete_expression?(str)
66
66
  silence_stderr do
67
- ::Parser::RubyNext.parse(str)
67
+ ::RubyNext::Language.parser_class.parse(str)
68
68
  end
69
69
 
70
70
  true
@@ -4,6 +4,7 @@
4
4
  # edge features and fix some bugs with 2.7+ syntax
5
5
 
6
6
  require "parser/ruby-next/version"
7
+ require "ruby-next/config"
7
8
  require "ruby-next/language/parser"
8
9
 
9
10
  module RuboCop
@@ -38,6 +39,7 @@ module RuboCop
38
39
  def parser_class(version)
39
40
  return super unless version == RUBY_NEXT_VERSION
40
41
 
42
+ require "parser/rubynext"
41
43
  Parser::RubyNext
42
44
  end
43
45
  end
@@ -4,28 +4,6 @@ module RubyNext
4
4
  module Utils
5
5
  module_function
6
6
 
7
- if $LOAD_PATH.respond_to?(:resolve_feature_path)
8
- def resolve_feature_path(feature)
9
- $LOAD_PATH.resolve_feature_path(feature)&.last
10
- rescue LoadError
11
- end
12
- else
13
- def resolve_feature_path(path)
14
- if File.file?(relative = File.expand_path(path))
15
- path = relative
16
- end
17
-
18
- path = "#{path}.rb" if File.extname(path).empty?
19
-
20
- return path if Pathname.new(path).absolute?
21
-
22
- $LOAD_PATH.find do |lp|
23
- lpath = File.join(lp, path)
24
- return File.realpath(lpath) if File.file?(lpath)
25
- end
26
- end
27
- end
28
-
29
7
  def source_with_lines(source, path)
30
8
  source.lines.map.with_index do |line, i|
31
9
  "#{(i + 1).to_s.rjust(4)}: #{line}"
@@ -36,6 +14,7 @@ module RubyNext
36
14
 
37
15
  # Returns true if modules refinement is supported in current version
38
16
  def refine_modules?
17
+ save_verbose, $VERBOSE = $VERBOSE, nil
39
18
  @refine_modules ||=
40
19
  begin
41
20
  # Make sure that including modules within refinements works
@@ -61,6 +40,8 @@ module RubyNext
61
40
  true
62
41
  rescue TypeError, NoMethodError
63
42
  false
43
+ ensure
44
+ $VERBOSE = save_verbose
64
45
  end
65
46
  end
66
47
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyNext
4
- VERSION = "0.15.2"
4
+ VERSION = "1.0.0.rc.1"
5
5
  end
data/lib/uby-next.rb CHANGED
@@ -9,7 +9,7 @@ require "ruby-next/core/runtime"
9
9
 
10
10
  using RubyNext
11
11
 
12
- RubyNext::Language.watch_dirs << Dir.pwd
12
+ RubyNext::Language.include_patterns << File.join(Dir.pwd, ".rb")
13
13
 
14
14
  require "stringio"
15
15
 
@@ -36,7 +36,7 @@ end
36
36
  at_exit do
37
37
  $stderr = orig_stderr
38
38
 
39
- if NoMethodError === $! || SyntaxError === $!
39
+ if NoMethodError === $! || SyntaxError === $! || NameError === $!
40
40
  if $0 && File.exist?($0)
41
41
  load($0)
42
42
  exit!(0)
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-next-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 1.0.0.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dementyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-02 00:00:00.000000000 Z
11
+ date: 2023-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: require-hooks
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.2'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.2'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: ruby-next-parser
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: 3.1.1.0
33
+ version: 3.2.2.0
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: 3.1.1.0
40
+ version: 3.2.2.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: unparser
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
54
  version: 0.6.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: paco
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.2'
41
69
  description: "\n Ruby Next Core is a zero deps version of Ruby Next meant to be
42
70
  used\n as as dependency in your gems.\n\n It contains all the polyfills and
43
71
  utility files but doesn't require transpiler\n dependencies to be install.\n
@@ -52,14 +80,18 @@ files:
52
80
  - CHANGELOG.md
53
81
  - LICENSE.txt
54
82
  - README.md
83
+ - bin/mspec
55
84
  - bin/parse
56
85
  - bin/reparse
57
86
  - bin/ruby-next
58
87
  - bin/transform
88
+ - lib/.rbnext/2.1/ruby-next/commands/nextify.rb
59
89
  - lib/.rbnext/2.1/ruby-next/core.rb
60
90
  - lib/.rbnext/2.1/ruby-next/language.rb
61
91
  - lib/.rbnext/2.3/ruby-next/commands/core_ext.rb
62
92
  - lib/.rbnext/2.3/ruby-next/commands/nextify.rb
93
+ - lib/.rbnext/2.3/ruby-next/config.rb
94
+ - lib/.rbnext/2.3/ruby-next/core/data.rb
63
95
  - lib/.rbnext/2.3/ruby-next/language/eval.rb
64
96
  - lib/.rbnext/2.3/ruby-next/language/rewriters/2.6/endless_range.rb
65
97
  - lib/.rbnext/2.3/ruby-next/language/rewriters/2.7/args_forward.rb
@@ -67,8 +99,15 @@ files:
67
99
  - lib/.rbnext/2.3/ruby-next/language/rewriters/3.1/anonymous_block.rb
68
100
  - lib/.rbnext/2.3/ruby-next/language/rewriters/base.rb
69
101
  - lib/.rbnext/2.3/ruby-next/utils.rb
102
+ - lib/.rbnext/2.6/ruby-next/core/data.rb
70
103
  - lib/.rbnext/2.7/ruby-next/core.rb
104
+ - lib/.rbnext/2.7/ruby-next/core/data.rb
105
+ - lib/.rbnext/2.7/ruby-next/language/paco_parsers/string_literals.rb
71
106
  - lib/.rbnext/2.7/ruby-next/language/rewriters/2.7/pattern_matching.rb
107
+ - lib/.rbnext/2.7/ruby-next/language/rewriters/text.rb
108
+ - lib/.rbnext/3.2/ruby-next/commands/base.rb
109
+ - lib/.rbnext/3.2/ruby-next/language/rewriters/2.7/pattern_matching.rb
110
+ - lib/.rbnext/3.2/ruby-next/rubocop.rb
72
111
  - lib/ruby-next.rb
73
112
  - lib/ruby-next/cli.rb
74
113
  - lib/ruby-next/commands/base.rb
@@ -81,6 +120,7 @@ files:
81
120
  - lib/ruby-next/core/array/intersect.rb
82
121
  - lib/ruby-next/core/constants/frozen_error.rb
83
122
  - lib/ruby-next/core/constants/no_matching_pattern_error.rb
123
+ - lib/ruby-next/core/data.rb
84
124
  - lib/ruby-next/core/enumerable/compact.rb
85
125
  - lib/ruby-next/core/enumerable/filter.rb
86
126
  - lib/ruby-next/core/enumerable/filter_map.rb
@@ -91,7 +131,10 @@ files:
91
131
  - lib/ruby-next/core/hash/merge.rb
92
132
  - lib/ruby-next/core/integer/try_convert.rb
93
133
  - lib/ruby-next/core/kernel/then.rb
134
+ - lib/ruby-next/core/matchdata/deconstruct.rb
135
+ - lib/ruby-next/core/matchdata/deconstruct_keys.rb
94
136
  - lib/ruby-next/core/matchdata/match.rb
137
+ - lib/ruby-next/core/matchdata/named_captures.rb
95
138
  - lib/ruby-next/core/proc/compose.rb
96
139
  - lib/ruby-next/core/refinement/import.rb
97
140
  - lib/ruby-next/core/runtime.rb
@@ -101,6 +144,7 @@ files:
101
144
  - lib/ruby-next/core/symbol/end_with.rb
102
145
  - lib/ruby-next/core/symbol/start_with.rb
103
146
  - lib/ruby-next/core/time/ceil.rb
147
+ - lib/ruby-next/core/time/deconstruct_keys.rb
104
148
  - lib/ruby-next/core/time/floor.rb
105
149
  - lib/ruby-next/core/unboundmethod/bind_call.rb
106
150
  - lib/ruby-next/core_ext.rb
@@ -108,6 +152,10 @@ files:
108
152
  - lib/ruby-next/language.rb
109
153
  - lib/ruby-next/language/bootsnap.rb
110
154
  - lib/ruby-next/language/eval.rb
155
+ - lib/ruby-next/language/paco_parser.rb
156
+ - lib/ruby-next/language/paco_parsers/base.rb
157
+ - lib/ruby-next/language/paco_parsers/comments.rb
158
+ - lib/ruby-next/language/paco_parsers/string_literals.rb
111
159
  - lib/ruby-next/language/parser.rb
112
160
  - lib/ruby-next/language/rewriters/2.1/numeric_literals.rb
113
161
  - lib/ruby-next/language/rewriters/2.1/required_kwargs.rb
@@ -129,12 +177,16 @@ files:
129
177
  - lib/ruby-next/language/rewriters/3.1/pin_vars_pattern.rb
130
178
  - lib/ruby-next/language/rewriters/3.1/refinement_import_methods.rb
131
179
  - lib/ruby-next/language/rewriters/3.1/shorthand_hash.rb
180
+ - lib/ruby-next/language/rewriters/3.2/anonymous_restargs.rb
181
+ - lib/ruby-next/language/rewriters/abstract.rb
132
182
  - lib/ruby-next/language/rewriters/base.rb
133
183
  - lib/ruby-next/language/rewriters/edge.rb
184
+ - lib/ruby-next/language/rewriters/edge/it_param.rb
134
185
  - lib/ruby-next/language/rewriters/proposed.rb
135
186
  - lib/ruby-next/language/rewriters/proposed/bind_vars_pattern.rb
136
187
  - lib/ruby-next/language/rewriters/proposed/method_reference.rb
137
188
  - lib/ruby-next/language/rewriters/runtime.rb
189
+ - lib/ruby-next/language/rewriters/text.rb
138
190
  - lib/ruby-next/language/runtime.rb
139
191
  - lib/ruby-next/language/setup.rb
140
192
  - lib/ruby-next/language/unparser.rb
@@ -147,15 +199,16 @@ files:
147
199
  - lib/uby-next.rb
148
200
  - lib/uby-next/irb.rb
149
201
  - lib/uby-next/pry.rb
150
- homepage: http://github.com/palkan/ruby-next
202
+ homepage: https://github.com/ruby-next/ruby-next
151
203
  licenses:
152
204
  - MIT
153
205
  metadata:
154
- bug_tracker_uri: http://github.com/ruby-next/ruby-next/issues
206
+ bug_tracker_uri: https://github.com/ruby-next/ruby-next/issues
155
207
  changelog_uri: https://github.com/ruby-next/ruby-next/blob/master/CHANGELOG.md
156
- documentation_uri: http://github.com/ruby-next/ruby-next/blob/master/README.md
157
- homepage_uri: http://github.com/ruby-next/ruby-next
158
- source_code_uri: http://github.com/ruby-next/ruby-next
208
+ documentation_uri: https://github.com/ruby-next/ruby-next/blob/master/README.md
209
+ homepage_uri: https://github.com/ruby-next/ruby-next
210
+ source_code_uri: https://github.com/ruby-next/ruby-next
211
+ funding_uri: https://github.com/sponsors/palkan
159
212
  post_install_message:
160
213
  rdoc_options: []
161
214
  require_paths:
@@ -167,11 +220,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
167
220
  version: 2.2.0
168
221
  required_rubygems_version: !ruby/object:Gem::Requirement
169
222
  requirements:
170
- - - ">="
223
+ - - ">"
171
224
  - !ruby/object:Gem::Version
172
- version: '0'
225
+ version: 1.3.1
173
226
  requirements: []
174
- rubygems_version: 3.3.7
227
+ rubygems_version: 3.4.20
175
228
  signing_key:
176
229
  specification_version: 4
177
230
  summary: Ruby Next core functionality