Class: Miasma::Models::Storage::File
- Inherits:
-
Types::Model
- Object
- Types::Data
- Types::Model
- Miasma::Models::Storage::File
- Defined in:
- lib/miasma/models/storage/file.rb
Overview
Abstract file
Defined Under Namespace
Classes: Streamable
Instance Attribute Summary collapse
-
#bucket ⇒ Bucket
readonly
Parent bucket.
Attributes inherited from Types::Model
Instance Method Summary collapse
- #body ⇒ IO-ish
-
#body=(io) ⇒ IO
Set file body.
-
#destroy ⇒ self
Destroy file.
-
#filter(options = {}) ⇒ Array<File>
Return files matching given filter.
-
#initialize(bucket, args = {}) ⇒ self
constructor
Create a new instance.
-
#url(timeout_in_seconds = 60) ⇒ String
Create accessible URL.
Methods inherited from Types::Model
from_json, #id?, #persisted?, #reload, #save
Methods included from Utils::ApiMethoding
Methods inherited from Types::Data
from_json, #from_json, #to_json
Constructor Details
#initialize(bucket, args = {}) ⇒ self
Create a new instance
65 66 67 68 |
# File 'lib/miasma/models/storage/file.rb', line 65 def initialize(bucket, args = {}) @bucket = bucket super bucket.api, args end |
Instance Attribute Details
#bucket ⇒ Bucket (readonly)
Returns parent bucket.
58 59 60 |
# File 'lib/miasma/models/storage/file.rb', line 58 def bucket @bucket end |
Instance Method Details
#body ⇒ IO-ish
Note:
object returned will provide #readpartial
81 82 83 84 85 86 |
# File 'lib/miasma/models/storage/file.rb', line 81 def body unless attributes[:body] data[:body] = api.file_body(self) end attributes[:body] end |
#body=(io) ⇒ IO
Set file body
92 93 94 95 96 97 |
# File 'lib/miasma/models/storage/file.rb', line 92 def body=(io) unless io.respond_to?(:readpartial) io = StringIO.new(io) end dirty[:body] = io end |
#destroy ⇒ self
Destroy file
110 111 112 113 114 115 |
# File 'lib/miasma/models/storage/file.rb', line 110 def destroy perform_destroy data.clear dirty.clear self end |
#filter(options = {}) ⇒ Array<File>
Return files matching given filter
75 76 77 |
# File 'lib/miasma/models/storage/file.rb', line 75 def filter( = {}) raise NotImplementedError end |
#url(timeout_in_seconds = 60) ⇒ String
Create accessible URL
103 104 105 |
# File 'lib/miasma/models/storage/file.rb', line 103 def url(timeout_in_seconds = 60) perform_file_url(timeout_in_seconds) end |