Sha256: 8e6121cb5a3d64e0bd2c60214624b7f3053769571be1891cc396031a958ba0cd

Contents?: true

Size: 878 Bytes

Versions: 2

Compression:

Stored size: 878 Bytes

Contents

module PrivatePlease::Tracking

  module Utils
    class << self

      def private_instance_method?(klass, method_name)
        klass.private_method_defined?(method_name)
      end

      def private_singleton_method?(klass, method_name)
        klass.singleton_class.private_method_defined?(method_name)
      end

      def instance_method_defined_by_ancestor?(klass, method_name)
        ancestor_of(klass).any? do |a|
          a.method_defined?(method_name) || a.private_method_defined?(method_name)
        end
      end

      def singleton_method_defined_by_ancestor?(klass, method_name)
        ancestor_of(klass).any? do |a|
          a.singleton_class.method_defined?(method_name) || a.singleton_class.private_method_defined?(method_name)
        end
      end

    private
      def ancestor_of(klass)
        klass.ancestors - [klass]
      end

    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
private_please-0.0.5 lib/private_please/tracking/utils.rb
private_please-0.0.4 lib/private_please/tracking/utils.rb