Parent

Class/Module Index [+]

Quicksearch

Deltacloud::Drivers::Mock::Client

Public Class Methods

new(storage_root) click to toggle source
# File lib/deltacloud/drivers/mock/mock_client.rb, line 23
def initialize(storage_root)
  @storage_root = storage_root
  @collections = []

  if ! File::directory?(@storage_root)
    FileUtils::rm_rf(@storage_root)
    FileUtils::mkdir_p(@storage_root)
    data = Dir[File::join(File::dirname(__FILE__), "data", "*")]
    FileUtils::cp_r(data, @storage_root)
  end
end

Public Instance Methods

build(klass, id) click to toggle source

Return the object with id id of class klass from the collection derived from the classes name

# File lib/deltacloud/drivers/mock/mock_client.rb, line 73
def build(klass, id)
  klass.new(load(collection_name(klass), id))
end
build_all(klass) click to toggle source

Return an array of model objects of the resources in the collection corresponding to class. The name of the collection is derived from the name of the class

# File lib/deltacloud/drivers/mock/mock_client.rb, line 85
def build_all(klass)
  load_all(collection_name(klass)).map { |hash| klass.new(hash) }
end
destroy(collection, id) click to toggle source
# File lib/deltacloud/drivers/mock/mock_client.rb, line 89
def destroy(collection, id)
  fname = file(collection, id)
  FileUtils.rm(fname) if File::exists?(fname)
end
dir(collection) click to toggle source
# File lib/deltacloud/drivers/mock/mock_client.rb, line 35
def dir(collection)
  result = File::join(@storage_root, collection.to_s)
  unless @collections.include?(collection)
    FileUtils::mkdir_p(result) unless File::directory?(result)
    @collections << collection
  end
  result
end
file(collection, id) click to toggle source
# File lib/deltacloud/drivers/mock/mock_client.rb, line 44
def file(collection, id)
  File::join(dir(collection), "#{id}.yml")
end
files(collection) click to toggle source
# File lib/deltacloud/drivers/mock/mock_client.rb, line 48
def files(collection)
  Dir[File::join(dir(collection), "*.yml")]
end
load(collection, id) click to toggle source
# File lib/deltacloud/drivers/mock/mock_client.rb, line 57
def load(collection, id)
  fname = file(collection, id)
  begin
    YAML.load(File.read(fname))
  rescue Errno::ENOENT
    nil
  end
end
load_all(collection) click to toggle source

Return an array of hashes of all the resources in the collection

# File lib/deltacloud/drivers/mock/mock_client.rb, line 78
def load_all(collection)
  members(collection).map { |id| load(collection, id) }
end
members(collection) click to toggle source

Return the ID's of all members of collection

# File lib/deltacloud/drivers/mock/mock_client.rb, line 53
def members(collection)
  files(collection).map { |f| File::basename(f, ".yml") }
end
store(collection, obj) click to toggle source
# File lib/deltacloud/drivers/mock/mock_client.rb, line 66
def store(collection, obj)
  raise "Why no obj[:id] ?" unless obj[:id]
  File::open(file(collection, obj[:id]), "w") { |f| YAML.dump(obj, f) }
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.