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