# File lib/aws/s3/client.rb, line 89
      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