0

私はこのコードを持っています:

require 'octokit'
require 'csv'

client = Octokit::Client.new :login => 'github_username', :password => 'github_password'
repo = 'rubinius/rubinius'
numbers = CSV.read('/Users/Name/Downloads/numbers.csv').flatten
# at this point, essentially numbers = [642, 630, 623, 643, 626]

CSV.open('results.csv', 'w') do |csv|
     for number in numbers
         begin
          pull = client.pull_request(repo, number)
          csv << [pull.number, pull.additions, pull.deletions]
         rescue
          next
        end
     end    
  end

ただし、client.pull_request が 404 に遭遇し、ジャンプして次のリクエストに進む場合があります。ただし、numbers配列内の数値を出力し、空白またはゼロを入れてpull.additionspull.deletions配列内の次の項目に移動する必要があるため、次のようなものが生成されます。

pull.number pull.additions pull.deletions
642,        12,            3
630,          , 
623,        15,            23
...

これはどのように行うことができますか?

4

2 に答える 2

1

本質的にルビーではないため、forループを削除しました。以下は機能するはずです

require 'octokit'
require 'csv'

client = Octokit::Client.new :login => 'github_username', :password => 'github_password'
repo = 'rubinius/rubinius'
numbers = CSV.read('/Users/Name/Downloads/numbers.csv').flatten
# at this point, essentially numbers = [642, 630, 623, 643, 626]

CSV.open('results.csv', 'w') do |csv|
     numbers.each do |number|
         begin
          pull = client.pull_request(repo, number)
          csv << [pull.number, pull.additions, pull.deletions]
         rescue
          csv << [0,0,0]
          next
        end
     end    
  end
于 2013-12-21T19:49:32.973 に答える
0

レスキュー/保証コードがプル変数を適切に設定するように、開始/レスキュー/保証を使用してみましたか? 例については、 https://stackoverflow.com/a/2192010/832648を参照してください。

于 2013-12-21T19:16:16.990 に答える