def src=(new_src)
@src = new_src
pos = @src.pos
name = @src.name
list = @src.list
len = list.length
if (0 <= pos && pos < len) then
@params = list[pos]
if (@params.name != name) then
@params.init(name)
end
elsif (pos == len) then
list.add_entry
@params = list[pos]
@params.init(name)
else
raise 'out of range'
end
query_params = driver.params
if (query_params.include? 'path') then
@params.path = query_params['path']
end
if (query_params.include? 'mask') then
type, value = query_params['mask'].split(/:/, 2)
case (type)
when 'nil'
@params.mask = nil
when 'regexp'
@params.mask = Rucy::MaskUtil.suffix_to_regexp(value)
when 'string'
@params.mask = value
else
raise "unknown mask: #{query_params['mask'].inspect}"
end
end
if (query_params.include? 'vhost') then
@params.virtual_host = query_params['vhost']
end
mask = @params.mask
case (mask)
when NilClass
@mask = nil
@mask_type = 'nil'
when Regexp
@mask = Rucy::MaskUtil.regexp_to_suffix(mask)
@mask_type = 'regexp'
when String
@mask = mask
@mask_type = 'string'
else
raise "unknown mask: #{mask.inspect}"
end
r = 0
@args = @params.args2
for arg_info in @args
case (arg_info[:type])
when :radio
arg_info[:radio_group] = "RadioGroup#{r}"
r += 1
when :password
arg_info[:clear] = false
end
end
new_src
end