Class: BFS::Bucket::Abstract

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

Direct Known Subclasses

FS, InMem

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(encoding: Encoding.default_external, **_opts) ⇒ Abstract

Initializes a new bucket

Parameters:

  • opts (Hash)

    options



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

def initialize(encoding: Encoding.default_external, **_opts)
  @encoding = encoding
  @perm = perm
end

Instance Attribute Details

#encodingObject (readonly)

Returns the value of attribute encoding.



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

def encoding
  @encoding
end

#permObject (readonly)

Returns the value of attribute perm.



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

def perm
  @perm
end

Instance Method Details

#closeObject

Closes the underlying connection



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

def close; end

#cp(src, dst, **opts) ⇒ Object

Copies src to dst

Parameters:

  • src (String)

    The source path.

  • dst (String)

    The destination path.



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

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



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

def create(_path, **_opts)
  raise 'not implemented'
end

#info(_path, **_opts) ⇒ Object

Info returns the info for a single file



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

def info(_path, **_opts)
  raise 'not implemented'
end

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

Lists the contents of a bucket using a glob pattern



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

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.



76
77
78
79
# File 'lib/bfs/bucket/abstract.rb', line 76

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



34
35
36
# File 'lib/bfs/bucket/abstract.rb', line 34

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)

    Additional options, see #open.



47
48
49
# File 'lib/bfs/bucket/abstract.rb', line 47

def read(path, **opts)
  open(path, **opts, &:read)
end

#rm(_path, **_opts) ⇒ Object

Deletes a file.



39
40
41
# File 'lib/bfs/bucket/abstract.rb', line 39

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)

    Additional options, see #create.



56
57
58
# File 'lib/bfs/bucket/abstract.rb', line 56

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