Sha256: adeb2edaac89636b1446959fc6bcf7b09de98bc9acd3d3ccdf3c97b95c7975bb
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
module Dry module Protocol class NotImplemented < StandardError attr_reader :proto, :details def initialize(type, proto, **details) @proto, @details = proto, details @details[:message] = case type when :protocol "Protocol “#{@proto}” is not implemented for “#{@details[:receiver].class}”." when :method "Protocol “#{@proto}” does not declare method “#{@details[:method]}”." when :nested "Protocol “#{@proto}” failed to invoke the implementation for\n" \ " ⮩ “#{@details[:receiver].class}##{@details[:method]}”.\n" \ " ⮩ Caused by “#{cause.class}” with a message\n" \ " ⮩ “#{cause.message}”\n" \ " ⮩ Rescue this exception and inspect `NotImplemented#cause' for details." else "Protocol “#{proto}” is invalid." end super(@details[:message]) if @details[:cause] set_backtrace( @details[:cause].backtrace.reject do |line| # FIXME drop_while ?? line =~ %r[dry-behaviour/lib/dry/behaviour] end ) end end def cause @details[:cause] ||= super end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-behaviour-0.8.0 | lib/dry/errors/not_implemented.rb |