14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/witch_doctor/antivirus_concern.rb', line 14
def schedule_virus_scan(options)
mount_point = options.fetch(:on)
after_save :"schedule_#{mount_point}_virus_scan", if: ["schedule_#{mount_point}_virus_scan?", :virus_scan_scheduling_on?]
after_destroy :"unschedule_#{mount_point}_virus_scan"
define_method("unschedule_#{mount_point}_virus_scan") do
virus_scans.where(mount_point: mount_point.to_s).each {|vs| vs.destroy}
end
define_method("schedule_#{mount_point}_virus_scan") do
virus_scans.create! do |vs|
vs.mount_point = mount_point.to_s
end
end
define_method("schedule_#{mount_point}_virus_scan?") do
(created_at_changed? && send(mount_point).present?) \
|| (send("#{mount_point}_changed?") && send(mount_point).present?)
end
define_method("#{mount_point}_antivirus") do
instance_variable_get("@#{mount_point}_antivirus") \
|| instance_variable_set("@#{mount_point}_antivirus", Antivirus.new(self, mount_point))
end
end
|