Sha256: e4b5c49525df7d7d9b497f8175f23b8348ad3d2f07824658919ad5176523306e
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Style # Checks for presence or absence of braces around hash literal as a last # array item depending on configuration. # # @example EnforcedStyle: braces (default) # # bad # [1, 2, one: 1, two: 2] # # # good # [1, 2, { one: 1, two: 2 }] # # @example EnforcedStyle: no_braces # # bad # [1, 2, { one: 1, two: 2 }] # # # good # [1, 2, one: 1, two: 2] # class HashAsLastArrayItem < Base include ConfigurableEnforcedStyle extend AutoCorrector def on_hash(node) return unless node.parent&.array_type? if braces_style? check_braces(node) else check_no_braces(node) end end private def check_braces(node) return if node.braces? add_offense(node, message: 'Wrap hash in `{` and `}`.') do |corrector| corrector.wrap(node, '{', '}') end end def check_no_braces(node) return unless node.braces? add_offense(node, message: 'Omit the braces around the hash.') do |corrector| corrector.remove(node.loc.begin) corrector.remove(node.loc.end) end end def braces_style? style == :braces end end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
rubocop-0.88.0 | lib/rubocop/cop/style/hash_as_last_array_item.rb |
rbhint-0.87.1.rc1 | lib/rubocop/cop/style/hash_as_last_array_item.rb |