def get_accessor_property(prop_value, context=@context)
if (prop_value !~ /^[_A-Za-z][_A-Za-z0-9]*\??$/) then
raise PropertyError, "invalid accessor format: #{prop_value.inspect}: at #{@widget_id.inspect}"
end
attr_reader = prop_value.intern
if (prop_value =~ /\?$/) then
attr_writer = nil
else
attr_writer = "#{prop_value}=".intern
end
proc{ |*args|
case (args.length)
when 0
context.__send__(attr_reader)
when 1
if (attr_writer) then
context.__send__(attr_writer, args.first)
else
raise PropertyError, "read only accessor: #{attr_reader}"
end
else
raise PropertyError, 'invalid accessor arguments: ' + args.map{ |a| a.inspect }.joni(', ') + ": at #{@widget_id.inspect}"
end
}
end