Sha256: 4de0d13e09956e9795211b3f652fd1f2c92bf1ba3d19f124ceb63e6fcfc275de
Contents?: true
Size: 1.09 KB
Versions: 7
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: true require "rubocop" module RuboCop module Cop module GitHub class RailsControllerRenderActionSymbol < Cop MSG = "Prefer `render` with string instead of symbol" def_node_matcher :render_sym?, <<-PATTERN (send nil :render $(sym _)) PATTERN def_node_matcher :render_with_options?, <<-PATTERN (send nil :render (hash $...)) PATTERN def_node_matcher :action_key?, <<-PATTERN (pair (sym {:action :template}) $(sym _)) PATTERN def on_send(node) if sym_node = render_sym?(node) add_offense(sym_node, :expression) elsif option_pairs = render_with_options?(node) option_pairs.each do |pair| if sym_node = action_key?(pair) add_offense(sym_node, :expression) end end end end def autocorrect(node) lambda do |corrector| corrector.replace(node.source_range, "\"#{node.children[0]}\"") end end end end end end
Version data entries
7 entries across 7 versions & 2 rubygems