This seems a bit crazy here. Is there another way to write this function to get the cops to pass on it, or should I just make it exempt?
Code
def set_default_limit
params[:limit] = params[:limit].to_i > 0 ? params[:limit] : AppSettings.api[:default_limit]
params[:limit] = AppSettings.api[:max_limit] if params[:limit].to_i > AppSettings.api[:max_limit]
end
Cop Error
app/controllers/application_controller.rb:66:3: C: Assignment Branch Condition size for set_default_limit is too high. [18.22/15]
def set_default_limit
^^^
What you want to do with this method is:
params[:limit]
exceeds max limit, set it to max limitparams[:limit]
is less or equal to 0, set it to default limitCode:
def set_default_limit
api_settings = AppSettings.api
if params[:limit].to_i > api_settings[:max_limit]
params[:limit] = api_settings[:max_limit]
elsif params[:limit].to_i <= 0
params[:limit] = api_settings[:default_limit]
end
end
Rubocop result:
$ cat test.rb
def set_default_limit
api_settings = AppSettings.api
if params[:limit].to_i > api_settings[:max_limit]
params[:limit] = api_settings[:max_limit]
elsif params[:limit].to_i <= 0
params[:limit] = api_settings[:default_limit]
end
end
$ rubocop test.rb
Inspecting 1 file
.
1 file inspected, no offenses detected