lib/sauce_whisk/jobs.rb in sauce_whisk-0.0.13 vs lib/sauce_whisk/jobs.rb in sauce_whisk-0.0.14

- old
+ new

@@ -36,24 +36,45 @@ put job.id, fields_to_save.to_json end def self.fetch(job_id) job_hash = JSON.parse(get job_id) - assets = JSON.parse get "#{job_id}/assets" - screenshots = assets["screenshots"] + assets = job_assets job_id + job_hash.merge! assets + rescue SauceWhisk::JobNotComplete + # Always succeed + ensure + return Job.new(job_hash) + end - job_hash.merge!({"screenshot_urls" => screenshots}) - Job.new(job_hash) + def self.fetch!(job_id) + job_hash = JSON.parse(get job_id) + assets = job_assets job_id + job_hash.merge! assets + Job.new job_hash end def self.stop(job_id) put "#{job_id}/stop", {} end + def self.delete_job(job_id) + delete "#{job_id}" + end + def self.fetch_asset(job_id, asset) asset = get "#{job_id}/assets/#{asset}" end + + def self.job_assets(job_id) + assets = JSON.parse get "#{job_id}/assets" + screenshots = assets["screenshots"] + + {"screenshot_urls" => screenshots} + rescue RestClient::BadRequest + raise SauceWhisk::JobNotComplete + end end class Job attr_writer :updated_fields @@ -97,16 +118,24 @@ def stop Jobs.stop id end + def delete + Jobs.delete_job id + end + + def has_all_asset_names? + !screenshot_urls.nil? + end + def updated_fields @updated_fields ||= [] end def screenshots - unless @screenshots + unless @screenshots || screenshot_urls.nil? @screenshots = screenshot_urls.map do |screenshot| Assets.fetch id, screenshot end end @@ -119,6 +148,6 @@ end @video end end -end \ No newline at end of file +end