class SiteguardLite::CustomSignature::Rule

Attributes

action[RW]
comment[R]
conditions[R]
enable[R]
exclusion_action[RW]
filter_lifetime[R]
name[R]
signature[RW]

Public Class Methods

new(args) click to toggle source
# File lib/siteguard_lite/custom_signature/rule.rb, line 14
def initialize(args)
  @name = args[:name]
  @comment = args[:comment]
  @exclusion_action = args[:exclusion_action]
  @signature = args[:signature]
  @action = args[:action] || 'NONE'

  if @action == 'FILTER'
    @filter_lifetime = args[:filter_lifetime] || '300'
  else
    @filter_lifetime = nil
  end

  @enable = true

  @conditions = []
end

Public Instance Methods

action_str() click to toggle source
# File lib/siteguard_lite/custom_signature/rule.rb, line 40
def action_str
  @action == 'FILTER' ? "#{@action}:#{@filter_lifetime}" : @action
end
add_condition(k, v, comparison_methods) click to toggle source
# File lib/siteguard_lite/custom_signature/rule.rb, line 32
def add_condition(k, v, comparison_methods)
  @conditions << SiteguardLite::CustomSignature::Condition.new(k, v, comparison_methods)
end
enable_str() click to toggle source
# File lib/siteguard_lite/custom_signature/rule.rb, line 36
def enable_str
  @enable ? 'ON' : 'OFF'
end
to_hash() click to toggle source
# File lib/siteguard_lite/custom_signature/rule.rb, line 55
def to_hash
  {
    name: @name,
    action: @action,
    filter_lifetime: @filter_lifetime,
    comment: @comment,
    exclusion_action: @exclusion_action,
    signature: @signature,
    conditions: @conditions.map { |c| c.to_hash },
  }
end
to_text() click to toggle source
# File lib/siteguard_lite/custom_signature/rule.rb, line 44
def to_text
  validate!

  texts = []
  last_idx = @conditions.length - 1
  @conditions.each_with_index do |condition, idx|
    texts << condition.to_text(self, last: idx == last_idx)
  end
  texts.join("\n")
end