Class: SiteguardLite::CustomSignature::Rule
- Inherits:
-
Object
- Object
- SiteguardLite::CustomSignature::Rule
- Includes:
- ActiveModel::Validations
- Defined in:
- lib/siteguard_lite/custom_signature/rule.rb
Instance Attribute Summary collapse
-
#action ⇒ Object
Returns the value of attribute action.
-
#comment ⇒ Object
readonly
Returns the value of attribute comment.
-
#conditions ⇒ Object
readonly
Returns the value of attribute conditions.
-
#enable ⇒ Object
readonly
Returns the value of attribute enable.
-
#exclusion_action ⇒ Object
Returns the value of attribute exclusion_action.
-
#filter_lifetime ⇒ Object
readonly
Returns the value of attribute filter_lifetime.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#signature ⇒ Object
Returns the value of attribute signature.
Instance Method Summary collapse
- #action_str ⇒ Object
- #add_condition(k, v, comparison_methods) ⇒ Object
- #enable_str ⇒ Object
-
#initialize(args) ⇒ Rule
constructor
A new instance of Rule.
- #to_hash ⇒ Object
- #to_text ⇒ Object
Constructor Details
#initialize(args) ⇒ Rule
Returns a new instance of Rule.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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 |
Instance Attribute Details
#action ⇒ Object
Returns the value of attribute action.
7 8 9 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 7 def action @action end |
#comment ⇒ Object (readonly)
Returns the value of attribute comment.
6 7 8 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 6 def comment @comment end |
#conditions ⇒ Object (readonly)
Returns the value of attribute conditions.
6 7 8 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 6 def conditions @conditions end |
#enable ⇒ Object (readonly)
Returns the value of attribute enable.
6 7 8 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 6 def enable @enable end |
#exclusion_action ⇒ Object
Returns the value of attribute exclusion_action.
7 8 9 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 7 def exclusion_action @exclusion_action end |
#filter_lifetime ⇒ Object (readonly)
Returns the value of attribute filter_lifetime.
6 7 8 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 6 def filter_lifetime @filter_lifetime end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 6 def name @name end |
#signature ⇒ Object
Returns the value of attribute signature.
7 8 9 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 7 def signature @signature end |
Instance Method Details
#action_str ⇒ Object
40 41 42 |
# 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) ⇒ Object
32 33 34 |
# 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 ⇒ Object
36 37 38 |
# File 'lib/siteguard_lite/custom_signature/rule.rb', line 36 def enable_str @enable ? 'ON' : 'OFF' end |
#to_hash ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 |
# 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 ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# 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 |