tansengming/stripe-rails

View on GitHub

Showing 9 of 9 total issues

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

      def put!
        if exists?
          puts "[EXISTS] - #{@stripe_class}:#{@id}:#{stripe_id}" unless Stripe::Engine.testing
        else
          object = @stripe_class.create({:lookup_key => @lookup_key}.merge compact_create_options)
Severity: Minor
Found in lib/stripe/prices.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 callback_matcher has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
Open

          def callback_matcher(options, block)
            case only = options[:only]
            when Proc, Method
              proc do |target, evt|
                block.call(target, evt) if only.call(target, evt)
Severity: Minor
Found in lib/stripe/callbacks/builder.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 put! has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
Open

      def put!
        if exists?
          puts "[EXISTS] - #{@stripe_class}:#{@id}" unless Stripe::Engine.testing
        else
          object = @stripe_class.create({:id => @id}.merge compact_create_options)
Severity: Minor
Found in lib/stripe/configuration_builder.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 recurring_interval_count_maximum has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
Open

      def recurring_interval_count_maximum
        time_unit = recurring_interval.to_sym

        return unless VALID_TIME_UNITS.include?(time_unit) && recurring_interval_count.respond_to?(time_unit)
        too_long = recurring_interval_count.send(time_unit) > 1.year
Severity: Minor
Found in lib/stripe/prices.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

Avoid rescuing the Exception class. Perhaps you meant to rescue StandardError?
Open

          rescue Exception => e
            ::Rails.logger.error e.message
            ::Rails.logger.error e.backtrace.join("\n")
Severity: Minor
Found in lib/stripe/callbacks.rb by rubocop

This cop checks for rescue blocks targeting the Exception class.

Example:

# bad

begin
  do_something
rescue Exception
  handle_exception
end

Example:

# good

begin
  do_something
rescue ArgumentError
  handle_exception
end

Use tr instead of gsub.
Open

            method_name = "after_#{name.gsub('.', '_')}"
Severity: Minor
Found in lib/stripe/callbacks/builder.rb by rubocop

This cop identifies places where gsub can be replaced by tr or delete.

Example:

# bad
'abc'.gsub('b', 'd')
'abc'.gsub('a', '')
'abc'.gsub(/a/, 'd')
'abc'.gsub!('a', 'd')

# good
'abc'.gsub(/.*/, 'a')
'abc'.gsub(/a+/, 'd')
'abc'.tr('b', 'd')
'a b c'.delete(' ')

Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition.
Open

        if object = exists?
Severity: Minor
Found in lib/stripe/configuration_builder.rb by rubocop

This cop checks for assignments in the conditions of if/while/until.

Example:

# bad

if some_var = true
  do_something
end

Example:

# good

if some_var == true
  do_something
end

Shadowing outer local variable - block.
Open

          send(:define_method, class_id) do |id, &block|
Severity: Minor
Found in lib/stripe/configuration_builder.rb by rubocop

This cop looks for use of the same name as outer local variables for block arguments or block local variables. This is a mimic of the warning "shadowing outer local variable - foo" from ruby -cw.

Example:

# bad

def some_method
  foo = 1

  2.times do |foo| # shadowing outer `foo`
    do_something(foo)
  end
end

Example:

# good

def some_method
  foo = 1

  2.times do |bar|
    do_something(bar)
  end
end

Useless assignment to variable - e.
Open

    rescue Stripe::AuthenticationError => e
Severity: Minor
Found in lib/stripe/rails/tasks.rake by rubocop

This cop checks for every useless assignment to local variable in every scope. The basic idea for this cop was from the warning of ruby -cw:

assigned but unused variable - foo

Currently this cop has advanced logic that detects unreferenced reassignments and properly handles varied cases such as branch, loop, rescue, ensure, etc.

Example:

# bad

def some_method
  some_var = 1
  do_something
end

Example:

# good

def some_method
  some_var = 1
  do_something(some_var)
end
Severity
Category
Status
Source
Language