Class: Assertion::Guard
- Inherits:
-
Object
- Object
- Assertion::Guard
- Extended by:
- DSL::Attribute, DSL::Caller
- Defined in:
- lib/assertion/guard.rb
Overview
The base class for object guards
The guard defines a desired state for the object and checks if that state is valid.
Its ‘call` method either returns the guarded object, or (when its state is invalid) raises an exception
The class DSL also defines a ‘.[]` shortcut to initialize and call the guard for given object immediately.
Class Method Summary collapse
-
.call ⇒ Object
Validates the state of the [#object] and returns valid object back.
- .initialize(object) ⇒ Object
-
.new(object) ⇒ Assertion::Guard
Creates the guard instance for the provided object.
Methods included from DSL::Attribute
Methods included from DSL::Caller
Class Method Details
.call ⇒ Object
Validates the state of the [#object] and returns valid object back
58 59 60 61 |
# File 'lib/assertion/guard.rb', line 58 def call state.validate! object end |
.initialize(object) ⇒ Object
47 48 49 50 |
# File 'lib/assertion/guard.rb', line 47 def initialize(object) @object = object IceNine.deep_freeze(self) end |
.new(object) ⇒ Assertion::Guard
Creates the guard instance for the provided object
|
|
# File 'lib/assertion/guard.rb', line 38
|