diff options
Diffstat (limited to 'actionpack')
| -rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
| -rw-r--r-- | actionpack/lib/action_view/helpers/number_helper.rb | 18 | ||||
| -rw-r--r-- | actionpack/test/template/number_helper_test.rb | 2 | 
3 files changed, 12 insertions, 10 deletions
| diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 738e4681df..e63802673c 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@  *SVN* +* Added :extension option to NumberHelper#number_to_phone #1361 [delynnb] +  * Added button_to as a form-based solution to deal with harmful actions that should be hidden behind POSTs. This makes it just as easy as link_to to create a safe trigger for actions like destroy, although it's limited by being a block element, the fixed look, and a no-no inside other forms. #1371 [tom@moertel.com]  * Fixed image_tag so an exception is not thrown just because the image is missing and alt value can't be generated #1395 [Marcel] diff --git a/actionpack/lib/action_view/helpers/number_helper.rb b/actionpack/lib/action_view/helpers/number_helper.rb index b494bef59a..b1757c864c 100644 --- a/actionpack/lib/action_view/helpers/number_helper.rb +++ b/actionpack/lib/action_view/helpers/number_helper.rb @@ -8,20 +8,18 @@ module ActionView        # The area code can be surrounded by parenthesis by setting +:area_code+ to true; default is false        # The delimiter can be set using +:delimiter+; default is "-"        # Examples: -      #   number_to_phone(1235551234)                       => 123-555-1234 -      #   number_to_phone(1235551234, {:area_code => true}) => (123) 555-1234 -      #   number_to_phone(1235551234, {:delimiter => " "})   => 123 555 1234 +      #   number_to_phone(1235551234)   => 123-555-1234 +      #   number_to_phone(1235551234, {:area_code => true})   => (123) 555-1234 +      #   number_to_phone(1235551234, {:delimiter => " "})    => 123 555 1234 +      #   number_to_phone(1235551234, {:area_code => true, :extension => 555})  => (123) 555-1234 x 555        def number_to_phone(number, options = {}) -        options = options.stringify_keys +        options   = options.stringify_keys          area_code = options.delete("area_code") { false }          delimiter = options.delete("delimiter") { "-" } +        extension = options.delete("extension") { "" }          begin -          str = number.to_s -          if area_code == true -            str.gsub!(/([0-9]{3})([0-9]{3})([0-9]{4})/,"(\\1) \\2#{delimiter}\\3") -          else -            str.gsub!(/([0-9]{3})([0-9]{3})([0-9]{4})/,"\\1#{delimiter}\\2#{delimiter}\\3") -          end +          str = area_code == true ? number.to_s.gsub(/([0-9]{3})([0-9]{3})([0-9]{4})/,"(\\1) \\2#{delimiter}\\3") : number.to_s.gsub(/([0-9]{3})([0-9]{3})([0-9]{4})/,"\\1#{delimiter}\\2#{delimiter}\\3") +          extension.to_s.strip.empty? ? str : "#{str} x #{extension.to_s.strip}"          rescue            number          end diff --git a/actionpack/test/template/number_helper_test.rb b/actionpack/test/template/number_helper_test.rb index abc288c901..3c214b76e5 100644 --- a/actionpack/test/template/number_helper_test.rb +++ b/actionpack/test/template/number_helper_test.rb @@ -11,6 +11,8 @@ class NumberHelperTest < Test::Unit::TestCase      assert_equal("123-555-1234", number_to_phone(1235551234))      assert_equal("(123) 555-1234", number_to_phone(1235551234, {:area_code => true}))      assert_equal("123 555 1234", number_to_phone(1235551234, {:delimiter => " "})) +    assert_equal("(123) 555-1234 x 555", number_to_phone(1235551234, {:area_code => true, :extension => 555})) +    assert_equal("123-555-1234", number_to_phone(1235551234, :extension => "   "))    end    def test_number_to_currency | 
