Class: BFS::Bucket::Abstract
- Inherits:
-
Object
- Object
- BFS::Bucket::Abstract
- Defined in:
- lib/bfs/bucket/abstract.rb
Instance Attribute Summary collapse
-
#encoding ⇒ Object
readonly
Returns the value of attribute encoding.
-
#perm ⇒ Object
readonly
Returns the value of attribute perm.
Instance Method Summary collapse
-
#close ⇒ Object
Closes the underlying connection.
-
#cp(src, dst, **opts) ⇒ Object
Copies src to dst.
-
#create(_path, **_opts) ⇒ Object
Creates a new file and opens it for writing.
-
#info(_path, **_opts) ⇒ Object
Info returns the info for a single file.
-
#initialize(encoding: Encoding.default_external, **_opts) ⇒ Abstract
constructor
Initializes a new bucket.
-
#ls(_pattern = '**', **_opts) ⇒ Object
Lists the contents of a bucket using a glob pattern.
-
#mv(src, dst, **_opts) ⇒ Object
Moves src to dst.
-
#open(_path, **_opts) ⇒ Object
Opens an existing file for reading May raise BFS::FileNotFound.
-
#read(path, **opts) ⇒ Object
Shortcut method to read the contents of a file into memory.
-
#rm(_path, **_opts) ⇒ Object
Deletes a file.
-
#write(path, data, **opts) ⇒ Object
Shortcut method to write data to path.
Constructor Details
#initialize(encoding: Encoding.default_external, **_opts) ⇒ Abstract
Initializes a new bucket
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
#encoding ⇒ Object (readonly)
Returns the value of attribute encoding.
6 7 8 |
# File 'lib/bfs/bucket/abstract.rb', line 6 def encoding @encoding end |
#perm ⇒ Object (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
#close ⇒ Object
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
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
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
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
56 57 58 |
# File 'lib/bfs/bucket/abstract.rb', line 56 def write(path, data, **opts) create(path, **opts) {|f| f.write data } end |