Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

An error occurred while Rails/Blank cop was inspecting #4179

Closed
ivanovaleksey opened this issue Mar 27, 2017 · 9 comments · Fixed by #4190
Closed

An error occurred while Rails/Blank cop was inspecting #4179

ivanovaleksey opened this issue Mar 27, 2017 · 9 comments · Fixed by #4190

Comments

@ivanovaleksey
Copy link
Contributor

ivanovaleksey commented Mar 27, 2017

Hi,

I have few code snippet which somehow makes Rubocop to fail.

def end_date
  harvested_at || season.try(:dt_to)
end

Expected behavior

I expect Rubocop not to fail and just report offense.

Actual behavior

Rubocop fails with the following backtrace:

/Users/aleksey/projects/rubocop/lib/rubocop/cop/rails/blank.rb:45:in `nil_or_empty?'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/rails/blank.rb:80:in `on_or'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:43:in `block (2 levels) in on_or'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:106:in `with_cop_error_handling'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:42:in `block in on_or'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:41:in `each'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:41:in `on_or'
/Users/aleksey/projects/rubocop/lib/rubocop/ast/traversal.rb:95:in `on_def'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:47:in `on_def'
(eval):2:in `block in on_begin'
(eval):2:in `each'
(eval):2:in `on_begin'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:47:in `on_begin'
/Users/aleksey/projects/rubocop/lib/rubocop/ast/traversal.rb:88:in `on_class'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:47:in `on_class'
/Users/aleksey/projects/rubocop/lib/rubocop/ast/traversal.rb:12:in `walk'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/commissioner.rb:60:in `investigate'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/team.rb:124:in `investigate'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/team.rb:112:in `offenses'
/Users/aleksey/projects/rubocop/lib/rubocop/cop/team.rb:54:in `inspect_file'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:248:in `inspect_file'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:195:in `block in do_inspection_loop'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:227:in `block in iterate_until_no_changes'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:220:in `loop'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:220:in `iterate_until_no_changes'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:191:in `do_inspection_loop'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:101:in `block in file_offenses'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:111:in `file_offense_cache'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:99:in `file_offenses'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:90:in `process_file'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:68:in `block in each_inspected_file'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:65:in `each'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:65:in `reduce'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:65:in `each_inspected_file'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:57:in `inspect_files'
/Users/aleksey/projects/rubocop/lib/rubocop/runner.rb:36:in `run'
/Users/aleksey/projects/rubocop/lib/rubocop/cli.rb:72:in `execute_runner'
/Users/aleksey/projects/rubocop/lib/rubocop/cli.rb:27:in `run'
/Users/aleksey/projects/rubocop/bin/rubocop:13:in `block in <top (required)>'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/2.3.0/benchmark.rb:308:in `realtime'
/Users/aleksey/projects/rubocop/bin/rubocop:12:in `<top (required)>'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/bin/rubocop:22:in `load'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/bin/rubocop:22:in `<top (required)>'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/cli/exec.rb:74:in `load'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/cli/exec.rb:74:in `kernel_load'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/cli/exec.rb:27:in `run'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/cli.rb:335:in `exec'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/cli.rb:20:in `dispatch'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/cli.rb:11:in `start'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/exe/bundle:32:in `block in <top (required)>'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/Users/aleksey/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/exe/bundle:24:in `<top (required)>'
/Users/aleksey/.rbenv/versions/2.3.3/bin/bundle:22:in `load'
/Users/aleksey/.rbenv/versions/2.3.3/bin/bundle:22:in `<main>'

Steps to reproduce the problem

Errors happen within my project. If I would just copy and paste those snippets in new dummy folder Rubocop would work just fine.
Is it something wrong with my configuration?

RuboCop version

Include the output of rubocop -V. Here's an example:

$ rubocop -V
0.48.0 (using Parser 2.3.3.1, running on ruby 2.3.3 x86_64-darwin16)
on master branch
@andreaswachowski
Copy link
Contributor

Looks like a duplicate of #4171.

@ivanovaleksey
Copy link
Contributor Author

Thank @andreaswachowski and sorry: I forgot to search in closed issues 😞

@ivanovaleksey
Copy link
Contributor Author

Works fine on master branch.

@ivanovaleksey
Copy link
Contributor Author

ivanovaleksey commented Mar 27, 2017

It seems like I still have problems. I updated issue details (code snippet and backtrace) above.
It is on master branch.

@ivanovaleksey
Copy link
Contributor Author

@Drenmi could you please take a look?

@stiig
Copy link

stiig commented Mar 27, 2017

I have same issue.
This is the code that fails

  def user_signed_in?
    current_user.present?
  end

  def company_signed_in?
    current_company.present?
  end

  def authenticate_with_token!
    render json: { status: 401, errors: 'Not authenticated' } unless user_signed_in? || company_signed_in?
                                                                   ^error
  end

@esambo
Copy link

esambo commented Mar 27, 2017

I get the same error because I'm using || in:

#!/usr/bin/env ruby
# frozen_string_literal: true

system('bundle check') || system!('bundle install')

I can fix it by:

  1. replacing || with && which has the opposite meaning!
  2. making the frozen_string_literal the first line
  3. don't use version 0.48.0 but master

@rrosenblum
Copy link
Contributor

This is related to #4171. It is slightly different though. The same kind of fix for #4171 can be used here. I will have a PR in a few minutes.

@ivanovaleksey
Copy link
Contributor Author

Thanks Ryan, I will try it tomorrow!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants