Sha256: 1fb0367b6e3377d2c71745630c1bf4dadf696ce103c68c00441a3a34dd972141

Contents?: true

Size: 395 Bytes

Versions: 153

Compression:

Stored size: 395 Bytes

Contents

module Tins
  module Responding
    def responding?(*method_names)
      Class.new do
        define_method(:to_s) do
          "Responding to #{method_names * ', '}"
        end

        alias inspect to_s

        define_method(:===) do |object|
          method_names.all? do |method_name|
            object.respond_to?(method_name)
          end
        end
      end.new
    end
  end
end

Version data entries

153 entries across 135 versions & 9 rubygems

Version Path
tins-1.38.0 lib/tins/responding.rb
tins-1.37.1 lib/tins/responding.rb
tins-1.37.0 lib/tins/responding.rb
tins-1.36.1 lib/tins/responding.rb
tins-1.36.0 lib/tins/responding.rb
tins-1.35.0 lib/tins/responding.rb
tins-1.34.0 lib/tins/responding.rb
tins-1.33.0 lib/tins/responding.rb
tdiary-5.2.4 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/lib/tins/responding.rb
tins-1.32.1 lib/tins/responding.rb
tins-1.32.0 lib/tins/responding.rb
tdiary-5.2.3 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/lib/tins/responding.rb
tdiary-5.2.2 vendor/bundle/ruby/3.1.0/gems/tins-1.31.1/lib/tins/responding.rb
tins-1.31.1 lib/tins/responding.rb
tdiary-5.2.1 vendor/bundle/ruby/3.1.0/gems/tins-1.31.0/lib/tins/responding.rb
tins-1.31.0 lib/tins/responding.rb
tins-1.30.0 lib/tins/responding.rb
tdiary-5.2.0 vendor/bundle/ruby/3.0.0/gems/tins-1.29.1/lib/tins/responding.rb
tdiary-5.2.0 vendor/bundle/ruby/2.7.0/gems/tins-1.29.1/lib/tins/responding.rb
tdiary-5.1.7 vendor/bundle/ruby/3.0.0/gems/tins-1.29.1/lib/tins/responding.rb