Sha256: a9a2e00220bd25ac384dfd4bd3f58c58857a9f6edb2c6ad635e00092d760d323

Contents?: true

Size: 1.26 KB

Versions: 15

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module RSpec
    module Matchers
      module Custom
        class HaveAliasMethod
          def initialize(alias_name, original_name)
            @alias_name = alias_name
            @original_name = original_name
          end

          def matches?(object)
            @object = object

            return false unless Utils::Method.defined?(original_name, object.class, private: true)

            return false unless Utils::Method.defined?(alias_name, object.class, private: true)

            ##
            # https://stackoverflow.com/a/45640516/12201472
            #
            object.method(alias_name).original_name == object.method(original_name).original_name
          end

          def description
            "have alias method `#{alias_name}` for `#{original_name}`"
          end

          def failure_message
            "expected `#{object.class}` to have alias method `#{alias_name}` for `#{original_name}`"
          end

          def failure_message_when_negated
            "expected `#{object.class}` NOT to have alias method `#{alias_name}` for `#{original_name}`"
          end

          private

          attr_reader :object, :alias_name, :original_name
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
convenient_service-0.12.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.11.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.10.1 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.10.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.9.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.8.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.7.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.6.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.5.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.4.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.3.1 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.3.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.2.1 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.2.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb
convenient_service-0.1.0 lib/convenient_service/rspec/matchers/custom/have_alias_method.rb