Sha256: 8b30611a1edeb716fe694e42e2a6b09fe045107d6cf98c6eaef6c44d97e9539c

Contents?: true

Size: 737 Bytes

Versions: 41

Compression:

Stored size: 737 Bytes

Contents

## Introduction

Reek reports a _Manual Dispatch_ smell if it finds source code that manually checks whether an object responds to a method before that method is called. Manual dispatch is a type of [Simulated Polymorphism](Simulated-Polymorphism.md) which leads to code that is harder to reason about, debug, and refactor.

## Example

```Ruby
class MyManualDispatcher
  attr_reader :foo

  def initialize(foo)
    @foo = foo
  end

  def call
    foo.bar if foo.respond_to?(:bar)
  end
end
```

Reek would emit the following warning:

```
test.rb -- 1 warning:
  [9]: MyManualDispatcher manually dispatches method call (ManualDispatch)
```

## Configuration

_Manual Dispatch_ offers the [Basic Smell Options](Basic-Smell-Options.md).

Version data entries

41 entries across 39 versions & 2 rubygems

Version Path
reek-6.0.3 docs/Manual-Dispatch.md
reek-6.0.2 docs/Manual-Dispatch.md
reek-6.0.1 docs/Manual-Dispatch.md
reek-6.0.0 docs/Manual-Dispatch.md
reek-5.6.0 docs/Manual-Dispatch.md
reek-5.5.0 docs/Manual-Dispatch.md
reek-5.4.1 docs/Manual-Dispatch.md
reek-5.4.0 docs/Manual-Dispatch.md
reek-5.3.2 docs/Manual-Dispatch.md
reek-5.3.1 docs/Manual-Dispatch.md
reek-5.3.0 docs/Manual-Dispatch.md
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/reek-5.2.0/docs/Manual-Dispatch.md
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/reek-5.2.0/docs/Manual-Dispatch.md
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/reek-5.2.0/docs/Manual-Dispatch.md
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/reek-5.2.0/docs/Manual-Dispatch.md
reek-5.2.0 docs/Manual-Dispatch.md
reek-5.1.0 docs/Manual-Dispatch.md
reek-5.0.2 docs/Manual-Dispatch.md
reek-5.0.1 docs/Manual-Dispatch.md
reek-5.0.0 docs/Manual-Dispatch.md