Sha256: f21645e9739bebab06013adfe83d0c6c217c07cd7309c5a7a3c18ce09b1e454d
Contents?: true
Size: 878 Bytes
Versions: 2
Compression:
Stored size: 878 Bytes
Contents
# frozen_string_literal: true module Fluxus module Results module Chainable def on_success(expected_type = nil) yield(data) if __success_type?(expected_type) self end def on_failure(expected_type = nil) yield(data) if __failure_type?(expected_type) self end def on_exception(expected_exception = nil) return self unless __failure_type?(:exception) if expected_exception.nil? || (expected_exception.is_a?(Exception) && data[:exception].is_a?(expected_exception)) yield(data) end self end def __success_type?(expected_type) success? && (expected_type.nil? || expected_type == type) end def __failure_type?(expected_type = nil) failure? && (expected_type.nil? || expected_type == type) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fluxus-0.1.2 | lib/fluxus/results/chainable.rb |
fluxus-0.1.0 | lib/fluxus/results/chainable.rb |