Class: ACL::ACLEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/drb/acl.rb

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ ACLEntry

Returns a new instance of ACLEntry.



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/drb/acl.rb', line 13

def initialize(str)
  if str == '*' or str == 'all'
	@pat = [:all]
  elsif str.include?('*')
    @pat = [:name, dot_pat(str)]
  else
	begin
	  @pat = [:ip, IPAddr.new(str)]
	rescue ArgumentError
	  @pat = [:name, dot_pat(str)]
	end
  end
end

Instance Method Details

#match(addr) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/drb/acl.rb', line 42

def match(addr)
  case @pat[0]
  when :all
	true
  when :ip
	begin
	  ipaddr = IPAddr.new(addr[3])
	  ipaddr = ipaddr.ipv4_mapped if @pat[1].ipv6? && ipaddr.ipv4?
	rescue ArgumentError
	  return false
	end
	(@pat[1].include?(ipaddr)) ? true : false
  when :name
	(@pat[1] =~ addr[2]) ? true : false
  else
	false
  end
end