lib/phony_rails.rb in phony_rails-0.3.0 vs lib/phony_rails.rb in phony_rails-0.3.1

- old
+ new

@@ -10,24 +10,26 @@ ISO3166::Country::Data[country_code].try(:[], 'country_code') end # This method requires a country_code attribute (eg. NL) and phone_number to be set. # Options: + # :country_number => The country dial code (eg. 31 for NL). + # :default_country_number => Fallback country code. # :country_code => The country code we should use. # :default_country_code => Some fallback code (eg. 'NL') that can be used as default (comes from phony_normalize_numbers method). # This idea came from: # http://www.redguava.com.au/2011/06/rails-convert-phone-numbers-to-international-format-for-sms/ def self.normalize_number(number, options = {}) return if number.nil? number = number.clone # Just to be sure, we don't want to change the original. number.gsub!(/[^\d\+]/, '') # Strips weird stuff from the number return if number.blank? - if country_number = country_number_for(options[:country_code]) + if country_number = options[:country_number] || country_number_for(options[:country_code]) # (Force) add country_number if missing number = "#{country_number}#{number}" if not number =~ /^(00|\+)?#{country_number}/ - elsif default_country_number = country_number_for(options[:default_country_code]) + elsif default_country_number = options[:default_country_number] || country_number_for(options[:default_country_code]) # Add default_country_number if missing - number = "#{default_country_number}#{number}" if not number =~ /^(00|\+)/ + number = "#{default_country_number}#{number}" if not number =~ /^(00|\+|#{default_country_number})/ end number = Phony.normalize(number) if Phony.plausible?(number) return number.to_s rescue number # If all goes wrong .. we still return the original input.