class Algorithmia::DataDirectory
Public Instance Methods
create()
click to toggle source
# File lib/algorithmia/data_directory.rb, line 13 def create parent, name = File.split(@url) Algorithmia::Requester.new(@client).post(parent, name: name) true end
delete(force = false)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 19 def delete(force = false) query = {} query[:force] = true if force Algorithmia::Requester.new(@client).delete(@url, query: query) true end
each(&block)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 26 def each(&block) return enum_for(:each) unless block_given? list(block) do |dir| extract_files(dir) + extract_folders(dir) end end
each_dir(&block)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 42 def each_dir(&block) return enum_for(:each_dir) unless block_given? list(block) do |dir| extract_folders(dir) end end
each_file(&block)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 34 def each_file(&block) return enum_for(:each_file) unless block_given? list(block) do |dir| extract_files(dir) end end
exists?()
click to toggle source
# File lib/algorithmia/data_directory.rb, line 6 def exists? Algorithmia::Requester.new(@client).get(@url) true rescue Errors::NotFoundError false end
file(file_name)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 50 def file(file_name) @client.file(URI.encode(File.join(@data_uri, file_name))) end
put_file(file_path)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 54 def put_file(file_path) file(File.basename(file_path)).put_file(file_path) end
Private Instance Methods
extract_files(dir)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 60 def extract_files(dir) files = dir.parsed_response['files'] || [] files.map do |f| file(f['filename']) end end
extract_folders(dir)
click to toggle source
# File lib/algorithmia/data_directory.rb, line 67 def extract_folders(dir) folders = dir.parsed_response['folders'] || [] folders.map do |f| @client.dir(URI.encode(File.join(@data_uri, f['name']))) end end
list(each_proc) { |dir| ... }
click to toggle source
# File lib/algorithmia/data_directory.rb, line 74 def list(each_proc) marker = nil loop do query = {} query[:marker] = marker if marker dir = Algorithmia::Requester.new(@client).get(@url, query: query) items = yield dir items.each(&each_proc) marker = dir.parsed_response['marker'] break unless marker && !marker.empty? end end