Sha256: 624cfa580b2740b31bdf9d1917a1216d1b6f9951817cda01853e073556aba275

Contents?: true

Size: 308 Bytes

Versions: 14

Compression:

Stored size: 308 Bytes

Contents

# frozen_string_literal: true

module Pipeable
  # Allows objects to be functionally composable.
  module Composable
    def >>(other) = method(:call) >> other

    def <<(other) = method(:call) << other

    def call = fail NoMethodError, "`#{self.class.name}##{__method__}` must be implemented."
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
pipeable-1.2.0 lib/pipeable/composable.rb
pipeable-1.1.0 lib/pipeable/composable.rb
pipeable-1.0.0 lib/pipeable/composable.rb
pipeable-0.14.0 lib/pipeable/composable.rb
pipeable-0.13.0 lib/pipeable/composable.rb
pipeable-0.12.0 lib/pipeable/composable.rb
pipeable-0.11.0 lib/pipeable/composable.rb
pipeable-0.10.0 lib/pipeable/composable.rb
pipeable-0.9.1 lib/pipeable/composable.rb
pipeable-0.9.0 lib/pipeable/composable.rb
pipeable-0.8.0 lib/pipeable/composable.rb
pipeable-0.7.0 lib/pipeable/composable.rb
pipeable-0.4.0 lib/pipeable/composable.rb
pipeable-0.3.0 lib/pipeable/composable.rb