class RubyNext::Language::Rewriters::ShorthandHash

Constants

MIN_SUPPORTED_VERSION
NAME
SYNTAX_PROBE

Public Instance Methods

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

  ident, = *node.children

  key = key_from_ident(ident)

  replace(
    node.loc.expression,
    "#{key}: #{key}"
  )

  node.updated(
    :pair,
    [
      s(:sym, key),
      ident
    ]
  )
end

Private Instance Methods

key_from_ident(node) click to toggle source
# File lib/ruby-next/language/rewriters/shorthand_hash.rb, line 34
def key_from_ident(node)
  case node.type
  when :send
    node.children[1]
  when :lvar
    node.children[0]
  else
    raise ArgumentError, "Unsupport ipair node: #{node}"
  end
end