class CarrierWave::Storage::MeganzFile

Attributes

connection[R]
path[R]
uploader[R]

Public Class Methods

new(connection, uploader, path) click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 9
def initialize(connection, uploader, path)
  @connection = connection
  @uploader = uploader
  @path = path
end

Public Instance Methods

delete() click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 61
def delete; end
extension() click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 30
def extension
  elements = path.split('.')
  elements.last if elements.size > 1
end
filename() click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 35
def filename
  object.name
end
find_or_initialize_location(location, parent_folder) click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 52
def find_or_initialize_location(location, parent_folder)
  return parent_folder if location.count.zero?

  child_folder = parent_folder.folders.find { |node| node.name == location.first }
  parent_folder = child_folder ? child_folder : parent_folder.create_folder(location.first)

  find_or_initialize_location(location - [location.first], parent_folder)
end
object() click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 39
def object
  file_location_dir = @path.split('/')[-2] if @path.split('/').count > 1
  file_name = @path.split('/').last

  folder = if file_location_dir.present?
             @connection.nodes.find { |node| node.type == :folder && node.name == file_location_dir }
           else
             @connection.root
           end

  folder.files.find { |f| f.name == file_name }
end
public_url() click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 26
def public_url
  object.public_url
end
store(file) click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 15
def store(file)
  location = uploader.store_path.split('/')[0..-2]

  folder = find_or_initialize_location(location, connection.root)
  folder.upload(file.to_file)
end
url() click to toggle source
# File lib/carrierwave/storage/meganz_file.rb, line 22
def url
  object.storage_url
end