Class: DuckTyper::CanonicalInterfaceChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/duck_typer/canonical_interface_checker.rb,
lib/duck_typer/canonical_interface_checker/result.rb

Overview

Compares each class in a list against a single canonical reference class.

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

Constructor Details

#initialize(objects = nil, canonical:, namespace: nil, type: :instance_methods, methods: nil, strict: false, name: nil) ⇒ CanonicalInterfaceChecker

Returns a new instance of CanonicalInterfaceChecker.



9
10
11
12
# File 'lib/duck_typer/canonical_interface_checker.rb', line 9

def initialize(objects = nil, canonical:, namespace: nil, type: :instance_methods, methods: nil, strict: false, name: nil)
  @setup = InterfaceSetup.new(objects, namespace:, type:, methods:, strict:, name:, minimum: 1)
  @canonical = canonical
end

Instance Method Details

#callObject



14
15
16
17
18
# File 'lib/duck_typer/canonical_interface_checker.rb', line 14

def call
  results = @setup.objects.map { |obj| @setup.checker.call(obj, @canonical) }

  Result.new(canonical: @canonical, results:, name: @setup.name, strict: @setup.strict)
end