Module: UrlField::UrlFieldMethod

Defined in:
lib/url_field.rb

Instance Method Summary collapse

Instance Method Details

#url_field(*args) ⇒ Object



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"                    # before_save :clean_url_url_field
  end

  class_eval do        
    
    args.each do |field_name|
      define_method(:"clean_#{field_name}_url_field") do              # def clean_url_url_field
        self.send("#{field_name}=", send("cleaned_#{field_name}"))    #   self.url = cleaned_url
      end                                                             # 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