Class: Steppe::Result
- Inherits:
-
Object
- Object
- Steppe::Result
- Defined in:
- lib/steppe/result.rb
Defined Under Namespace
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Instance Method Summary collapse
- #continue ⇒ Object
-
#continue? ⇒ Boolean
TODO: continue and valid are different things.
- #copy(value: @value, params: @params, errors: @errors, request: @request, response: @response) ⇒ Object
- #halt ⇒ Object
-
#initialize(value, params: {}, errors: {}, request:, response: nil) ⇒ Result
constructor
A new instance of Result.
- #inspect ⇒ Object
- #invalid(val = value, errors: {}) ⇒ Object
- #invalid? ⇒ Boolean
- #reset(value) ⇒ Object
- #respond_with(status = nil) ⇒ Object
- #valid(val = value) ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(value, params: {}, errors: {}, request:, response: nil) ⇒ Result
Returns a new instance of Result.
9 10 11 12 13 14 15 |
# File 'lib/steppe/result.rb', line 9 def initialize(value, params: {}, errors: {}, request:, response: nil) @value = value @params = params @errors = errors @request = request @response = response || Rack::Response.new('', 200, {}) end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
7 8 9 |
# File 'lib/steppe/result.rb', line 7 def errors @errors end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
7 8 9 |
# File 'lib/steppe/result.rb', line 7 def params @params end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
7 8 9 |
# File 'lib/steppe/result.rb', line 7 def request @request end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
7 8 9 |
# File 'lib/steppe/result.rb', line 7 def response @response end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
7 8 9 |
# File 'lib/steppe/result.rb', line 7 def value @value end |
Instance Method Details
#continue ⇒ Object
51 |
# File 'lib/steppe/result.rb', line 51 def continue(...) = valid(...) |
#continue? ⇒ Boolean
TODO: continue and valid are different things. continue = pipeline can proceed with next step valid = result has no errors.
22 |
# File 'lib/steppe/result.rb', line 22 def continue? = valid? |
#copy(value: @value, params: @params, errors: @errors, request: @request, response: @response) ⇒ Object
28 29 30 |
# File 'lib/steppe/result.rb', line 28 def copy(value: @value, params: @params, errors: @errors, request: @request, response: @response) self.class.new(value, params:, errors:, request:, response:) end |
#halt ⇒ Object
52 |
# File 'lib/steppe/result.rb', line 52 def halt(...) = invalid(...) |
#inspect ⇒ Object
24 25 26 |
# File 'lib/steppe/result.rb', line 24 def inspect %(<#{self.class}##{object_id} [#{response.status}] value:#{value.inspect} errors:#{errors.inspect}>) end |
#invalid(val = value, errors: {}) ⇒ Object
47 48 49 |
# File 'lib/steppe/result.rb', line 47 def invalid(val = value, errors: {}) Halt.new(val, params:, errors:, request:, response:) end |
#invalid? ⇒ Boolean
18 19 20 21 |
# File 'lib/steppe/result.rb', line 18 def invalid? = !valid? # TODO: continue and valid are different things. # continue = pipeline can proceed with next step # valid = result has no errors. |
#reset(value) ⇒ Object
38 39 40 41 |
# File 'lib/steppe/result.rb', line 38 def reset(value) @value = value self end |
#respond_with(status = nil) ⇒ Object
32 33 34 35 36 |
# File 'lib/steppe/result.rb', line 32 def respond_with(status = nil, &) response.status = status if status @response = yield(response) if block_given? self end |
#valid(val = value) ⇒ Object
43 44 45 |
# File 'lib/steppe/result.rb', line 43 def valid(val = value) Continue.new(val, params:, errors:, request:, response:) end |
#valid? ⇒ Boolean
17 |
# File 'lib/steppe/result.rb', line 17 def valid? = true |