class Transflow::Publisher::Curried

Attributes

arity[R]
curry_args[R]
publisher[R]

Public Class Methods

new(publisher, curry_args = []) click to toggle source
# File lib/transflow/publisher.rb, line 39
def initialize(publisher, curry_args = [])
  @publisher = publisher
  @arity = publisher.arity
  @curry_args = curry_args
end

Public Instance Methods

call(*args) click to toggle source
# File lib/transflow/publisher.rb, line 45
def call(*args)
  all_args = curry_args + args

  if all_args.size == arity
    publisher.call(*all_args)
  else
    self.class.new(publisher, all_args)
  end
end
subscribe(*args) click to toggle source
# File lib/transflow/publisher.rb, line 55
def subscribe(*args)
  publisher.subscribe(*args)
end