Skip to content

pluginaweek/has_phone_numbers

Repository files navigation

has_phone_numbers

has_phone_numbers demonstrates a reference implementation for handling phone numbers.

Resources

API

Bugs

Development

Testing

Source

  • git://github.com/pluginaweek/has_phone_numbers.git

Mailing List

Description

A phone number is a simple model whose data and functionality should be standardized across multiple applications. Phone numbers are minimalistic in terms of the type of data it represents. Both U.S. and international formats are supported.

Usage

Note that this is a reference implementation and, most likely, will be modified for your own usage.

Installation

has_phone_numbers requires an additional database table to work. You can generate a migration for this tables like so:

script/generate has_phone_numbers

Then simply migrate your database:

rake db:migrate

Example

Building with individual segments:

PhoneNumber.create(:phoneable => user, :country_code => '1', :number => '1234567890', :extension => '123')
# #<PhoneNumber id: 1, phoneable_id: 1, phoneable_type: "User", country_code: "1", number: "1234567890", extension: "123", created_at: "2009-01-01 00:00:00", updated_at: "2009-01-01 00:00:00">

Parsing raw values:

PhoneNumber.create(:phoneable => user, :content => '1 1234567890 ext. 123')
# #<PhoneNumber id: 1, phoneable_id: 1, phoneable_type: "User", country_code: "1", number: "1234567890", extension: "123", created_at: "2009-01-01 00:00:00", updated_at: "2009-01-01 00:00:00">

PhoneNumber.create(:phoneable => user, :content => '231 331 996 x4621')
# #<PhoneNumber id: 1, phoneable_id: 1, phoneable_type: "User", country_code: "231", number: "331996", extension: "4621", created_at: "2009-01-01 00:00:00", updated_at: "2009-01-01 00:00:00">

PhoneNumber.create(:phoneable => user, :content => '+ 386 1 5853 449')
# #<PhoneNumber id: 1, phoneable_id: 1, phoneable_type: "User", country_code: "386", number: "15853449", extension: nil, created_at: "2009-01-01 00:00:00", updated_at: "2009-01-01 00:00:00">

PhoneNumber.create(:phoneable => user, :content => '+39-02-4823001')
# #<PhoneNumber id: 1, phoneable_id: 1, phoneable_type: "User", country_code: "39", number: "024823001", extension: nil, created_at: "2009-01-01 00:00:00", updated_at: "2009-01-01 00:00:00">

Testing

Before you can run any tests, the following gem must be installed:

To run against a specific version of Rails:

rake test RAILS_FRAMEWORK_ROOT=/path/to/rails

Dependencies

  • Rails 2.3 or later

References

About

Demonstrates a reference implementation for handling phone numbers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages