Module: Videojuicer::Asset

Defined in:
lib/videojuicer/asset.rb,
lib/videojuicer/asset/base.rb,
lib/videojuicer/asset/text.rb,
lib/videojuicer/asset/audio.rb,
lib/videojuicer/asset/flash.rb,
lib/videojuicer/asset/image.rb,
lib/videojuicer/asset/video.rb,
lib/videojuicer/asset/document.rb

Defined Under Namespace

Classes: Audio, Base, Document, Flash, Image, Text, Video

Constant Summary collapse

TYPES =
%w(Audio Document Image Flash Text Video)

Class Method Summary collapse

Class Method Details

.all(options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/videojuicer/asset.rb', line 3

def self.all(options = {})
  proxy = Videojuicer::OAuth::RequestProxy.new(Videojuicer.current_scope)
  
  if options[:page]
    options[:offset] = Videojuicer::Resource::Collection.offset_from_page_number options.delete(:page), options[:limit]
  end
  
  response = proxy.get("/assets", "asset" => options)
  items, count, offset, limit = JSON.parse(response.body).values_at("items", "count", "offset", "limit")
  assets = items.map { |i| const_get(i.delete("type").capitalize).new(i) }
  
  # TODO: this should really be taken care of in VJ:Resource::initialize
  #       then VJ::Resource::CMs.all can also omit this step
  assets.each { |a| a.clean_dirty_attributes! }
  
  Videojuicer::Resource::Collection.new(assets, count, offset, limit)
end

.typesObject



22
23
24
# File 'lib/videojuicer/asset.rb', line 22

def self.types
  TYPES.map { |t| const_get(t) }
end