class Opal::Rewriters::Hashes::KeyDuplicatesRewriter

Public Class Methods

new() click to toggle source
# File lib/opal/rewriters/hashes/key_duplicates_rewriter.rb, line 10
def initialize
  @keys = UniqKeysSet.new
end

Public Instance Methods

on_hash(node) click to toggle source
Calls superclass method
# File lib/opal/rewriters/hashes/key_duplicates_rewriter.rb, line 14
def on_hash(node)
  previous_keys, @keys = @keys, UniqKeysSet.new
  super(node)
ensure
  @keys = previous_keys
end
on_kwsplat(node) click to toggle source
# File lib/opal/rewriters/hashes/key_duplicates_rewriter.rb, line 31
def on_kwsplat(node)
  hash, _ = *node

  if hash.type == :hash
    hash = process_regular_node(hash)
  end

  node.updated(nil, [hash])
end
on_pair(node) click to toggle source
Calls superclass method
# File lib/opal/rewriters/hashes/key_duplicates_rewriter.rb, line 21
def on_pair(node)
  key, _value = *node

  if %i[str sym].include?(key.type)
    @keys << key
  end

  super(node)
end