class WoodWing::Elvis

Elvis is a Digital Asset Manager implemented in Java

Constants

COMMANDS

Attributes

base_url[RW]
cookies[RW]

Public Class Methods

new( my_base_url=ENV['ELVIS_API_URL'], my_cookies={}) click to toggle source
# File lib/woodwing/elvis.rb, line 58
def initialize( my_base_url=ENV['ELVIS_API_URL'],
                my_cookies={})

  @base_url     = my_base_url
  @cookies      = my_cookies

  @base_url += '/'  unless @base_url.end_with?('/')

end

Public Instance Methods

bulk_replace_metadata(options={})
bulk_update_metadata(options={})
copy(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-copy

# File lib/woodwing/elvis.rb, line 136
def copy(options={})
  Utilities.demand_required_options!( :copy, options )
  url = base_url + "copy"
  response = get_response(url, options)
end
create_collection(options={}) click to toggle source

No file is uploaded. A placehold asset is created with the associated metadata

# File lib/woodwing/elvis.rb, line 145
def create_collection(options={})
  Utilities.demand_required_options!( :create_collection, options )
  url = base_url + "create"
  options.merge!( {assetType: 'collection'} )
  response = get_response(url, options)
end
delete_bulk(options={})
Alias for: remove_bulk
delete_bulk_ids(options={})
Alias for: remove_bulk_ids
download_zip(options={})
Alias for: zip_download
get_response(url=nil,options={}) click to toggle source

Use RestClient.get

# File lib/woodwing/elvis.rb, line 71
  def get_response(url=nil,options={})

    raise NotLoggedIn unless logged_in?  ||  url.end_with?('login')

    response = RestClient.get(url, { params: options, cookies: @cookies })

if $DEBUG
    debug_me(){[:url, :options, :response ]}
    debug_me(){[ 'response.code', 'response.cookies', 'response.body' ]}
end

    @cookies = response.cookies unless response.cookies.empty?

    response = MultiJson.load(  response.body,
                                :symbolize_keys => true)

    if response.include?(:errorcode)
      if 401 == response[:errorcode]     &&
        response[:message].include?('ConcurrentModificationException')
        raise ConcurrentModificationException
      else
        error_condition = "ERROR #{response[:errorcode]}: #{response[:message]}"
        raise error_condition
      end
    end

    return response
  end
get_response_using_post(url=nil,options={}) click to toggle source

SMELL: This is sooooo close to get_response Use RestClient.post

# File lib/woodwing/elvis.rb, line 104
  def get_response_using_post(url=nil,options={})

     raise NotLoggedIn unless logged_in?  ||  url.end_with?('login')

    response = RestClient.post( url, options, { cookies: @cookies } )

if $DEBUG
    debug_me(){[:url, :options, :response ]}
    debug_me(){[ 'response.code', 'response.cookies', 'response.body' ]}
end

    @cookies = response.cookies unless response.cookies.empty?

    response = MultiJson.load(  response.body,
                                :symbolize_keys => true)

    if response.include?(:errorcode)
      if 401 == response[:errorcode]     &&
        response[:message].include?('ConcurrentModificationException')
        raise ConcurrentModificationException
      else
        error_condition = "ERROR #{response[:errorcode]}: #{response[:message]}"
        raise error_condition
      end
    end

    return response

  end
localization(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-localization

# File lib/woodwing/elvis.rb, line 154
def localization(options={})
  url = base_url + "localization"
  response = get_response(url, options)
end
log_usage_stats(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-log_usage_stats

# File lib/woodwing/elvis.rb, line 161
def log_usage_stats(options={})
  url = base_url + "log_usage_stats"
  response = get_response(url, options)
end
move(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-move

# File lib/woodwing/elvis.rb, line 168
def move(options={})
  Utilities.demand_required_options!( :move, options )
  url = base_url + "move"
  response = get_response(url, options)
end
Also aliased as: rename
profile(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-profile

# File lib/woodwing/elvis.rb, line 178
def profile(options={})
  url = base_url + "profile"
  response = get_response(url, options)
end
query_stats(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-query_stats

# File lib/woodwing/elvis.rb, line 185
def query_stats(options={})
  url = base_url + "queryStats"
  response = get_response(url, options)
end
remove_bulk(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-remove can delete one or more using list of IDs or a search query pr a folderPath. The folderPath process has been abstracted into remove_folder.

# File lib/woodwing/elvis.rb, line 196
def remove_bulk(options={})
  Utilities.demand_required_options!( :remove_bulk, options )
  url       = base_url + "remove"
  response  = get_response(url, options)
end
Also aliased as: delete_bulk
remove_bulk_ids(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-remove can delete one or more using list of IDs or a search query pr a folderPath. The folderPath process has been abstracted into remove_folder.

# File lib/woodwing/elvis.rb, line 210
def remove_bulk_ids(options={})
  Utilities.demand_required_options!( :remove_bulk_ids, options )
  url       = base_url + "remove"
  response  = get_response(url, options)
end
Also aliased as: delete_bulk_ids
rename(options={})
Alias for: move
replace(options={})
Alias for: update
replace_asset(options={})
Alias for: update
replace_bulk_metadata(options={})
replace_metadata(options={})
Alias for: update_metadata
update(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-update used to update assets and metadata

# File lib/woodwing/elvis.rb, line 221
def update(options={})
  Utilities.demand_required_options!( :update, options )
  url = base_url + "update"
  response = get_response(url, options)
end
Also aliased as: replace, update_asset, replace_asset
update_asset(options={})
Alias for: update
update_bulk_metadata(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-updatebulk updates metadata fields for all assets matching a specific query

# File lib/woodwing/elvis.rb, line 247
def update_bulk_metadata(options={})
  Utilities.demand_required_options!( :update_bulk_metadata, options )
  options[:metadata] = options[:metadata].to_json
  url       = base_url + "updatebulk"
  response  = get_response(url, options)
end
update_metadata(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-update used to update metadata for a specific asset referenced by 'id'

# File lib/woodwing/elvis.rb, line 235
def update_metadata(options={})
  Utilities.demand_required_options!( :update, options )
  options[:metadata] = options[:metadata].to_json
  url       = base_url + "update"
  response  = get_response(url, options)
end
Also aliased as: replace_metadata
zip_download(options={}) click to toggle source

elvis.tenderapp.com/kb/api/rest-zip_download

# File lib/woodwing/elvis.rb, line 260
def zip_download(options={})
  url = base_url + "zip_download"
  response = get_response(url, options)
end
Also aliased as: download_zip