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.
76 77 78 |
# File 'lib/valkyrie/storage/disk.rb', line 76 def initialize(base_path:) @base_path = base_path end |
Instance Attribute Details
#base_path ⇒ Object (readonly)
Returns the value of attribute base_path.
75 76 77 |
# File 'lib/valkyrie/storage/disk.rb', line 75 def base_path @base_path end |
Instance Method Details
#bucketed_path(id) ⇒ Object
85 86 87 88 |
# File 'lib/valkyrie/storage/disk.rb', line 85 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
80 81 82 83 |
# File 'lib/valkyrie/storage/disk.rb', line 80 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 |