Sha256: 49499d557128dd0010bdaba208cb88a362f9f21cb650d779de0b784c3fb0597a

Contents?: true

Size: 1.33 KB

Versions: 14

Compression:

Stored size: 1.33 KB

Contents

module SauceWhisk
  class Assets
    extend RestRequestBuilder
    class << self
      alias_method :rest_delete, :delete
    end

    def self.resource
      "#{SauceWhisk.username}/jobs"
    end

    def self.fetch(job_id, asset, type=nil)
      retries ||= SauceWhisk.asset_fetch_retries
      attempts ||= 1

      data = get "#{job_id}/assets/#{asset}"
      Asset.new({:name => asset, :data => data, :job_id => job_id, :type => type})
    rescue RestClient::ResourceNotFound => e
      if attempts <= retries
        attempts += 1
        sleep(5)
      retry
      else
        raise e
      end
    end

    def self.delete(job_id)
      retries ||= SauceWhisk.asset_fetch_retries
      attempts ||= 1

      data = rest_delete "#{job_id}/assets/"
      Asset.new({:data => data,:job_id => job_id})
    rescue RestClient::ResourceNotFound => e
      if attempts <= retries
        attempts += 1
        sleep(5)
      retry
      else
        raise e
      end
    
    # Return nil as all of the assets we're already deleted.
    rescue RestClient::BadRequest => e
      nil
      end
  end

  class Asset

    attr_reader :asset_type, :name, :data, :job
    def initialize(parameters={})
      @asset_type = parameters[:type] || :screenshot
      @name = parameters[:name]
      @data = parameters[:data]
      @job = parameters[:job_id]
    end

  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
sauce_whisk-0.3.2 lib/sauce_whisk/assets.rb
sauce_whisk-0.2.2 lib/sauce_whisk/assets.rb
sauce_whisk-0.2.1 lib/sauce_whisk/assets.rb
sauce_whisk-0.2.0 lib/sauce_whisk/assets.rb
sauce_whisk-0.1.0 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.22 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.21 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.20 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.19 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.18 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.17 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.16 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.15 lib/sauce_whisk/assets.rb
sauce_whisk-0.0.14 lib/sauce_whisk/assets.rb