class SauceWhisk::Job
def self.tracked_attr_accessor(*methods)
def self.tracked_attr_accessor(*methods) methods.each do |method| attr_reader method self.send(:define_method, "#{method}=") do |arg| if method != arg updated_fields << method instance_variable_set("@#{method}", arg) end end end end
def delete
def delete Jobs.delete_job id end
def has_all_asset_names?
def has_all_asset_names? !screenshot_urls.nil? end
def initialize(parameters={})
def initialize(parameters={}) passed = parameters.delete "status" cd = parameters.delete "custom-data" visibility = parameters.delete "public" self.passed = passed self.custom_data = cd self.visibility = visibility parameters.each do |k,v| self.instance_variable_set("@#{k}".to_sym, v) end @updated_fields = [] end
def save
def save Jobs.save(self) end
def screenshots
def screenshots unless @screenshots || screenshot_urls.nil? @screenshots = screenshot_urls.map do |screenshot| Assets.fetch id, screenshot end end @screenshots end
def stop
def stop Jobs.stop id end
def updated_fields
def updated_fields @updated_fields ||= [] end
def video
def video unless @video @video = Assets.fetch id, "video.flv", :video end @video end