Sha256: 4b86c23e6f2db0c1c6b3c16cf2097b93992a400d21a82c0dcf07080e3f3f1df8
Contents?: true
Size: 1.26 KB
Versions: 29
Compression:
Stored size: 1.26 KB
Contents
# typed: true # Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.com/terms.html require 'sqreen/actions/unknown_action_type' require 'sqreen/actions/base' require 'sqreen/actions/block_user' require 'sqreen/actions/redirect_user' require 'sqreen/actions/block_ip' require 'sqreen/actions/redirect_ip' require 'sqreen/actions/repository' require 'sqreen/actions/unknown_action_type' module Sqreen # Implements actions (behavior taken in response to agent signals) module Actions # @return [Sqreen::Actions::Base] def self.deserialize_action(hash) action_type = hash['action'] raise 'no action type available' unless action_type subclass = Sqreen::Actions::Base.get_type_class(action_type) raise Sqreen::Actions::UnknownActionType, action_type unless subclass id = hash['action_id'] raise 'no action id available' unless id duration = hash['duration'] if !duration.nil? && duration <= 0 Sqreen.log.debug "Action #{id} is already expired" return nil end opts = { :duration => duration, :send_response => hash['send_response'], } subclass.new(id, opts, hash['parameters'] || {}) end end end
Version data entries
29 entries across 29 versions & 1 rubygems