2013-10-27 4 views
0

Я сохраняю ошибку «/usr/local/bin/git_flow_tools.rb:55:in` set_issue ': неинициализированная константа Net :: HTTP :: Patch (NameError) "uninitialized constant Net :: HTTP :: Patch (NameError)

Я этого требуют:

require 'rubygems' 
require 'net/http' 
require 'net/https' 
require 'uri' 
require 'timeout' 
require 'json' 
require 'pp' 

Эта функция не в состоянии:

def self.set_issue(user, repo, number, data) 
    uri    = URI.parse('https://api.github.com') 
    http    = Net::HTTP.new(uri.host, uri.port) 
    http.use_ssl  = true if uri.scheme == 'https' 
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

    path     = URI.escape("/repos/#{user}/#{repo}/issues/#{number}") 
    req     = Net::HTTP::Patch.new(path) 
    req['Content-Type'] = 'application/json' 
    req['Accept']  = 'application/json' 
    req['Authorization'] = 'token OAUTH-TOKEN' 
    req.body    = data 

    begin 
    Timeout::timeout(30) { JSON.parse http.request(req).body } 
    rescue Exception => e 
    puts "Failed to contact github #{e}" 
    end 
end 

Другие методы, такие как Получить, Положить или Сообщение отлично работает.

Любые идеи?

ответ

3

пытаются добавить после требований

class Net::HTTP::Patch < Net::HTTPRequest 
    METHOD = 'PATCH' 
    REQUEST_HAS_BODY = true 
    RESPONSE_HAS_BODY = true 
end 
+0

может быть, вы могли бы upvote и принимать ответ тогда? =) – okliv

+0

@okliv * + 1 * ... почему вы открыли класс? Я имею в виду, как он разрешает проблему? Спрошено из любопытства. –

Смежные вопросы