hsgubert/rails-sharding

View on GitHub
lib/rails/sharding/config.rb

Summary

Maintainability
A
0 mins
Test Coverage

Freeze mutable objects assigned to constants.
Open

    DEFAULT_CONFIGS = {
      # If true one connection will be established per shard (in every shard group)
      # on startup. This only establishes the connection with the database but
      # it does not retrieve a connection yet. This will be done by the ConnectionPool
      # when necessary.
Severity: Minor
Found in lib/rails/sharding/config.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

Line is too long. [84/80]
Open

      # If true the query logs of ActiveRecord will be tagged with the corresponding
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Missing top-level class documentation comment.
Open

  class Config
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

This cop checks for missing top-level documentation of classes and modules. Classes with no body are exempt from the check and so are namespace modules - modules that have nothing in their bodies except classes, other modules, or constant definitions.

The documentation requirement is annulled if the class or module has a "#:nodoc:" comment next to it. Likewise, "#:nodoc: all" does the same for all its children.

Example:

# bad
class Person
  # ...
end

# good
# Description/Explanation of Person class
class Person
  # ...
end

Use nested module/class definitions instead of compact style.
Open

module Rails::Sharding
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

This cop checks the style of children definitions at classes and modules. Basically there are two different styles:

Example: EnforcedStyle: nested (default)

# good
# have each child on its own line
class Foo
  class Bar
  end
end

Example: EnforcedStyle: compact

# good
# combine definitions as much as possible
class Foo::Bar
end

The compact style is only forced for classes/modules with one child.

Missing magic comment # frozen_string_literal: true.
Open

module Rails::Sharding
Severity: Minor
Found in lib/rails/sharding/config.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

Line is too long. [82/80]
Open

      # sharded models, otherwise they will always connect to the master database.
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Redundant self detected.
Open

      self.send(config_name.to_s + '=', default_value)
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

This cop checks for redundant uses of self.

The usage of self is only needed when:

  • Sending a message to same object with zero arguments in presence of a method name clash with an argument or a local variable.

  • Calling an attribute writer to prevent an local variable assignment.

Note, with using explicit self you can only send messages with public or protected scope, you cannot send private messages this way.

Note we allow uses of self with operators because it would be awkward otherwise.

Example:

# bad
def foo(bar)
  self.baz
end

# good
def foo(bar)
  self.bar  # Resolves name clash with the argument.
end

def foo
  bar = 1
  self.bar  # Resolves name clash with the local variable.
end

def foo
  %w[x y z].select do |bar|
    self.bar == bar  # Resolves name clash with argument of the block.
  end
end

Line is too long. [84/80]
Open

      # is helpful to remember the developer to include ShardableModel module on the
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Line is too long. [83/80]
Open

      # If true one connection will be established per shard (in every shard group)
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Line is too long. [89/80]
Open

      # the shard connection being retrieved at least once inside the block. This warning
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Line is too long. [84/80]
Open

      # If true a warning will be printed everytime a using_shard block ends without
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Redundant self detected.
Open

      self.cattr_accessor config_name, instance_accessor: false
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

This cop checks for redundant uses of self.

The usage of self is only needed when:

  • Sending a message to same object with zero arguments in presence of a method name clash with an argument or a local variable.

  • Calling an attribute writer to prevent an local variable assignment.

Note, with using explicit self you can only send messages with public or protected scope, you cannot send private messages this way.

Note we allow uses of self with operators because it would be awkward otherwise.

Example:

# bad
def foo(bar)
  self.baz
end

# good
def foo(bar)
  self.bar  # Resolves name clash with the argument.
end

def foo
  bar = 1
  self.bar  # Resolves name clash with the local variable.
end

def foo
  %w[x y z].select do |bar|
    self.bar == bar  # Resolves name clash with argument of the block.
  end
end

Line is too long. [86/80]
Open

      # it does not retrieve a connection yet. This will be done by the ConnectionPool
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Line is too long. [81/80]
Open

      # If true the method #using_shard will be mixed in ActiveRecord scopes. Put
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

Line is too long. [107/80]
Open

      # If false the user must call Shards::ConnectionHandler.establish_connection(shard_group, shard_name)
Severity: Minor
Found in lib/rails/sharding/config.rb by rubocop

There are no issues that match your filters.

Category
Status