148: def initialize(name, line, file)
149: @methods = []
150: @environment = []
151: @authentication = true
152: @name = name
153: @line = line || 0
154: @file = file
155:
156: case name
157: when Symbol
158: @acl_type = :name
159: @key = name
160: when /^\[(.+)\]$/
161: @acl_type = :name
162: @key = $1.intern if name.is_a?(String)
163: when /^\//
164: @acl_type = :regex
165: @key = Regexp.new("^" + Regexp.escape(name))
166: @methods = ALL
167: when /^~/
168: @acl_type = :regex
169: @name = name.gsub(/^~\s+/,'')
170: @key = Regexp.new(@name)
171: @methods = ALL
172: else
173: raise ArgumentError, "Unknown right type '#{name}'"
174: end
175: super()
176: end