Class: RuboCop::Cop::Rails::ResponseParsedBody
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Rails::ResponseParsedBody
show all
- Extended by:
- AutoCorrector, TargetRailsVersion
- Defined in:
- lib/rubocop/cop/rails/response_parsed_body.rb
Overview
Prefer ‘response.parsed_body` to custom parsing logic for `response.body`.
Constant Summary
collapse
- MSG =
'Prefer `response.parsed_body`.'
- HTML =
%i[HTML HTML4 HTML5].to_set.freeze
- RESTRICT_ON_SEND =
[:parse, *HTML].freeze
TargetRailsVersion::TARGET_GEM_NAME, TargetRailsVersion::USES_REQUIRES_GEM_API
Instance Method Summary
collapse
minimum_target_rails_version, support_target_rails_version?
Instance Method Details
#json?(node) ⇒ Object
62
63
64
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 62
def_node_matcher :json?, <<~PATTERN
(const {nil? cbase} :JSON)
PATTERN
|
#json_parse_response_body?(node) ⇒ Object
42
43
44
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 42
def_node_matcher :json_parse_response_body?, <<~PATTERN
(send #json? :parse #response_body?)
PATTERN
|
#nokogiri?(node) ⇒ Object
67
68
69
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 67
def_node_matcher :nokogiri?, <<~PATTERN
(const {nil? cbase} :Nokogiri)
PATTERN
|
#nokogiri_html?(node) ⇒ Object
72
73
74
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 72
def_node_matcher :nokogiri_html?, <<~PATTERN
(const #nokogiri? HTML)
PATTERN
|
#nokogiri_html_document_parse_response_body?(node) ⇒ Object
57
58
59
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 57
def_node_matcher :nokogiri_html_document_parse_response_body?, <<~PATTERN
(send (const #nokogiri_html? :Document) :parse #response_body?)
PATTERN
|
#nokogiri_html_parse_response_body?(node) ⇒ Object
52
53
54
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 52
def_node_matcher :nokogiri_html_parse_response_body?, <<~PATTERN
(send #nokogiri_html? :parse #response_body?)
PATTERN
|
#nokogiri_html_response_body?(node) ⇒ Object
47
48
49
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 47
def_node_matcher :nokogiri_html_response_body?, <<~PATTERN
(send #nokogiri? HTML #response_body?)
PATTERN
|
#on_send(node) ⇒ Object
81
82
83
84
85
86
87
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 81
def on_send(node)
return unless html_offense?(node) || json_offense?(node)
add_offense(node) do |corrector|
corrector.replace(node, 'response.parsed_body')
end
end
|
#response_body?(node) ⇒ Object
77
78
79
|
# File 'lib/rubocop/cop/rails/response_parsed_body.rb', line 77
def_node_matcher :response_body?, <<~PATTERN
(send (send nil? :response) :body)
PATTERN
|