Class: DatabaseFile

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/database_file.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create_from_param(file, options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/models/database_file.rb', line 19

def create_from_param(file, options = {})
  original_filename = file.original_filename
  extension = File.extname original_filename
  filename = File.basename original_filename, extension
  filename = nil if filename.blank?
  extension = extension[/^\.?(.*?)$/, 1].downcase if extension
  extension = nil if extension.blank?

  if options.include?(:allowed_extensions) && !options[:allowed_extensions].map(&:downcase).include?(extension)
    raise "Extension must be one of: #{options[:allowed_extensions].join ", "}"
  end

  create :filename => filename, :extension => extension, :content => file.read
end

.sanitize(value) ⇒ Object



15
16
17
# File 'app/models/database_file.rb', line 15

def sanitize(value)
  value.gsub(/\s+/, "_").gsub(/[^0-9a-zA-Z.\-_]/, "")
end

Instance Method Details

#to_backup_entriesObject



2
3
4
5
6
7
8
9
10
11
12
# File 'app/models/database_file.rb', line 2

def to_backup_entries
  if filename
    meta_name = "#{filename}.meta"
  else
    meta_name = "meta"
  end

  file = Backup::Entry.new id, filename, extension, content
  meta = Backup::Entry.new id, meta_name, "json", to_json(:except => :content)
  [file, meta]
end