Module: Errgonomic
- Defined in:
- lib/errgonomic.rb,
lib/errgonomic/rails.rb,
lib/errgonomic/option.rb,
lib/errgonomic/result.rb,
lib/errgonomic/version.rb,
lib/errgonomic/optional_dig.rb,
lib/errgonomic/variant_name.rb,
lib/errgonomic/optional_hash.rb,
lib/errgonomic/optional_array.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_delegate_optional.rb,
sig/errgonomic.rbs,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb,
lib/errgonomic/rails/active_record_optional.rb
Overview
Errgonomic adds opinionated abstractions to handle errors in a way that blends Rust and Ruby ergonomics. This library leans on Rails conventions for some presence-related methods; when in doubt, make those feel like Rails. It also has an implementation of Option and Result; when in doubt, make those feel more like Rust.
Defined Under Namespace
Modules: Option, OptionalDig, Rails, Result Classes: ArgumentError, Error, ExpectError, NotComparableError, NotPresentError, OptionalArray, OptionalHash, Railtie, RecursiveOptionalReadError, ResultRequiredError, SerializeError, TypeError, TypeMismatchError, UnwrapError, UnwrappedAccessError, VariantName
Constant Summary collapse
- VERSION =
'0.11.0'
Class Method Summary collapse
-
.give_me_ambiguous_downstream_errors? ⇒ Boolean
A little bit of control over how pedantic we are in our runtime type checks.
-
.with_ambiguous_downstream_errors ⇒ Object
You can opt out of the pedantic runtime checks for lazy block evaluation, but not quietly.
Class Method Details
.give_me_ambiguous_downstream_errors? ⇒ Boolean
A little bit of control over how pedantic we are in our runtime type checks. Default is false: we are pedantic and raise errors on type mismatches.
75 76 77 |
# File 'lib/errgonomic.rb', line 75 def self.give_me_ambiguous_downstream_errors? !!@give_me_ambiguous_downstream_errors end |
.with_ambiguous_downstream_errors ⇒ Object
You can opt out of the pedantic runtime checks for lazy block evaluation, but not quietly.
81 82 83 84 85 86 87 |
# File 'lib/errgonomic.rb', line 81 def self.with_ambiguous_downstream_errors original_value = @give_me_ambiguous_downstream_errors @give_me_ambiguous_downstream_errors = true yield ensure @give_me_ambiguous_downstream_errors = original_value end |