Sha256: 08895a2682791103615b8b080087032b9b1470e6804d0f8c3bb1bd770642c25c
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 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 last_array_item?(node) if braces_style? check_braces(node) else check_no_braces(node) end end private def last_array_item?(node) parent = node.parent return false unless parent parent.array_type? && parent.values.last == node end 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.89.0 | lib/rubocop/cop/style/hash_as_last_array_item.rb |