Class: RuboCop::Cop::Alchemrest::DefineRequestUsingWithParams
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Alchemrest::DefineRequestUsingWithParams
- Extended by:
- RuboCop::Cop::AutoCorrector
- Defined in:
- lib/rubocop/cop/alchemrest/define_request_using_with_params.rb
Constant Summary collapse
- MSG =
<<~MSG Using `with_params` to set defaults for a request is deprecated. Instead make your block that takes a `request` argument and call `request.defaults = { <some values> }` BAD: ``` define_request :get_users, GetUsers, with_params: -> { { id: user_id } } ``` GOOD: ``` define_request :get_users, GetUsers do |request| request.defaults = { id: user_id } end ``` MSG
Instance Method Summary collapse
Instance Method Details
#build_autocorrection(method_name, klass, block) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/rubocop/cop/alchemrest/define_request_using_with_params.rb', line 39 def build_autocorrection(method_name, klass, block) block_body = block.body params_value = block_body.source <<~CODE.chomp define_request #{method_name.source}, #{klass.source} do |request| request.defaults = #{params_value} end CODE end |
#on_send(node) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/rubocop/cop/alchemrest/define_request_using_with_params.rb', line 30 def on_send(node) on_define_request_with_params_proc_call?(node) do |method_name, klass, with_params_arg, block_node| add_offense(with_params_arg) do |corrector| correction = build_autocorrection(method_name, klass, block_node) corrector.replace(node, correction) if correction end end end |