sanger/sequencescape

View on GitHub
lib/eventful_mailer.rb

Summary

Maintainability
B
5 hrs
Test Coverage
F
34%

EventfulMailer#confirm_event has 6 parameters
Open

  def confirm_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
Severity: Minor
Found in lib/eventful_mailer.rb by reek

A Long Parameter List occurs when a method has a lot of parameters.

Example

Given

class Dummy
  def long_list(foo,bar,baz,fling,flung)
    puts foo,bar,baz,fling,flung
  end
end

Reek would report the following warning:

test.rb -- 1 warning:
  [2]:Dummy#long_list has 5 parameters (LongParameterList)

A common solution to this problem would be the introduction of parameter objects.

EventfulMailer#update_event has 5 parameters
Open

  def update_event(receiver, study, title, content, sent_at = Time.zone.now)
Severity: Minor
Found in lib/eventful_mailer.rb by reek

A Long Parameter List occurs when a method has a lot of parameters.

Example

Given

class Dummy
  def long_list(foo,bar,baz,fling,flung)
    puts foo,bar,baz,fling,flung
  end
end

Reek would report the following warning:

test.rb -- 1 warning:
  [2]:Dummy#long_list has 5 parameters (LongParameterList)

A common solution to this problem would be the introduction of parameter objects.

EventfulMailer has at least 6 instance variables
Open

class EventfulMailer < ActionMailer::Base
Severity: Minor
Found in lib/eventful_mailer.rb by reek

Too Many Instance Variables is a special case of LargeClass.

Example

Given this configuration

TooManyInstanceVariables:
  max_instance_variables: 3

and this code:

class TooManyInstanceVariables
  def initialize
    @arg_1 = :dummy
    @arg_2 = :dummy
    @arg_3 = :dummy
    @arg_4 = :dummy
  end
end

Reek would emit the following warning:

test.rb -- 5 warnings:
  [1]:TooManyInstanceVariables has at least 4 instance variables (TooManyInstanceVariables)

EventfulMailer#confirm_sample_event has 6 parameters
Open

  def confirm_sample_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
Severity: Minor
Found in lib/eventful_mailer.rb by reek

A Long Parameter List occurs when a method has a lot of parameters.

Example

Given

class Dummy
  def long_list(foo,bar,baz,fling,flung)
    puts foo,bar,baz,fling,flung
  end
end

Reek would report the following warning:

test.rb -- 1 warning:
  [2]:Dummy#long_list has 5 parameters (LongParameterList)

A common solution to this problem would be the introduction of parameter objects.

EventfulMailer#confirm_external_release_event has 6 parameters
Open

  def confirm_external_release_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
Severity: Minor
Found in lib/eventful_mailer.rb by reek

A Long Parameter List occurs when a method has a lot of parameters.

Example

Given

class Dummy
  def long_list(foo,bar,baz,fling,flung)
    puts foo,bar,baz,fling,flung
  end
end

Reek would report the following warning:

test.rb -- 1 warning:
  [2]:Dummy#long_list has 5 parameters (LongParameterList)

A common solution to this problem would be the introduction of parameter objects.

EventfulMailer#notify_request_fail has 5 parameters
Open

  def notify_request_fail(receiver, item, request, message, sent_at = Time.zone.now)
Severity: Minor
Found in lib/eventful_mailer.rb by reek

A Long Parameter List occurs when a method has a lot of parameters.

Example

Given

class Dummy
  def long_list(foo,bar,baz,fling,flung)
    puts foo,bar,baz,fling,flung
  end
end

Reek would report the following warning:

test.rb -- 1 warning:
  [2]:Dummy#long_list has 5 parameters (LongParameterList)

A common solution to this problem would be the introduction of parameter objects.

Method confirm_event has 6 arguments (exceeds 4 allowed). Consider refactoring.
Open

  def confirm_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
