README.md in unidom-contact-1.3 vs README.md in unidom-contact-1.3.1
- old
+ new
@@ -1,29 +1,42 @@
# Unidom Contact 联系方式领域模型引擎
[![License](https://img.shields.io/badge/license-MIT-green.svg)](http://opensource.org/licenses/MIT)
[![Gem Version](https://badge.fury.io/rb/unidom-contact.svg)](https://badge.fury.io/rb/unidom-contact)
+[![Dependency Status](https://gemnasium.com/badges/github.com/topbitdu/unidom-contact.svg)](https://gemnasium.com/github.com/topbitdu/unidom-contact)
Unidom (UNIfied Domain Object Model) is a series of domain model engines. The Contact domain model engine includes Contact Subscription and Email Address models.
Unidom (统一领域对象模型)是一系列的领域模型引擎。联系方式领域模型引擎包括联系方式订阅和电子邮箱地址的模型。
+
+
## Recent Update
+
Check out the [Road Map](ROADMAP.md) to find out what's the next.
Check out the [Change Log](CHANGELOG.md) to find out what's new.
+
+
## Usage in Gemfile
+
```ruby
gem 'unidom-contact'
```
+
+
## Run the Database Migration
+
```shell
rake db:migrate
```
The migration versions start with 200103.
+
+
## Call the Model
+
```ruby
contact = Unidom::Contact::China::MobilePhoneNumber.phone_number_is('13912345678').valid_at.alive.first_or_create!
subscriber = Unidom::Party::Person.create! name: 'John'
subscription = Unidom::Contact::ContactSubscription.subscribe! contact: contact, subscriber: subscriber, name: 'John Mobile', primary: true, grade: 0, priority: 0, opened_at: Time.now
# or
@@ -39,28 +52,34 @@
Unidom::Contact::EmailAddress.full_address_is('topbit.du@gmail.com').first
# Find the Email Address
```
+
+
## Include the Concerns
+
```ruby
include Unidom::Contact::Concerns::AsContact
include Unidom::Contact::Concerns::AsSubscriber
include Unidom::Contact::Concerns::AsEmailAddressSubscriber
```
### As Contact concern
-The As Contact concern do the following tasks for the includer automatically:
-1. Define the has_many :contact_subscriptions macro as: ``has_many :contact_subscriptions, class_name: 'Unidom::Contact::ContactSubscription', as: :contact``
-2. Define the #is_subscribed_as_contact! method as: ``is_subscribed_as_contact!(by: nil, at: Time.now, name: by.try(:name), primary: true)``
+
+The As Contact concern do the following tasks for the includer automatically:
+1. Define the has_many :contact_subscriptions macro as: ``has_many :contact_subscriptions, class_name: 'Unidom::Contact::ContactSubscription', as: :contact``
+2. Define the #is_subscribed_as_contact! method as: ``is_subscribed_as_contact!(by: nil, at: Time.now, name: by.try(:name), primary: true)``
3. Define the #is_subscribed_as_contact? method as: ``is_subscribed_as_contact?(by: nil, at: Time.now, primary: true)``
### As Subscriber concern
-The As Subscriber concern do the following tasks for the includer automatically:
-1. Define the has_many :contact_subscriptions macro as: ``has_many :contact_subscriptions, class_name: 'Unidom::Contact::ContactSubscription', as: :subscriber``
-2. Define the #subscribe_contact! method as: ``subscribe_contact!(contact, at: Time.now, name: nil, primary: true)``
+
+The As Subscriber concern do the following tasks for the includer automatically:
+1. Define the has_many :contact_subscriptions macro as: ``has_many :contact_subscriptions, class_name: 'Unidom::Contact::ContactSubscription', as: :subscriber``
+2. Define the #subscribe_contact! method as: ``subscribe_contact!(contact, at: Time.now, name: nil, primary: true)``
3. Define the #subscribe_contact? method as: ``subscribe_contact?(contact, at: Time.now, primary: true)``
### As Email Address Subscriber concern
-The As Email Address Subscriber concern do the following tasks for the includer automatically:
-1. Include the As Subscriber concern
+
+The As Email Address Subscriber concern do the following tasks for the includer automatically:
+1. Include the As Subscriber concern
2. Define the has_many :email_addresses macro as: ``has_many :email_addresses, through: :contact_subscriptions, source: :contact, source_type: 'Unidom::Contact::EmailAddress'``