Sha256: d64578840088fb00bb14e0ee3c9942faea7e210da975ceb0228820e8926dd945

Contents?: true

Size: 649 Bytes

Versions: 9

Compression:

Stored size: 649 Bytes

Contents

unless (RUBY_VERSION[0,3] == '1.9')

  module Kernel

    # The tap K-Combinator. This yields self -and- returns self.

    def tap(&b)
      if block_given?
        b.arity == 1 ? yield(self) : instance_eval(&b)
      end
      self
    end

    # This is just an off-the-cuff consideration for #tap using Functor:
    #
    #   require 'facets/functor'
    #
    #   # Yield self -and- return self.
    #
    #   def tap(&b)
    #     if block_given?
    #       b.arity == 1 ? yield(self) : instance_eval(&b)
    #       self
    #     else
    #       Functor.new{ |op, *args| self.send(op, *args); self }
    #     end
    #   end

  end

end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
facets-2.6.0 lib/core/facets/kernel/tap.rb
facets-2.4.3 lib/core/facets/kernel/tap.rb
facets-2.4.2 lib/core/facets/kernel/tap.rb
facets-2.4.4 lib/core/facets/kernel/tap.rb
facets-2.4.5 lib/core/facets/kernel/tap.rb
facets-2.5.0 lib/core/facets/kernel/tap.rb
facets-2.5.1 lib/core/facets/kernel/tap.rb
facets-2.5.2 lib/core/facets/kernel/tap.rb
mack-facets-0.8.2 lib/gems/facets-2.4.5/lib/core/facets/kernel/tap.rb