Module: Uploader::Fileuploads::ClassMethods

Defined in:
lib/uploader/fileuploads.rb

Instance Method Summary collapse

Instance Method Details

#fileupload_find(method, guid) ⇒ Object

Find asset(s) by guid



40
41
42
43
# File 'lib/uploader/fileuploads.rb', line 40

def fileupload_find(method, guid)
  query = fileupload_scope(method, guid)
  fileupload_multiple?(method) ? query : query.first
end

#fileupload_klass(method) ⇒ Object

Find class by reflection



50
51
52
# File 'lib/uploader/fileuploads.rb', line 50

def fileupload_klass(method)
  reflect_on_association(method.to_sym).klass
end

#fileupload_multiple?(method) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
57
58
59
60
61
# File 'lib/uploader/fileuploads.rb', line 54

def fileupload_multiple?(method)
  association = reflect_on_association(method.to_sym)

  # many? for Mongoid and :collection? for AR
  method_name = association.respond_to?(:many?) ? :many? : :collection?

  association && association.send(method_name)
end

#fileupload_scope(method, guid) ⇒ Object



45
46
47
# File 'lib/uploader/fileuploads.rb', line 45

def fileupload_scope(method, guid)
  fileupload_klass(method).where(assetable_type: base_class.name.to_s, Uploader.guid_column => guid)
end

#fileupload_update(record_id, guid, method) ⇒ Object

Update reflection klass by guid



35
36
37
# File 'lib/uploader/fileuploads.rb', line 35

def fileupload_update(record_id, guid, method)
  fileupload_scope(method, guid).update_all(assetable_id: record_id, Uploader.guid_column => nil)
end

#fileuploads(*args) ⇒ Object

Join ActiveRecord object with uploaded file Usage:

class Article < ActiveRecord::Base
  has_one :picture, as: :assetable, dependent: :destroy

  fileuploads :picture
end


24
25
26
27
28
29
30
31
32
# File 'lib/uploader/fileuploads.rb', line 24

def fileuploads(*args)
  options = args.extract_options!

  self.fileupload_options ||= {}

  args.each do |column|
    self.fileupload_options[column] = options
  end
end