Class: Coveralls::Lcov::Runner
- Inherits:
-
Object
- Object
- Coveralls::Lcov::Runner
- Defined in:
- lib/coveralls/lcov/runner.rb
Instance Method Summary collapse
-
#initialize(argv) ⇒ Runner
constructor
A new instance of Runner.
- #post(payload) ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(argv) ⇒ Runner
Returns a new instance of Runner.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/coveralls/lcov/runner.rb', line 14 def initialize(argv) @argv = argv @repo_token = nil @n_times = 3 @delay = 3 @source_encoding = Encoding::UTF_8 @service_name = "travis-ci" @service_job_id = nil @verbose = false @dry_run = false @host = "coveralls.io" @port = 443 @use_ssl = true @parallel = ENV["COVERALLS_PARALLEL"] == "true" @parser = OptionParser.new(@argv) @parser. = <<BANNER Usage: coveralls-lcov [options] coverage.info e.g. coveralls-lcov -v coverage.info BANNER @parser.on("-t", "--repo-token=TOKEN", "Repository token") do |token| @repo_token = token end @parser.on("-s", "--service-name=SERVICENAME", "Service name") do |service_name| @service_name = service_name end @parser.on("--service-job-id=JOB_ID", "Service job id. ex. TRAVIS_JOB_ID") do |service_job_id| @service_job_id = service_job_id end @parser.on("--retry=N", Integer, "Retry to POST N times (default: 3)") do |n_times| @n_times = n_times end @parser.on("--delay=N", Integer, "Delay in N secs when retry (default: 3)") do |delay| @delay = delay end @parser.on("--source-encoding=ENCODING", "Source files encoding (default: UTF-8)") do |encoding| @source_encoding = Encoding.find(encoding) end @parser.on("-v", "--verbose", "Print payload") do @verbose = true end @parser.on("-n", "--dry-run", "Dry run") do @dry_run = true end @parser.on("-h", "--host=HOST", "Host of Coveralls endpoint (default: coveralls.io)") do |host| @host = host end @parser.on("-p", "--port=PORT", "Port of Coveralls endpoint (default: 443)") do |port| @port = port end @parser.on("--[no-]ssl", "Use SSL for connecting (default)") do |use_ssl| @use_ssl = use_ssl end end |
Instance Method Details
#post(payload) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/coveralls/lcov/runner.rb', line 100 def post(payload) Net::HTTP.version_1_2 response = nil http = Net::HTTP.new(@host, @port) http.use_ssl = @use_ssl http.start do request = Net::HTTP::Post.new(PATH) request["content-type"] = "multipart/form-data; boundary=boundary" request.body = <<BODY.gsub(/\n/, "\r\n") --boundary content-disposition: form-data; name="json_file"; filename="payload.json" #{payload} --boundary-- BODY response = http.request(request) p response puts response.body end response end |
#run ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/coveralls/lcov/runner.rb', line 71 def run @parser.parse! unless @argv.size == 1 warn "Too many arguments! <#{@argv.join(",")}>" warn @parser.help exit false end tracefile = @argv.shift converter = Converter.new(tracefile, @source_encoding, @service_name, @service_job_id) payload = converter.convert coveralls_config = YAML.load_file(".coveralls.yml") if File.exist? ".coveralls.yml" if @repo_token payload[:repo_token] = @repo_token elsif coveralls_config && coveralls_config["repo_token"] payload[:repo_token] = coveralls_config["repo_token"] end payload[:parallel] = @parallel payload_json = payload.to_json puts payload_json if @verbose unless @dry_run @n_times.times do response = post(payload_json) return true if response.is_a?(Net::HTTPSuccess) sleep @delay end end false end |