Sha256: 5fdc6c9d04bc15d5d0fbc475c91199ff64c306ea3f3c2a7093e130ef8811a537
Contents?: true
Size: 1.24 KB
Versions: 9
Compression:
Stored size: 1.24 KB
Contents
# 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
9 entries across 9 versions & 1 rubygems