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
66 67 68 69 |
# File 'lib/miasma/models/storage/file.rb', line 66 def initialize(bucket, args={}) @bucket = bucket super bucket.api, args end |
Instance Attribute Details
#bucket ⇒ Bucket (readonly)
Returns parent bucket.
59 60 61 |
# File 'lib/miasma/models/storage/file.rb', line 59 def bucket @bucket end |
Instance Method Details
#body ⇒ IO-ish
Note:
object returned will provide #readpartial
82 83 84 85 86 87 |
# File 'lib/miasma/models/storage/file.rb', line 82 def body unless(attributes[:body]) data[:body] = api.file_body(self) end attributes[:body] end |
#body=(io) ⇒ IO
Set file body
93 94 95 96 97 98 |
# File 'lib/miasma/models/storage/file.rb', line 93 def body=(io) unless(io.respond_to?(:readpartial)) io = StringIO.new(io) end dirty[:body] = io end |
#destroy ⇒ self
Destroy file
111 112 113 114 115 116 |
# File 'lib/miasma/models/storage/file.rb', line 111 def destroy perform_destroy data.clear dirty.clear self end |
#filter(options = {}) ⇒ Array<File>
Return files matching given filter
76 77 78 |
# File 'lib/miasma/models/storage/file.rb', line 76 def filter(={}) raise NotImplementedError end |
#url(timeout_in_seconds = 60) ⇒ String
Create accessible URL
104 105 106 |
# File 'lib/miasma/models/storage/file.rb', line 104 def url(timeout_in_seconds=60) perform_file_url(timeout_in_seconds) end |