class Firewall::Firewall

Public Class Methods

new(default = false) click to toggle source
# File lib/firewall.rb, line 9
def initialize(default = false)
  @default = default
  @rules = []
end

Public Instance Methods

add_rule(rule) click to toggle source
# File lib/firewall.rb, line 18
def add_rule rule
  @rules << rule
end
allowed?(*args) click to toggle source
# File lib/firewall.rb, line 22
def allowed? *args
  allowed = @default
  @rules.each do |rule|
    if rule.kind_of? ComplexRule
      value = (args.length > 1) ? args[1] : nil
      allowed = (allowed || rule.pass?(args[0], value))
    else
      allowed = (allowed || rule.pass?(args[0]))
    end
  end

  allowed
end
rules() click to toggle source
# File lib/firewall.rb, line 14
def rules
  @rules
end