class Scene7::Asset
Attributes
attributes[R]
Public Class Methods
create(params)
click to toggle source
# File lib/scene7/asset.rb, line 25 def create(params) source_url = params.delete(:source_url) dest_path = params.delete(:dest_path) request = { :company_handle => Client.company_handle, :job_name => job_name(source_url), :upload_urls_job => { :url_array => { :items => { :source_url => source_url, :dest_path => dest_path, :order! => [:source_url, :dest_path] } }, :overwrite => true, :ready_for_publish => true, :create_mask => false, :email_setting => "None", :order! => [:url_array, :overwrite, :ready_for_publish, :create_mask, :email_setting] }, :order! => [:company_handle, :job_name, :upload_urls_job] } Client.perform_request(:submit_job, request) end
current_publish_job()
click to toggle source
# File lib/scene7/asset.rb, line 66 def current_publish_job response = Client.perform_request(:get_active_jobs, { :company_handle => Client.company_handle }) publish_jobs = response.to_hash[:get_active_jobs_return][:job_array][:items].detect{ |item| item[:image_serving_publish_job] } rescue [] publish_jobs[:job_handle] rescue nil end
find_all_by_name(name)
click to toggle source
# File lib/scene7/asset.rb, line 11 def find_all_by_name(name) response = Client.perform_request(:get_assets_by_name, :company_handle => Client.company_handle, :name_array => {:items => name}, :order! => [:company_handle, :name_array] ) attributes = response.to_hash[:get_assets_by_name_return][:asset_array][:items] rescue [] collection = attributes.is_a?(Array) ? attributes : [attributes] collection.map! { |asset| new(asset) } end
find_by_name(name)
click to toggle source
# File lib/scene7/asset.rb, line 7 def find_by_name(name) find_all_by_name(name).first end
job_name(name)
click to toggle source
# File lib/scene7/asset.rb, line 52 def job_name(name) Digest::SHA1.hexdigest("#{name}#{Time.now.usec}")[0..20] end
new(attributes)
click to toggle source
# File lib/scene7/asset.rb, line 91 def initialize(attributes) @attributes = attributes end
publish()
click to toggle source
# File lib/scene7/asset.rb, line 75 def publish Client.perform_request(:submit_job, { :company_handle => Client.company_handle, :job_name => job_name("publish-"), :image_serving_publish_job => { :publish_type => "Full", :email_setting => "None", :order! => [:publish_type, :email_setting] }, :order! => [:company_handle, :job_name, :image_serving_publish_job] }) end
stop_publish_job()
click to toggle source
# File lib/scene7/asset.rb, line 56 def stop_publish_job if job_handle = current_publish_job Client.perform_request(:stop_job, { :company_handle => Client.company_handle, :job_handle => job_handle, :order! => [:company_handle, :job_handle] }) end end
Public Instance Methods
destroy()
click to toggle source
# File lib/scene7/asset.rb, line 119 def destroy response = Client.perform_request(:delete_asset, :company_handle => Client.company_handle, :asset_handle => handle, :order! => [:company_handle, :asset_handle]) response.http.code == 200 end
handle()
click to toggle source
# File lib/scene7/asset.rb, line 115 def handle attributes[:asset_handle] end
name()
click to toggle source
# File lib/scene7/asset.rb, line 95 def name attributes[:name] end
rename(new_name)
click to toggle source
# File lib/scene7/asset.rb, line 99 def rename(new_name) response = Client.perform_request(:rename_asset, { :company_handle => Client.company_handle, :asset_handle => handle, :new_name => new_name, :validate_name => true, :rename_files => true, :order! => [:company_handle, :asset_handle, :new_name, :validate_name, :rename_files] }) @attributes[:name] = new_name return true rescue Savon::SOAP::Fault raise "Could not rename the file -- name already taken." end