ruby/lib/irb/cmd/nop.rb
Stan Lo cd94bcdc46 [ruby/irb] Don't check RUBY_ENGINE when deciding whether to accept kargs
Ruby implementations like JRuby and TruffleRuby already indicate their
compatibility target with RUBY_VERSION. We don't need to exclude
them from accepting keyword arguments as long as they target 2.7+.

bf20faa4e6

Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
2023-04-02 15:34:28 +00:00

66 lines
1.3 KiB
Ruby

# frozen_string_literal: false
#
# nop.rb -
# by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
module IRB
# :stopdoc:
module ExtendCommand
class CommandArgumentError < StandardError; end
class Nop
class << self
def category(category = nil)
@category = category if category
@category
end
def description(description = nil)
@description = description if description
@description
end
private
def string_literal?(args)
sexp = Ripper.sexp(args)
sexp && sexp.size == 2 && sexp.last&.first&.first == :string_literal
end
end
if RUBY_VERSION >= "2.7.0"
def self.execute(conf, *opts, **kwargs, &block)
command = new(conf)
command.execute(*opts, **kwargs, &block)
rescue CommandArgumentError => e
puts e.message
end
else
def self.execute(conf, *opts, &block)
command = new(conf)
command.execute(*opts, &block)
rescue CommandArgumentError => e
puts e.message
end
end
def initialize(conf)
@irb_context = conf
end
attr_reader :irb_context
def irb
@irb_context.irb
end
def execute(*opts)
#nop
end
end
end
# :startdoc:
end