Class: Valkyrie::Storage::Disk::BucketedStorage
- Inherits:
-
Object
- Object
- Valkyrie::Storage::Disk::BucketedStorage
- Defined in:
- lib/valkyrie/storage/disk.rb
Instance Attribute Summary collapse
-
#base_path ⇒ Object
readonly
Returns the value of attribute base_path.
Instance Method Summary collapse
- #bucketed_path(id) ⇒ Object
- #generate(resource:, file:, original_filename:) ⇒ Object
-
#initialize(base_path:) ⇒ BucketedStorage
constructor
A new instance of BucketedStorage.
Constructor Details
#initialize(base_path:) ⇒ BucketedStorage
Returns a new instance of BucketedStorage.
82 83 84 |
# File 'lib/valkyrie/storage/disk.rb', line 82 def initialize(base_path:) @base_path = base_path end |
Instance Attribute Details
#base_path ⇒ Object (readonly)
Returns the value of attribute base_path.
81 82 83 |
# File 'lib/valkyrie/storage/disk.rb', line 81 def base_path @base_path end |
Instance Method Details
#bucketed_path(id) ⇒ Object
91 92 93 94 |
# File 'lib/valkyrie/storage/disk.rb', line 91 def bucketed_path(id) cleaned_id = id.to_s.delete("-") cleaned_id[0..5].chars.each_slice(2).map(&:join) + [cleaned_id] end |
#generate(resource:, file:, original_filename:) ⇒ Object
86 87 88 89 |
# File 'lib/valkyrie/storage/disk.rb', line 86 def generate(resource:, file:, original_filename:) raise ArgumentError, "original_filename must be provided" unless original_filename Pathname.new(base_path).join(*bucketed_path(resource.id)).join(original_filename) end |