goshippo/shippo-ruby-client

View on GitHub
lib/shippo/api/transformers/list.rb

Summary

Maintainability
A
0 mins
Test Coverage

Use each_key instead of keys.each.
Open

          h.keys.each { |k| h[k].is_a?(Array) && !h[k].empty? }.each do |list_key|
Severity: Minor
Found in lib/shippo/api/transformers/list.rb by rubocop

This cop checks for uses of each_key and each_value Hash methods.

Note: If you have an array of two-element arrays, you can put parentheses around the block arguments to indicate that you're not working with a hash, and suppress RuboCop offenses.

Example:

# bad
hash.keys.each { |k| p k }
hash.values.each { |v| p v }
hash.each { |k, _v| p k }
hash.each { |_k, v| p v }

# good
hash.each_key { |k| p k }
hash.each_value { |v| p v }

Use results.size.positive? instead of results.size > 0.
Open

          results.is_a?(Array) && results.size > 0 ? results.first : nil
Severity: Minor
Found in lib/shippo/api/transformers/list.rb by rubocop

This cop checks for usage of comparison operators (==, >, <) to test numbers as zero, positive, or negative. These can be replaced by their respective predicate methods. The cop can also be configured to do the reverse.

The cop disregards #nonzero? as it its value is truthy or falsey, but not true and false, and thus not always interchangeable with != 0.

The cop ignores comparisons to global variables, since they are often populated with objects which can be compared with integers, but are not themselves Interger polymorphic.

Example: EnforcedStyle: predicate (default)

# bad

foo == 0
0 > foo
bar.baz > 0

# good

foo.zero?
foo.negative?
bar.baz.positive?

Example: EnforcedStyle: comparison

# bad

foo.zero?
foo.negative?
bar.baz.positive?

# good

foo == 0
0 > foo
bar.baz > 0

Freeze mutable objects assigned to constants.
Open

        MATCHERS = [
          ->(key) {
            case key.to_sym
              when :items
                :customs_items
Severity: Minor
Found in lib/shippo/api/transformers/list.rb by rubocop

This cop checks whether some constant value isn't a mutable literal (e.g. array or hash).

Example:

# bad
CONST = [1, 2, 3]

# good
CONST = [1, 2, 3].freeze

Use !empty? instead of size > 0.
Open

          results.is_a?(Array) && results.size > 0 ? results.first : nil
Severity: Minor
Found in lib/shippo/api/transformers/list.rb by rubocop

This cop checks for numeric comparisons that can be replaced by a predicate method, such as receiver.length == 0, receiver.length > 0, receiver.length != 0, receiver.length < 1 and receiver.size == 0 that can be replaced by receiver.empty? and !receiver.empty.

Example:

# bad
[1, 2, 3].length == 0
0 == "foobar".length
array.length < 1
{a: 1, b: 2}.length != 0
string.length > 0
hash.size > 0

# good
[1, 2, 3].empty?
"foobar".empty?
array.empty?
!{a: 1, b: 2}.empty?
!string.empty?
!hash.empty?

There are no issues that match your filters.

Category
Status