Class: Gracefully::DegradableCommand

Inherits:
Object
  • Object
show all
Defined in:
lib/gracefully/degradable_command.rb

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ DegradableCommand

Returns a new instance of DegradableCommand.



3
4
5
6
# File 'lib/gracefully/degradable_command.rb', line 3

def initialize(args)
  @usually = args[:usually]
  @fallback_to = args[:fallback_to]
end

Instance Method Details

#call(*args, &block) ⇒ Object



8
9
10
11
12
# File 'lib/gracefully/degradable_command.rb', line 8

def call(*args, &block)
  Try.to { @usually.call *args, &block }.
    or_else(Try.to { @fallback_to.call *args, &block }).
    get
end