Class: Slayer::Command
- Inherits:
-
Object
- Object
- Slayer::Command
- Defined in:
- lib/slayer/command.rb,
lib/slayer/compat/compat_040.rb
Class Method Summary collapse
- .__get_result(instance) ⇒ Object
- .call(*args, **kwargs, &block) ⇒ Object
- .err(value: nil, status: :default, message: nil) ⇒ Object
- .err!(value: nil, status: :default, message: nil) ⇒ Object
- .flunk(value: nil, status: :default, message: nil) ⇒ Object
- .flunk!(value: nil, status: :default, message: nil) ⇒ Object
- .ok(value: nil, status: :default, message: nil) ⇒ Object
- .pass(value: nil, status: :default, message: nil) ⇒ Object
Instance Method Summary collapse
- #call ⇒ Object
- #err ⇒ Object (also: #flunk)
- #err! ⇒ Object (also: #flunk!)
- #ok ⇒ Object (also: #pass)
- #try!(value: nil, status: nil, message: nil) ⇒ Object
Class Method Details
.__get_result(instance) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/slayer/command.rb', line 30 def __get_result(instance, ...) res = nil begin res = instance.call(...) rescue ResultFailureError => e res = e.result end res end |
.call(*args, **kwargs, &block) ⇒ Object
4 5 6 7 8 9 10 11 12 13 |
# File 'lib/slayer/command.rb', line 4 def call(*args, **kwargs, &block) instance = new res = __get_result(instance, *args, **kwargs, &block) handle_match(res, instance, block) if block_given? raise CommandNotImplementedError unless res.is_a? Result res end |
.err(value: nil, status: :default, message: nil) ⇒ Object
19 20 21 |
# File 'lib/slayer/command.rb', line 19 def err(value: nil, status: :default, message: nil) ok(value: value, status: status, message: ).fail end |
.err!(value: nil, status: :default, message: nil) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/slayer/command.rb', line 23 def err!(value: nil, status: :default, message: nil) unless ENV["SUPPRESS_SLAYER_WARNINGS"] warn "[DEPRECATION] `err!` is deprecated. Please use `return err` instead." end raise ResultFailureError, err(value: value, status: status, message: ) end |
.flunk(value: nil, status: :default, message: nil) ⇒ Object
11 12 13 14 |
# File 'lib/slayer/compat/compat_040.rb', line 11 def flunk(value: nil, status: :default, message: nil) warn "[DEPRECATION] `flunk` is deprecated. Please use `err` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"] err(value: value, status: status, message: ) end |
.flunk!(value: nil, status: :default, message: nil) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/slayer/compat/compat_040.rb', line 16 def flunk!(value: nil, status: :default, message: nil) unless ENV["SUPPRESS_SLAYER_WARNINGS"] warn "[DEPRECATION] `flunk!` is deprecated. Please use `return err` instead." end err!(value: value, status: status, message: ) end |
.ok(value: nil, status: :default, message: nil) ⇒ Object
15 16 17 |
# File 'lib/slayer/command.rb', line 15 def ok(value: nil, status: :default, message: nil) Result.new(value, status, ) end |
.pass(value: nil, status: :default, message: nil) ⇒ Object
6 7 8 9 |
# File 'lib/slayer/compat/compat_040.rb', line 6 def pass(value: nil, status: :default, message: nil) warn "[DEPRECATION] `pass` is deprecated. Please use `ok` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"] ok(value: value, status: status, message: ) end |
Instance Method Details
#call ⇒ Object
82 83 84 |
# File 'lib/slayer/command.rb', line 82 def call raise NotImplementedError, "Commands must define method `#call`." end |
#err ⇒ Object Also known as: flunk
66 67 68 |
# File 'lib/slayer/command.rb', line 66 def err(...) self.class.err(...) end |
#err! ⇒ Object Also known as: flunk!
70 71 72 |
# File 'lib/slayer/command.rb', line 70 def err!(...) self.class.err!(...) end |
#ok ⇒ Object Also known as: pass
62 63 64 |
# File 'lib/slayer/command.rb', line 62 def ok(...) self.class.ok(...) end |
#try!(value: nil, status: nil, message: nil) ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/slayer/command.rb', line 74 def try!(value: nil, status: nil, message: nil) r = yield err!(value: value, status: status || :default, message: ) unless r.is_a?(Result) return r.value if r.ok? err!(value: value || r.value, status: status || r.status, message: || r.) end |