Class: BFS::Bucket::Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/bfs/bucket/abstract.rb

Direct Known Subclasses

FS, InMem

Instance Method Summary collapse

Instance Method Details

#closeObject

Closes the underlying connection



71
# File 'lib/bfs/bucket/abstract.rb', line 71

def close; end

#cp(src, dst, opts = {}) ⇒ Object

Copies src to dst

Parameters:

  • src (String)

    The source path.

  • dst (String)

    The destination path.



53
54
55
56
57
58
59
# File 'lib/bfs/bucket/abstract.rb', line 53

def cp(src, dst, opts={})
  open(src, opts) do |r|
    create(dst, opts) do |w|
      IO.copy_stream(r, w)
    end
  end
end

#create(_path, _opts = {}) ⇒ Object

Creates a new file and opens it for writing



17
18
19
# File 'lib/bfs/bucket/abstract.rb', line 17

def create(_path, _opts={})
  raise 'not implemented'
end

#info(_path, _opts = {}) ⇒ Object

Info returns the info for a single file



12
13
14
# File 'lib/bfs/bucket/abstract.rb', line 12

def info(_path, _opts={})
  raise 'not implemented'
end

#ls(_pattern = '**', _opts = {}) ⇒ Object

Lists the contents of a bucket using a glob pattern



7
8
9
# File 'lib/bfs/bucket/abstract.rb', line 7

def ls(_pattern='**', _opts={})
  raise 'not implemented'
end

#mv(src, dst, _opts = {}) ⇒ Object

Moves src to dst

Parameters:

  • src (String)

    The source path.

  • dst (String)

    The destination path.



65
66
67
68
# File 'lib/bfs/bucket/abstract.rb', line 65

def mv(src, dst, _opts={})
  cp(src, dst)
  rm(src)
end

#open(_path, _opts = {}) ⇒ Object

Opens an existing file for reading May raise BFS::FileNotFound



23
24
25
# File 'lib/bfs/bucket/abstract.rb', line 23

def open(_path, _opts={})
  raise 'not implemented'
end

#read(path, opts = {}) ⇒ Object

Shortcut method to read the contents of a file into memory

Parameters:

  • path (String)

    The path to read from.

  • opts (Hash) (defaults to: {})

    Additional options, see #open.



36
37
38
# File 'lib/bfs/bucket/abstract.rb', line 36

def read(path, opts={})
  open(path, opts, &:read)
end

#rm(_path, _opts = {}) ⇒ Object

Deletes a file.



28
29
30
# File 'lib/bfs/bucket/abstract.rb', line 28

def rm(_path, _opts={})
  raise 'not implemented'
end

#write(path, data, opts = {}) ⇒ Object

Shortcut method to write data to path

Parameters:

  • path (String)

    The path to write to.

  • data (String)

    The data to write.

  • opts (Hash) (defaults to: {})

    Additional options, see #create.



45
46
47
# File 'lib/bfs/bucket/abstract.rb', line 45

def write(path, data, opts={})
  create(path, opts) {|f| f.write data }
end