Class: Patterns::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/patterns/service.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.



5
6
7
# File 'lib/patterns/service.rb', line 5

def error
  @error
end

#resultObject (readonly)

Returns the value of attribute result.



5
6
7
# File 'lib/patterns/service.rb', line 5

def result
  @result
end

Class Method Details

.call(**args) ⇒ Object



7
8
9
# File 'lib/patterns/service.rb', line 7

def self.call(**args)
  new(**args).tap { |s| catch(:service_error) { s.call } }
end

Instance Method Details

#fail!(error = :error) ⇒ Object



11
12
13
14
# File 'lib/patterns/service.rb', line 11

def fail!(error = :error)
  @error = error
  throw :service_error
end

#failure?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/patterns/service.rb', line 20

def failure?
  !success?
end

#success?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/patterns/service.rb', line 16

def success?
  error.nil?
end