phony_rails 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/Gemfile.lock +3 -3
- data/README.md +7 -0
- data/lib/phony_rails.rb +1 -1
- data/lib/phony_rails/string_extensions.rb +3 -0
- data/lib/phony_rails/version.rb +1 -1
- data/phony_rails.gemspec +2 -1
- data/spec/lib/phony_rails_spec.rb +33 -0
- metadata +11 -23
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            !binary "U0hBMQ==":
         | 
| 3 | 
            +
              metadata.gz: !binary |-
         | 
| 4 | 
            +
                OGNmYjVlMTE5NDBiNGY5Y2MwZGE4ZDVlYzA2M2IxN2M1ZmI1MDBhMg==
         | 
| 5 | 
            +
              data.tar.gz: !binary |-
         | 
| 6 | 
            +
                ZDQ4MTIxNTdlNjVkYzNhNTZjMDQ5NWZiZDc0MTkzY2JkM2MxOWYwOQ==
         | 
| 7 | 
            +
            SHA512:
         | 
| 8 | 
            +
              metadata.gz: !binary |-
         | 
| 9 | 
            +
                ODIxZDY3ZDdjY2NiZGU2OGE3NzdjNzI2YzcxYzc5OGQwNGEwZTYwOTA5YWJm
         | 
| 10 | 
            +
                MDAyZTc4Njc3NDRkZjU0ODc1NWRiYThjODUzNmI4MDljMzZiNWU1OTQ4YzNm
         | 
| 11 | 
            +
                NDMxNGJlMjA5ZWMwMDlkOWJmOTUyNDY0NDM2Mjg0MjcwZWFhMjI=
         | 
| 12 | 
            +
              data.tar.gz: !binary |-
         | 
| 13 | 
            +
                MzFjNDU4OWQxNTA5ZDFkOWE4M2U5ZTNiN2FmNjE4NzE4NDMyODZlOWQ1OTc4
         | 
| 14 | 
            +
                Y2JiMjkyYzkwMTQ5YTA1NjRhOWZlNjhmZDY0ZWU4NGUzODFkNmZkNjRkMjE3
         | 
