EasyContact
This is a very simple contact system for Rails. Because it is so simple, you should fork and modify it for your own purpose.
This gem is used in my other projects, thus, it will be kept updated, albeit slowly.
Install
rails generate easy_contact:migration
rake db:migrate
rake db:test:prepare
Basic Usage
You need to define acts_as_contactable in a contact model like this:
class User < ActiveRecord::Base
acts_as_contactable
end
You can manage contact information like this:
user.addresses
user.phones
Entry
Each information is stored in an entry, no matter it is an address or a phone number. EasyContact use STI to create classes of address and phone. An entry contains these fields:
type: string
label: string
content: text
extra: string
addition: string
country: string
locale: string
primary: boolean
All of them are in string format. The type defines this entry an address or a phone number. The use of other fields depend on the type.
country is used in address and phone type. It is set as 2-letter abbreviation of country like US, UK.
locale set the language of this entry. A person might have English and Chinese name.
primary specify the main entry of a type, for example, the main address of a person.
Name
It doesn't care the order of first and last name, or suffix and middle name. Just a string of the name this person use. Thus, it is your choice to put the name as 'John Doe' or 'Doe, John'.
Content: string of name
Label: 'fullname', 'nickname'
Extra: not in use
Addition: not in use
Address
It is in a free form for address. Think the address in the name card.
Content: string of address
Label: 'home', 'office'
Extra: not in use
Addition: not in use
Phone
It is in a free form of address. Thus, you can use 1-545-8342 or (545)8743. There is no need to put country code. The code can be derived from country field.
Content: string of phone number
Label: 'home', 'office'
Extra: not in use
Addition: not in use
Employment
It is in a free form of employment
Content: string of employer (company, organization)
Label: no predefined
Extra: title of this employment
Addition: year during this employment in free form, ex. 1998-2001.
Birthday
It is in seconds. Use to_i to convert a date into seconds. Time zone is ignored. To avoid problem, always use UTC even if you are not born in UTC time zone.
Content: string in seconds
Label: no predefined
Extra: not in use
Addition: not in use
It is in a free form of email
Content: string of email
Label: no predefined
Extra: not in use
Addition: not in use
Website
It is in a free form of website
Content: string of email
Label: no predefined
Extra: not in use
Addition: not in use
Instant Messenger
It is in a free form of website
Content: string of instant messenger ID
Label: 'google talk', 'skype', 'yahoo', 'msn', 'jabber'
Extra: not in use
Addition: not in use
License
MIT