uptech/togls

View on GitHub
lib/togls/feature_repository.rb

Summary

Maintainability
A
0 mins
Test Coverage

Method has too many lines. [14/10]
Open

    def validate_feature_data(feature_data)
      if feature_data.nil?
        Togls.logger.warn("None of the feature repository drivers claim to have the feature")
        raise Togls::RepositoryFeatureDataInvalid, "None of the feature repository drivers claim to have the feature"
      end
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

This cop checks if the length of a method exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable.

Assignment Branch Condition size for validate_feature_data is too high. [16.28/15]
Open

    def validate_feature_data(feature_data)
      if feature_data.nil?
        Togls.logger.warn("None of the feature repository drivers claim to have the feature")
        raise Togls::RepositoryFeatureDataInvalid, "None of the feature repository drivers claim to have the feature"
      end
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric

Line is too long. [141/80]
Open

          raise Togls::RepositoryFeatureDataInvalid, "One of the feature repository drivers returned feature data that is missing the '#{k}'"
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Use %w or %W for an array of words.
Open

      ['key', 'description', 'target_type'].each do |k|
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

This cop can check for array literals made up of word-like strings, that are not using the %w() syntax.

Alternatively, it can check for uses of the %w() syntax, in projects which do not want to include that syntax.

Configuration option: MinSize If set, arrays with fewer elements than this value will not trigger the cop. For example, a MinSize of 3 will not enforce a style on an array of 2 or fewer elements.

Example: EnforcedStyle: percent (default)

# good
%w[foo bar baz]

# bad
['foo', 'bar', 'baz']

Example: EnforcedStyle: brackets

# good
['foo', 'bar', 'baz']

# bad
%w[foo bar baz]

Line is too long. [93/80]
Open

        Togls.logger.warn("None of the feature repository drivers claim to have the feature")
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Favor unless over if for negative conditions.
Open

        if !feature_data.has_key? k
          Togls.logger.warn("One of the feature repository drivers returned feature data that is missing the '#{k}'")
          raise Togls::RepositoryFeatureDataInvalid, "One of the feature repository drivers returned feature data that is missing the '#{k}'"
        end
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Checks for uses of if with a negated condition. Only ifs without else are considered. There are three different styles:

- both
- prefix
- postfix

Example: EnforcedStyle: both (default)

# enforces `unless` for `prefix` and `postfix` conditionals

# bad

if !foo
  bar
end

# good

unless foo
  bar
end

# bad

bar if !foo

# good

bar unless foo

Example: EnforcedStyle: prefix

# enforces `unless` for just `prefix` conditionals

# bad

if !foo
  bar
end

# good

unless foo
  bar
end

# good

bar if !foo

Example: EnforcedStyle: postfix

# enforces `unless` for just `postfix` conditionals

# bad

bar if !foo

# good

bar unless foo

# good

if !foo
  bar
end

Line is too long. [111/80]
Open

      { 'key' => feature.key, 'description' => feature.description, 'target_type' => feature.target_type.to_s }
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Line is too long. [121/80]
Open

          Togls.logger.warn("One of the feature repository drivers returned feature data with '#{k}' not being a string")
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Line is too long. [117/80]
Open

          Togls.logger.warn("One of the feature repository drivers returned feature data that is missing the '#{k}'")
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Missing magic comment # frozen_string_literal: true.
Open

module Togls
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

This cop is designed to help upgrade to Ruby 3.0. It will add the comment # frozen_string_literal: true to the top of files to enable frozen string literals. Frozen string literals may be default in Ruby 3.0. The comment will be added below a shebang and encoding comment. The frozen string literal comment is only valid in Ruby 2.3+.

Example: EnforcedStyle: when_needed (default)

# The `when_needed` style will add the frozen string literal comment
# to files only when the `TargetRubyVersion` is set to 2.3+.
# bad
module Foo
  # ...
end

# good
# frozen_string_literal: true

module Foo
  # ...
end

Example: EnforcedStyle: always

# The `always` style will always add the frozen string literal comment
# to a file, regardless of the Ruby version or if `freeze` or `<<` are
# called on a string literal.
# bad
module Bar
  # ...
end

# good
# frozen_string_literal: true

module Bar
  # ...
end

Example: EnforcedStyle: never

# The `never` will enforce that the frozen string literal comment does
# not exist in a file.
# bad
# frozen_string_literal: true

module Baz
  # ...
end

# good
module Baz
  # ...
end

Use Hash#key? instead of Hash#has_key?.
Open

        if !feature_data.has_key? k
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

This cop (by default) checks for uses of methods Hash#haskey? and Hash#hasvalue? where it enforces Hash#key? and Hash#value? It is configurable to enforce the inverse, using verbose method names also.

Example: EnforcedStyle: short (default)

# bad Hash#haskey? Hash#hasvalue?

# good Hash#key? Hash#value?

Example: EnforcedStyle: verbose

# bad Hash#key? Hash#value?

# good Hash#haskey? Hash#hasvalue?

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

        Togls.logger.warn("None of the feature repository drivers claim to have the feature")
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Checks if uses of quotes match the configured preference.

Example: EnforcedStyle: single_quotes (default)

# bad
"No special symbols"
"No string interpolation"
"Just text"

# good
'No special symbols'
'No string interpolation'
'Just text'
"Wait! What's #{this}!"

Example: EnforcedStyle: double_quotes

# bad
'Just some text'
'No special chars or interpolation'

# good
"Just some text"
"No special chars or interpolation"
"Every string in #{project} uses double_quotes"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

        raise Togls::RepositoryFeatureDataInvalid, "None of the feature repository drivers claim to have the feature"
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Checks if uses of quotes match the configured preference.

Example: EnforcedStyle: single_quotes (default)

# bad
"No special symbols"
"No string interpolation"
"Just text"

# good
'No special symbols'
'No string interpolation'
'Just text'
"Wait! What's #{this}!"

Example: EnforcedStyle: double_quotes

# bad
'Just some text'
'No special chars or interpolation'

# good
"Just some text"
"No special chars or interpolation"
"Every string in #{project} uses double_quotes"

Line is too long. [145/80]
Open

          raise Togls::RepositoryFeatureDataInvalid, "One of the feature repository drivers returned feature data with '#{k}' not being a string"
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Line is too long. [117/80]
Open

        raise Togls::RepositoryFeatureDataInvalid, "None of the feature repository drivers claim to have the feature"
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Favor unless over if for negative conditions.
Open

        if !feature_data[k].is_a?(String)
          Togls.logger.warn("One of the feature repository drivers returned feature data with '#{k}' not being a string")
          raise Togls::RepositoryFeatureDataInvalid, "One of the feature repository drivers returned feature data with '#{k}' not being a string"
        end
Severity: Minor
Found in lib/togls/feature_repository.rb by rubocop

Checks for uses of if with a negated condition. Only ifs without else are considered. There are three different styles:

- both
- prefix
- postfix

Example: EnforcedStyle: both (default)

# enforces `unless` for `prefix` and `postfix` conditionals

# bad

if !foo
  bar
end

# good

unless foo
  bar
end

# bad

bar if !foo

# good

bar unless foo

Example: EnforcedStyle: prefix

# enforces `unless` for just `prefix` conditionals

# bad

if !foo
  bar
end

# good

unless foo
  bar
end

# good

bar if !foo

Example: EnforcedStyle: postfix

# enforces `unless` for just `postfix` conditionals

# bad

bar if !foo

# good

bar unless foo

# good

if !foo
  bar
end

There are no issues that match your filters.

Category
Status