rtopitt/bolao2014

View on GitHub

Showing 17 of 17 total issues

Class MatchPresenter has 40 methods (exceeds 20 allowed). Consider refactoring.
Open

class MatchPresenter < Presenter

  expose :to_key, :to_param,
    :id,
    :number,
Severity: Minor
Found in app/presenters/match_presenter.rb - About 5 hrs to fix

    Class Bet has 22 methods (exceeds 20 allowed). Consider refactoring.
    Open

    class Bet < ActiveRecord::Base
    
      belongs_to :user
      has_one :payment, dependent: :destroy
      has_many :match_bets, dependent: :destroy
    Severity: Minor
    Found in app/models/bet.rb - About 2 hrs to fix

      Method answer_must_match_answer_type has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
      Open

        def answer_must_match_answer_type
          if !self.answer.blank? && !self.answer_type.blank?
            case self.answer_type
            when 'team'
              errors.add(:answer, :invalid) unless (Team.count > 0 && Team.where(id: Integer(self.answer)).count == 1)
      Severity: Minor
      Found in app/models/question.rb - About 2 hrs to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method result has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
      Open

        def result
          return unless valid?
          if goals_a == goals_b
            if penalty_winner_id.present?
              penalty_winner_id == match.team_a.id ? :team_a : :team_b
      Severity: Minor
      Found in app/models/match_bet.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method result has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
      Open

        def result
          return unless valid? && scorable?
          if goals_a == goals_b
            if drawable?
              :draw
      Severity: Minor
      Found in app/models/match.rb - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method no_draw_after_group_phase has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

        def no_draw_after_group_phase
          return unless with_known_teams? && with_known_goals? && !drawable?
          if goals_draw?
            if !with_known_penalty_goals?
              errors.add(:penalty_goals_a, :blank)
      Severity: Minor
      Found in app/models/match.rb - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method scorable? has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

        def scorable?
          return false unless locked?
          return false unless with_known_teams?
          return false unless with_known_goals?
          return false if goals_draw? && !drawable? && !with_known_penalty_goals?
      Severity: Minor
      Found in app/models/match.rb - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method update! has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

        def update!
          set_payment_attributes_from_transaction
          if valid_status_change?
            payment.save!
            if status_changed?
      Severity: Minor
      Found in app/models/payment_updater.rb - About 45 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def question_bet_scored(question_bet_id, from_points, to_points)
          _question_bet = QuestionBet.find(question_bet_id)
          @question_bet = QuestionBetPresenter.new(_question_bet)
          @from_points = from_points
          @to_points = to_points
      Severity: Minor
      Found in app/mailers/users_mailer.rb and 1 other location - About 40 mins to fix
      app/mailers/users_mailer.rb on lines 39..50

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 37.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def match_bet_scored(match_bet_id, from_points, to_points)
          _match_bet = MatchBet.find(match_bet_id)
          @match_bet = MatchBetPresenter.new(_match_bet)
          @from_points = from_points
          @to_points = to_points
      Severity: Minor
      Found in app/mailers/users_mailer.rb and 1 other location - About 40 mins to fix
      app/mailers/users_mailer.rb on lines 53..64

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 37.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def match_bet_reminder(match_id, bet_id)
          _match = Match.find(match_id)
          _bet = Bet.find(bet_id)
          @match = MatchPresenter.new(_match)
          @user = UserPresenter.new(_bet.user)
      Severity: Minor
      Found in app/mailers/users_mailer.rb and 1 other location - About 30 mins to fix
      app/mailers/users_mailer.rb on lines 78..86

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 33.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def question_bet_reminder(question_id, bet_id)
          _question = Question.find(question_id)
          _bet = Bet.find(bet_id)
          @question = QuestionPresenter.new(_question)
          @user = UserPresenter.new(_bet.user)
      Severity: Minor
      Found in app/mailers/users_mailer.rb and 1 other location - About 30 mins to fix
      app/mailers/users_mailer.rb on lines 67..75

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 33.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Method set_payment_attributes_from_transaction has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

        def set_payment_attributes_from_transaction
          payment.transaction_code = transaction_code_from_transaction if payment.transaction_code.blank?
          payment.status = status_from_transaction
          @next_payment_status = payment.status
          unless (@next_payment_status.initiated? || @next_payment_status.waiting_payment? || @next_payment_status.in_analysis?)
      Severity: Minor
      Found in app/models/payment_updater.rb - About 25 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def update
          updater = QuestionUpdater.new(@_question, question_params) # TODO QuestionUpdater
          if updater.save
            flash[:success] = updater.message
            redirect_to question_path(@question)
      Severity: Minor
      Found in app/controllers/admin/questions_controller.rb and 1 other location - About 20 mins to fix
      app/controllers/admin/matches_controller.rb on lines 16..24

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 28.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def update
          updater = MatchUpdater.new(@_match, match_params)
          if updater.save
            flash[:success] = updater.message
            redirect_to match_path(@match)
      Severity: Minor
      Found in app/controllers/admin/matches_controller.rb and 1 other location - About 20 mins to fix
      app/controllers/admin/questions_controller.rb on lines 18..26

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 28.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def create
          @_match_bet.attributes = match_bet_params
          if !@_match.locked? && @_match_bet.save
            flash[:success] = t('.success', match_number: @_match.number)
            redirect_to_next_bettable(@_match_bet)
      Severity: Minor
      Found in app/controllers/match_bets_controller.rb and 1 other location - About 15 mins to fix
      app/controllers/question_bets_controller.rb on lines 20..27

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 26.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

        def create
          @_question_bet.attributes = question_bet_params
          if !@_question.locked? && @_question_bet.save
            flash[:success] = t('.success', question_number: @_question.number)
            redirect_to_next_bettable(@_question_bet)
      Severity: Minor
      Found in app/controllers/question_bets_controller.rb and 1 other location - About 15 mins to fix
      app/controllers/match_bets_controller.rb on lines 20..27

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 26.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Severity
      Category
      Status
      Source
      Language