Sha256: 7b89504af8d28e6183042100d353c39adfc72d809032a421a252c27126829f3d
Contents?: true
Size: 1.05 KB
Versions: 6
Compression:
Stored size: 1.05 KB
Contents
# frozen_string_literal: true module RubyNext module Language module Rewriters class NumberedParams < Base using RubyNext NAME = "numbered-params" SYNTAX_PROBE = "proc { _1 }.call(1)" MIN_SUPPORTED_VERSION = Gem::Version.new("2.7.0") def on_numblock(node) context.track! self proc_or_lambda, num, body = *node.children if proc_or_lambda.type == :lambda insert_before(node.loc.begin, "(#{unparse(proc_args(num))})") else insert_after(node.loc.begin, " |#{unparse(proc_args(num))}|") end node.updated( :block, [ proc_or_lambda, proc_args(num), body ] ) end private def proc_args(n) return s(:args, s(:procarg0, s(:arg, :_1))) if n == 1 (1..n).map do |numero| s(:arg, :"_#{numero}") end.then do |args| s(:args, *args) end end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems