class Trying::Proxy

Attributes

cell[RW]

Public Class Methods

new(obj) click to toggle source
# File lib/trying.rb, line 5
def initialize(obj)
  @cell = obj
end

Public Instance Methods

failed?(error = ::StandardError, &block) click to toggle source
# File lib/trying.rb, line 31
def failed?(error = ::StandardError, &block)
  with(&block) if @cell.is_a? error
end
method_missing(method, *argv, &block) click to toggle source
# File lib/trying.rb, line 9
def method_missing(method, *argv, &block)
  return nil unless @cell.respond_to?(method)

  @cell = @cell.instance_eval do
    public_send(method, *argv, &block)
  end
end
pipe(method, *argv, &block) click to toggle source
# File lib/trying.rb, line 27
def pipe(method, *argv, &block)
  method.call(@cell, *argv, &block)
end
tap(&block) click to toggle source
# File lib/trying.rb, line 21
def tap(&block)
  block.call(@cell)
rescue => e
  @cell = e
end
with(&block) click to toggle source
# File lib/trying.rb, line 17
def with(&block)
  @cell = tap(&block)
end