| 15 | 
            +
                ODA5ZWI5ZTRiOTY3MzJjNTJmNDRlNjJjMjg4MmU0MjI2OGY5NzQ=
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,10 +1,10 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                phony_rails (0. | 
| 4 | 
            +
                phony_rails (0.5.0)
         | 
| 5 5 | 
             
                  activesupport (>= 3.0)
         | 
| 6 6 | 
             
                  countries (>= 0.8.2)
         | 
| 7 | 
            -
                  phony ( | 
| 7 | 
            +
                  phony (= 2.0.0)
         | 
| 8 8 |  | 
| 9 9 | 
             
            GEM
         | 
| 10 10 | 
             
              remote: https://rubygems.org/
         | 
| @@ -49,7 +49,7 @@ GEM | |
| 49 49 | 
             
                moped (1.5.1)
         | 
| 50 50 | 
             
                multi_json (1.7.9)
         | 
| 51 51 | 
             
                origin (1.1.0)
         | 
| 52 | 
            -
                phony ( | 
| 52 | 
            +
                phony (2.0.0)
         | 
| 53 53 | 
             
                rake (10.1.0)
         | 
| 54 54 | 
             
                rb-fsevent (0.9.3)
         | 
| 55 55 | 
             
                rb-inotify (0.9.1)
         | 
    
        data/README.md
    CHANGED
    
    | @@ -100,6 +100,10 @@ To first normalize the String to a certain country use: | |
| 100 100 |  | 
| 101 101 | 
             
                <%= "010-12341234".phony_formatted(:normalize => :NL, :format => :international, :spaces => '-') %>
         | 
| 102 102 |  | 
| 103 | 
            +
            To return nil when a number is not valid:
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                "123".phony_formatted(:strict => true) # => nil
         | 
| 106 | 
            +
             | 
| 103 107 | 
             
            You can also use the bang method (phony_formatted!):
         | 
| 104 108 |  | 
| 105 109 | 
             
                number = "010-12341234"
         | 
| @@ -114,6 +118,9 @@ Say you want to find a record by a phone number. Best is to normalize user input | |
| 114 118 |  | 
| 115 119 | 
             
            ## Changelog
         | 
| 116 120 |  | 
| 121 | 
            +
            0.5.0
         | 
| 122 | 
            +
            * Added :strict option to String#phony_formatted.
         | 
| 123 | 
            +
             | 
| 117 124 | 
             
            0.4.2
         | 
| 118 125 | 
             
            * Added @fareastside validation for country_code.
         | 
| 119 126 |  | 
    
        data/lib/phony_rails.rb
    CHANGED
    
    | @@ -7,7 +7,7 @@ require 'phony_rails/version' | |
| 7 7 | 
             
            module PhonyRails
         | 
| 8 8 |  | 
| 9 9 | 
             
              def self.country_number_for(country_code)
         | 
| 10 | 
            -
                ISO3166::Country::Data[country_code].try(:[], 'country_code')
         | 
| 10 | 
            +
                ISO3166::Country::Data[country_code.to_s.upcase].try(:[], 'country_code')
         | 
| 11 11 | 
             
              end
         | 
| 12 12 |  | 
| 13 13 | 
             
              # This method requires a country_code attribute (eg. NL) and phone_number to be set.
         | 
| @@ -6,10 +6,13 @@ | |
| 6 6 | 
             
                #   "31612341234".phony_formatted(:spaces => '-') # => '06-12341234'
         | 
| 7 7 | 
             
                # To first normalize a String use:
         | 
| 8 8 | 
             
                #   "010-12341234".phony_formatted(:normalize => :NL)
         | 
| 9 | 
            +
                # To return nil when a number is not correct (checked using Phony.plausible?) use
         | 
| 10 | 
            +
                #   "010-12341234".phony_formatted(strict: true)
         | 
| 9 11 | 
             
                def phony_formatted(options = {})
         | 
| 10 12 | 
             
                  normalize_country_code = options.delete(:normalize)
         | 
| 11 13 | 
             
                  s = (normalize_country_code ? PhonyRails.normalize_number(self, :default_country_code => normalize_country_code.to_s) : self.gsub(/\D/, ''))
         | 
| 12 14 | 
             
                  return if s.blank?
         | 
| 15 | 
            +
                  return if options[:strict] && !Phony.plausible?(s)
         | 
| 13 16 | 
             
                  Phony.formatted(s, options.reverse_merge(:format => :national))
         | 
| 14 17 | 
             
                end
         | 
| 15 18 |  | 
    
        data/lib/phony_rails/version.rb
    CHANGED
    
    
    
        data/phony_rails.gemspec
    CHANGED
    
    | @@ -7,6 +7,7 @@ Gem::Specification.new do |gem| | |
| 7 7 | 
             
              gem.description   = %q{This Gem adds useful methods to your Rails app to validate, display and save phone numbers.}
         | 
| 8 8 | 
             
              gem.summary       = %q{This Gem adds useful methods to your Rails app to validate, display and save phone numbers.}
         | 
| 9 9 | 
             
              gem.homepage      = "https://github.com/joost/phony_rails"
         | 
| 10 | 
            +
              gem.license = 'MIT'
         | 
| 10 11 |  | 
| 11 12 | 
             
              gem.files         = `git ls-files`.split($\)
         | 
| 12 13 | 
             
              gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
         | 
| @@ -15,7 +16,7 @@ Gem::Specification.new do |gem| | |
| 15 16 | 
             
              gem.require_paths = ["lib"]
         | 
| 16 17 | 
             
              gem.version       = PhonyRails::VERSION
         | 
| 17 18 |  | 
| 18 | 
            -
              gem.add_dependency "phony", " | 
| 19 | 
            +
              gem.add_dependency "phony", "= 1.9.0"
         | 
| 19 20 | 
             
              gem.add_dependency "countries", ">= 0.8.2"
         | 
| 20 21 | 
             
              gem.add_dependency "activesupport", ">= 3.0"
         | 
| 21 22 | 
             
              gem.add_development_dependency "activerecord", ">= 3.0"
         | 
| @@ -17,6 +17,22 @@ describe PhonyRails do | |
| 17 17 |  | 
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 | 
            +
                describe 'with strict option' do
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  it "should return nil with non plausible number" do
         | 
| 23 | 
            +
                    number = '+319090' # not valid
         | 
| 24 | 
            +
                    Phony.plausible?(number).should be_false
         | 
| 25 | 
            +
                    number.phony_formatted(:strict => true).should eql(nil)
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  it "should not return nil with plausible number" do
         | 
| 29 | 
            +
                    number = '+31101234123' # valid
         | 
| 30 | 
            +
                    Phony.plausible?(number).should be_true
         | 
| 31 | 
            +
                    number.phony_formatted(:strict => true).should_not eql(nil)
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
             | 
| 20 36 | 
             
                describe 'with normalize option' do
         | 
| 21 37 |  | 
| 22 38 | 
             
                  it "should phony_format" do
         | 
| @@ -48,6 +64,15 @@ describe PhonyRails do | |
| 48 64 |  | 
| 49 65 | 
             
                end
         | 
| 50 66 |  | 
| 67 | 
            +
                describe "specific tests from issues" do
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                  # https://github.com/joost/phony_rails/issues/42
         | 
| 70 | 
            +
                  it "should pass issue Github issue #42" do
         | 
| 71 | 
            +
                    PhonyRails.normalize_number("0606060606", default_country_code: 'FR').should eq('33606060606')
         | 
| 72 | 
            +
                  end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
             | 
| 51 76 | 
             
                it "should not change original String" do
         | 
| 52 77 | 
             
                  s = "0101234123"
         | 
| 53 78 | 
             
                  s.phony_formatted(:normalize => :NL).should eql('010 1234123')
         | 
| @@ -86,6 +111,10 @@ describe PhonyRails do | |
| 86 111 | 
             
                    PhonyRails.normalize_number('4790909090', :country_code => 'SE').should eql('464790909090')
         | 
| 87 112 | 
             
                  end
         | 
| 88 113 |  | 
| 114 | 
            +
                  it "should recognize lowercase country codes" do
         | 
| 115 | 
            +
                    PhonyRails.normalize_number('4790909090', :country_code => 'se').should eql('464790909090')
         | 
| 116 | 
            +
                  end
         | 
| 117 | 
            +
             | 
| 89 118 | 
             
                end
         | 
| 90 119 |  | 
| 91 120 | 
             
                context 'number without a country code' do
         | 
| @@ -108,6 +137,10 @@ describe PhonyRails do | |
| 108 137 | 
             
                    PhonyRails.normalize_number('(030) 8 61 29 06', :country_code => 'DE', :default_country_code => 'NL').should eql('49308612906')
         | 
| 109 138 | 
             
                  end
         | 
| 110 139 |  | 
| 140 | 
            +
                  it "should recognize lowercase country codes" do
         | 
| 141 | 
            +
                    PhonyRails.normalize_number('010-1234123', :country_code => 'nl').should eql('31101234123')
         | 
| 142 | 
            +
                  end
         | 
| 143 | 
            +
             | 
| 111 144 | 
             
                end
         | 
| 112 145 |  | 
| 113 146 | 
             
                it "should handle some edge cases" do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,36 +1,32 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: phony_rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.5.0
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Joost Hietbrink
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013- | 
| 11 | 
            +
            date: 2013-12-24 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: phony
         | 
| 16 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 | 
            -
                - -  | 
| 17 | 
            +
                - - '='
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version: 1. | 
| 19 | 
            +
                    version: 1.9.0
         | 
| 22 20 | 
             
              type: :runtime
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 | 
            -
                - -  | 
| 24 | 
            +
                - - '='
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version: 1. | 
| 26 | 
            +
                    version: 1.9.0
         | 
| 30 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 28 | 
             
              name: countries
         | 
| 32 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            -
                none: false
         | 
| 34 30 | 
             
                requirements:
         | 
| 35 31 | 
             
                - - ! '>='
         | 
| 36 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -38,7 +34,6 @@ dependencies: | |
| 38 34 | 
             
              type: :runtime
         | 
| 39 35 | 
             
              prerelease: false
         | 
| 40 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            -
                none: false
         | 
| 42 37 | 
             
                requirements:
         | 
| 43 38 | 
             
                - - ! '>='
         | 
| 44 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -46,7 +41,6 @@ dependencies: | |
| 46 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 42 | 
             
              name: activesupport
         | 
| 48 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 | 
            -
                none: false
         | 
| 50 44 | 
             
                requirements:
         | 
| 51 45 | 
             
                - - ! '>='
         | 
| 52 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -54,7 +48,6 @@ dependencies: | |
| 54 48 | 
             
              type: :runtime
         | 
| 55 49 | 
             
              prerelease: false
         | 
| 56 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            -
                none: false
         | 
| 58 51 | 
             
                requirements:
         | 
| 59 52 | 
             
                - - ! '>='
         | 
| 60 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -62,7 +55,6 @@ dependencies: | |
| 62 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 63 56 | 
             
              name: activerecord
         | 
| 64 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 | 
            -
                none: false
         | 
| 66 58 | 
             
                requirements:
         | 
| 67 59 | 
             
                - - ! '>='
         | 
| 68 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -70,7 +62,6 @@ dependencies: | |
| 70 62 | 
             
              type: :development
         | 
| 71 63 | 
             
              prerelease: false
         | 
| 72 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            -
                none: false
         | 
| 74 65 | 
             
                requirements:
         | 
| 75 66 | 
             
                - - ! '>='
         | 
| 76 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -78,7 +69,6 @@ dependencies: | |
| 78 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 79 70 | 
             
              name: mongoid
         | 
| 80 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 81 | 
            -
                none: false
         | 
| 82 72 | 
             
                requirements:
         | 
| 83 73 | 
             
                - - ! '>='
         | 
| 84 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -86,7 +76,6 @@ dependencies: | |
| 86 76 | 
             
              type: :development
         | 
| 87 77 | 
             
              prerelease: false
         | 
| 88 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 89 | 
            -
                none: false
         | 
| 90 79 | 
             
                requirements:
         | 
| 91 80 | 
             
                - - ! '>='
         | 
| 92 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -119,32 +108,31 @@ files: | |
| 119 108 | 
             
            - spec/lib/validators/phony_validator_spec.rb
         | 
| 120 109 | 
             
            - spec/spec_helper.rb
         | 
| 121 110 | 
             
            homepage: https://github.com/joost/phony_rails
         | 
| 122 | 
            -
            licenses: | 
| 111 | 
            +
            licenses:
         | 
| 112 | 
            +
            - MIT
         | 
| 113 | 
            +
            metadata: {}
         | 
| 123 114 | 
             
            post_install_message: 
         | 
| 124 115 | 
             
            rdoc_options: []
         | 
| 125 116 | 
             
            require_paths:
         | 
| 126 117 | 
             
            - lib
         | 
| 127 118 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 128 | 
            -
              none: false
         | 
| 129 119 | 
             
              requirements:
         | 
| 130 120 | 
             
              - - ! '>='
         | 
| 131 121 | 
             
                - !ruby/object:Gem::Version
         | 
| 132 122 | 
             
                  version: '0'
         | 
| 133 123 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 134 | 
            -
              none: false
         | 
| 135 124 | 
             
              requirements:
         | 
| 136 125 | 
             
              - - ! '>='
         | 
| 137 126 | 
             
                - !ruby/object:Gem::Version
         | 
| 138 127 | 
             
                  version: '0'
         | 
| 139 128 | 
             
            requirements: []
         | 
| 140 129 | 
             
            rubyforge_project: 
         | 
| 141 | 
            -
            rubygems_version: 1. | 
| 130 | 
            +
            rubygems_version: 2.1.11
         | 
| 142 131 | 
             
            signing_key: 
         | 
| 143 | 
            -
            specification_version:  | 
| 132 | 
            +
            specification_version: 4
         | 
| 144 133 | 
             
            summary: This Gem adds useful methods to your Rails app to validate, display and save
         | 
| 145 134 | 
             
              phone numbers.
         | 
| 146 135 | 
             
            test_files:
         | 
| 147 136 | 
             
            - spec/lib/phony_rails_spec.rb
         | 
| 148 137 | 
             
            - spec/lib/validators/phony_validator_spec.rb
         | 
| 149 138 | 
             
            - spec/spec_helper.rb
         | 
| 150 | 
            -
            has_rdoc: 
         |