class Dpl::Providers::Launchpad

Public Instance Methods

deploy() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 23
def deploy
  handle_response(post)
end

Private Instance Methods

authorization() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 55
      def authorization
        squish(<<-AUTH)
            OAuth oauth_consumer_key="Travis%20Deploy",
            oauth_nonce="#{nonce}",
            oauth_signature="%26#{oauth_token_secret}",
            oauth_signature_method="PLAINTEXT",
            oauth_timestamp="#{now}",
            oauth_token="#{oauth_token}",
            oauth_version="1.0"
        AUTH
      end
data() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 51
def data
  { 'ws.op' => 'requestImport' }
end
handle_response(res) click to toggle source
# File lib/dpl/providers/launchpad.rb, line 36
def handle_response(res)
  error :invalid_credentials, res.code if res.code == '401'
  error :unknown_error, res.body, res.code unless res.is_a?(Net::HTTPSuccess)
end
http() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 41
def http
  http = Net::HTTP.new('api.launchpad.net', 443)
  http.use_ssl = true
  http
end
nonce() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 67
def nonce
  rand(36**32).to_s(36)
end
now() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 71
def now
  Time.now.to_i
end
path() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 47
def path
  "/1.0/#{slug}/+code-import"
end
post() click to toggle source
# File lib/dpl/providers/launchpad.rb, line 29
def post
  req = Net::HTTP::Post.new(path)
  req['Authorization'] = authorization
  req.set_form_data(data)
  http.request(req)
end
squish(str) click to toggle source
# File lib/dpl/providers/launchpad.rb, line 75
def squish(str)
  str.strip.gsub(/\s+/, ' ')
end