class Aeolus::Image::Warehouse::BucketObject

Attributes

key[R]

Public Class Methods

create(connection, key, bucket, body, attrs = {}) click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 35
def self.create(connection, key, bucket, body, attrs = {})
  obj = new(connection, key, bucket)
  obj.set_body(body)
  obj.set_attrs(attrs)
  obj
end
new(connection, key, bucket) click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 28
def initialize(connection, key, bucket)
  @connection = connection
  @key = key
  @bucket = bucket
  @path = "/#{@bucket.name}/#{@key}"
end

Public Instance Methods

attr(name) click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 64
def attr(name)
  attrs([name])[name]
end
attr_list() click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 50
def attr_list
  result = @connection.do_request @path, :content => 'op=parts', :method => :post
  return result.xpath('/object/object_attr/@name').to_a.map {|item| item.value}
end
attrs(list) click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 55
def attrs(list)
  attrs = {}
  list.each do |att|
    next if att.match('-')
    attrs[att] = (@connection.do_request("#{@path}/#{att}", :plain => true) rescue nil)
  end
  attrs
end
body() click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 42
def body
  @connection.do_request @path, :plain => true
end
delete!() click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 79
def delete!
  @connection.do_request @path, :method => :delete
  true
end
set_attr(name, content) click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 74
def set_attr(name, content)
  path = "#{@path}/#{name}"
  @connection.do_request path, :content => content, :method => :put
end
set_attrs(hash) click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 68
def set_attrs(hash)
  hash.each do |name, content|
    set_attr(name, content)
  end
end
set_body(body) click to toggle source
# File lib/aeolus_image/model/warehouse/warehouse_client.rb, line 46
def set_body(body)
  @connection.do_request @path, :content => body, :method => :put
end