class RubyNext::Language::Rewriters::RequiredKwargs

Constants

MIN_SUPPORTED_VERSION
NAME
SYNTAX_PROBE

Public Instance Methods

on_kwarg(node) click to toggle source
# File lib/ruby-next/language/rewriters/required_kwargs.rb, line 13
def on_kwarg(node)
  context.track! self

  name = node.children[0]

  new_node = node.updated(
    :kwoptarg,
    [name, raise_missing_keyword(name)]
  )

  replace(node.loc.expression, "#{name}: ::Kernel.raise(::ArgumentError, \"missing keyword: #{name}\")")

  new_node
end

Private Instance Methods

raise_missing_keyword(name) click to toggle source
# File lib/ruby-next/language/rewriters/required_kwargs.rb, line 30
def raise_missing_keyword(name)
  s(:send,
    s(:const, s(:cbase), :Kernel), :raise,
    s(:const, s(:cbase), :ArgumentError),
    s(:str, "missing keyword: #{name}"))
end