class Raes::Reducer
Public Class Methods
new(action)
click to toggle source
# File lib/raes/reducer.rb, line 7 def initialize(action) @action = action end
Public Instance Methods
call()
click to toggle source
# File lib/raes/reducer.rb, line 11 def call return @action unless @action.queued! @action.working! @action.state = create_state.to_json @action.status = :completed rescue StandardError => e @action.state = { message: e } @action.status = :failed ensure @action.save! @action end
create_state()
click to toggle source
# File lib/raes/reducer.rb, line 25 def create_state klass = @action.name.constantize if klass.instance_method(:initialize).arity.zero? klass.call else klass.call(JSON.parse(@action.payload).symbolize_keys) end end