7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/url_field.rb', line 7
def url_field(*args)
args.each do |field_name|
before_validation :"clean_#{field_name}_url_field" end
class_eval do
args.each do |field_name|
define_method(:"clean_#{field_name}_url_field") do self.send("#{field_name}=", send("cleaned_#{field_name}")) end end
private
args.each do |field_name|
define_method("cleaned_#{field_name}") do
return nil if send(field_name).nil? or send(field_name).blank?
return "http://#{send(field_name)}" unless send(field_name).match(/https?:\/\/.*$/)
send(field_name)
end
end
end
end
|