Sha256: 11e7746b4360b11a5c352bc0a0f046fdefdb23b5744209bf6381fac337f30f31

Contents?: true

Size: 648 Bytes

Versions: 3

Compression:

Stored size: 648 Bytes

Contents

# frozen_string_literal: true

require 'duckface/constants'
require 'duckface/parameter_pairs'

module Duckface
  class MethodImplementation
    def initialize(klass, method_name)
      @klass = klass
      @method_name = method_name
    end

    def parameters_for_comparison
      @parameters_for_comparison ||= ParameterPairs.new(parameters).for_comparison
    end

    def owner
      @owner ||= implementation.owner
    end

    private

    def implementation
      @implementation ||= @klass.public_instance_method(@method_name)
    end

    def parameters
      implementation.parameters - Constants::IGNORABLE_PARAMETERS
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
duckface-interfaces-0.0.3 lib/duckface/method_implementation.rb
duckface-interfaces-0.0.2 lib/duckface/method_implementation.rb
duckface-interfaces-0.0.1 lib/duckface/method_implementation.rb