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, *args, **kwargs, &block) ⇒ 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(*args) ⇒ Object (also: #flunk)
- #err!(*args) ⇒ Object (also: #flunk!)
- #ok(*args) ⇒ Object (also: #pass)
- #try!(value: nil, status: nil, message: nil) ⇒ Object
Class Method Details
.__get_result(instance, *args, **kwargs, &block) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/slayer/command.rb', line 31 def __get_result(instance, *args, **kwargs, &block) res = nil begin res = instance.call(*args, **kwargs, &block) 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 = self.new res = __get_result(instance, *args, **kwargs, &block) handle_match(res, instance, block) if block_given? raise CommandNotImplementedError unless res.is_a? Result return res end |
.err(value: nil, status: :default, message: nil) ⇒ Object
20 21 22 |
# File 'lib/slayer/command.rb', line 20 def err(value: nil, status: :default, message: nil) ok(value: value, status: status, message: ).fail end |
.err!(value: nil, status: :default, message: nil) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/slayer/command.rb', line 24 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
16 17 18 |
# File 'lib/slayer/command.rb', line 16 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
86 87 88 |
# File 'lib/slayer/command.rb', line 86 def call raise NotImplementedError, 'Commands must define method `#call`.' end |
#err(*args) ⇒ Object Also known as: flunk
68 69 70 |
# File 'lib/slayer/command.rb', line 68 def err(*args) self.class.err(*args) end |
#err!(*args) ⇒ Object Also known as: flunk!
73 74 75 |
# File 'lib/slayer/command.rb', line 73 def err!(*args) self.class.err!(*args) end |
#ok(*args) ⇒ Object Also known as: pass
63 64 65 |
# File 'lib/slayer/command.rb', line 63 def ok(*args) self.class.ok(*args) end |
#try!(value: nil, status: nil, message: nil) ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/slayer/command.rb', line 78 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 |