Severity: Minor
Found in lib/eventful_mailer.rb - About 45 mins to fix

    Method confirm_sample_event has 6 arguments (exceeds 4 allowed). Consider refactoring.
    Open

      def confirm_sample_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
    Severity: Minor
    Found in lib/eventful_mailer.rb - About 45 mins to fix

      Method confirm_external_release_event has 6 arguments (exceeds 4 allowed). Consider refactoring.
      Open

        def confirm_external_release_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
      Severity: Minor
      Found in lib/eventful_mailer.rb - About 45 mins to fix

        Method update_event has 5 arguments (exceeds 4 allowed). Consider refactoring.
        Open

          def update_event(receiver, study, title, content, sent_at = Time.zone.now)
        Severity: Minor
        Found in lib/eventful_mailer.rb - About 35 mins to fix

          Method notify_request_fail has 5 arguments (exceeds 4 allowed). Consider refactoring.
          Open

            def notify_request_fail(receiver, item, request, message, sent_at = Time.zone.now)
          Severity: Minor
          Found in lib/eventful_mailer.rb - About 35 mins to fix

            EventfulMailer has no descriptive comment
            Open

            class EventfulMailer < ActionMailer::Base
            Severity: Minor
            Found in lib/eventful_mailer.rb by reek

            Classes and modules are the units of reuse and release. It is therefore considered good practice to annotate every class and module with a brief comment outlining its responsibilities.

            Example

            Given

            class Dummy
              # Do things...
            end

            Reek would emit the following warning:

            test.rb -- 1 warning:
              [1]:Dummy has no descriptive comment (IrresponsibleModule)

            Fixing this is simple - just an explaining comment:

            # The Dummy class is responsible for ...
            class Dummy
              # Do things...
            end

            EventfulMailer takes parameters ['receiver', 'sent_at'] to 6 methods
            Open

              def confirm_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
                @eventful = eventful
                @message = message
                @content = content
                mail(
            Severity: Minor
            Found in lib/eventful_mailer.rb by reek

            In general, a Data Clump occurs when the same two or three items frequently appear together in classes and parameter lists, or when a group of instance variable names start or end with similar substrings.

            The recurrence of the items often means there is duplicate code spread around to handle them. There may be an abstraction missing from the code, making the system harder to understand.

            Example

            Given

            class Dummy
              def x(y1,y2); end
              def y(y1,y2); end
              def z(y1,y2); end
            end

            Reek would emit the following warning:

            test.rb -- 1 warning:
              [2, 3, 4]:Dummy takes parameters [y1, y2] to 3 methods (DataClump)

            A possible way to fix this problem (quoting from Martin Fowler):

            The first step is to replace data clumps with objects and use the objects whenever you see them. An immediate benefit is that you'll shrink some parameter lists. The interesting stuff happens as you begin to look for behavior to move into the new objects.

            EventfulMailer takes parameters ['content', 'receiver', 'sent_at'] to 4 methods
            Open

              def confirm_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
                @eventful = eventful
                @message = message
                @content = content
                mail(
            Severity: Minor
            Found in lib/eventful_mailer.rb by reek

            In general, a Data Clump occurs when the same two or three items frequently appear together in classes and parameter lists, or when a group of instance variable names start or end with similar substrings.

            The recurrence of the items often means there is duplicate code spread around to handle them. There may be an abstraction missing from the code, making the system harder to understand.

            Example

            Given

            class Dummy
              def x(y1,y2); end
              def y(y1,y2); end
              def z(y1,y2); end
            end

            Reek would emit the following warning:

            test.rb -- 1 warning:
              [2, 3, 4]:Dummy takes parameters [y1, y2] to 3 methods (DataClump)

            A possible way to fix this problem (quoting from Martin Fowler):

            The first step is to replace data clumps with objects and use the objects whenever you see them. An immediate benefit is that you'll shrink some parameter lists. The interesting stuff happens as you begin to look for behavior to move into the new objects.

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

              def confirm_external_release_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
                # rubocop:enable Metrics/ParameterLists
                @eventful = eventful
                @message = message
                @content = content
            Severity: Major
            Found in lib/eventful_mailer.rb and 2 other locations - About 40 mins to fix
            lib/eventful_mailer.rb on lines 4..13
            lib/eventful_mailer.rb on lines 31..41

            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 38.

            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 3 locations. Consider refactoring.
            Open

              def confirm_sample_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
                # rubocop:enable Metrics/ParameterLists
                @eventful = eventful
                @message = message
                @content = content
            Severity: Major
            Found in lib/eventful_mailer.rb and 2 other locations - About 40 mins to fix
            lib/eventful_mailer.rb on lines 4..13
            lib/eventful_mailer.rb on lines 67..77

            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 38.

            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 3 locations. Consider refactoring.
            Open

              def confirm_event(receiver, eventful, message, content, _milestone, sent_at = Time.zone.now)
                @eventful = eventful
                @message = message
                @content = content
                mail(
            Severity: Major
            Found in lib/eventful_mailer.rb and 2 other locations - About 40 mins to fix
            lib/eventful_mailer.rb on lines 31..41
            lib/eventful_mailer.rb on lines 67..77

            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 38.

            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

            There are no issues that match your filters.

            Category
            Status