Module: Uploader::Fileuploads::ClassMethods

Defined in:
lib/uploader/fileuploads.rb

Instance Method Summary collapse

Instance Method Details

#base_classObject



79
80
81
# File 'lib/uploader/fileuploads.rb', line 79

def base_class
  self
end

#fileupload_find(method, guid) ⇒ Object

Find asset(s) by guid



55
56
57
58
# File 'lib/uploader/fileuploads.rb', line 55

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

#fileupload_klass(method) ⇒ Object

Find class by reflection



65
66
67
# File 'lib/uploader/fileuploads.rb', line 65

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

#fileupload_multiple?(method) ⇒ Boolean

Returns:

  • (Boolean)


69
70
71
72
73
74
75
76
# File 'lib/uploader/fileuploads.rb', line 69

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

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

  !!(association && association.send(method_name))
end

#fileupload_scope(method, guid) ⇒ Object



60
61
62
# File 'lib/uploader/fileuploads.rb', line 60

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

#fileupload_update(record_id, guid, method) ⇒ Object

Update reflection klass by guid



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

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