Sha256: ecdaed653d25f90e9c3da8ce81f87ef7fd65857f11918bf34ea346696cedd725

Contents?: true

Size: 879 Bytes

Versions: 25

Compression:

Stored size: 879 Bytes

Contents

module RR
  module Injections
    class Injection
      extend(Module.new do
        def instances
          @instances ||= HashWithObjectIdKey.new
        end
      end)

      include Space::Reader
      include ClassInstanceMethodDefined

      def subject_has_method_defined?(method_name_in_question)
        class_instance_method_defined(subject_class, method_name_in_question)
      end

      def subject_has_original_method?
        subject_has_method_defined?(original_method_alias_name)
      end

      def original_method
        subject_class.instance_method(original_method_alias_name)
      end

    protected
      def subject_respond_to_method?(subject, method_name)
        subject_has_method_defined?(method_name) ||
          class_instance_method_defined(subject_class, :respond_to?) &&
          subject.respond_to?(method_name)
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
rr-3.1.1 lib/rr/injections/injection.rb
rr-3.1.0 lib/rr/injections/injection.rb
rr-3.0.9 lib/rr/injections/injection.rb
rr-3.0.8 lib/rr/injections/injection.rb
rr-3.0.7 lib/rr/injections/injection.rb
rr-3.0.6 lib/rr/injections/injection.rb
rr-3.0.5 lib/rr/injections/injection.rb
rr-3.0.4 lib/rr/injections/injection.rb
rr-3.0.3 lib/rr/injections/injection.rb
rr-3.0.2 lib/rr/injections/injection.rb
rr-3.0.1 lib/rr/injections/injection.rb
rr-3.0.0 lib/rr/injections/injection.rb
rr-1.2.1 lib/rr/injections/injection.rb
rr-1.2.0 lib/rr/injections/injection.rb
rr-1.1.2 lib/rr/injections/injection.rb
rr-1.1.2.rc1 lib/rr/injections/injection.rb
rr-1.1.1 lib/rr/injections/injection.rb
rr-1.1.1.rc1 lib/rr/injections/injection.rb
rr-1.1.0 lib/rr/injections/injection.rb
rr-1.1.0.rc3 lib/rr/injections/injection.rb