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'``