Module: ValidatesUrlFormatOf
- Defined in:
- lib/validates_url_format_of.rb
Constant Summary collapse
- IPv4_PART =
0-255
/\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]/
- REGEXP =
%r{ \A https?:// # http:// or https:// ([^\s:@]+:[^\s:@]*@)? # optional username:pw@ ( (xn--)?[a-z0-9]+([-.][a-z0-9]+)*\.[a-z]{2,6}\.? | # domain (including Punycode/IDN)... #{IPv4_PART}(\.#{IPv4_PART}){3} ) # or IPv4 (:\d{1,5})? # optional port ([/?]\S*)? # optional /whatever or ?whatever \Z }iux
- DEFAULT_MESSAGE =
'does not appear to be a valid URL'
- DEFAULT_MESSAGE_URL =
'does not appear to be valid'
Instance Method Summary collapse
Instance Method Details
#validates_url_format_of(*attr_names) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/validates_url_format_of.rb', line 19 def validates_url_format_of(*attr_names) = { :allow_nil => false, :allow_blank => false, :with => REGEXP } = .merge(attr_names.pop) if attr_names.last.is_a?(Hash) attr_names.each do |attr_name| = attr_name.to_s.match(/(_|\b)URL(_|\b)/i) ? DEFAULT_MESSAGE_URL : DEFAULT_MESSAGE validates_format_of(attr_name, { :message => }.merge()) end end |