def self.bucket_method(method_name, verb, *args, &block)
method_options = (args.pop if args.last.kind_of?(Hash)) || {}
xml_grammar = (args.pop if args.last.respond_to?(:parse))
verb = verb.to_s.upcase
subresource = args.first
add_client_request_method(method_name, :xml_grammar => xml_grammar) do
configure_request do |req, options|
require_bucket_name!(options[:bucket_name])
req.http_method = verb
req.bucket = options[:bucket_name]
req.add_param(subresource) if subresource
if header_options = method_options[:header_options]
header_options.each do |(option_name, header)|
req.headers[header] = options[option_name] if
options[option_name]
end
end
end
instance_eval(&block) if block
end
end