unidom-certificate 2.1 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 364da9418346c3ba8762a9ef20f57b8e997ae1a5
4
- data.tar.gz: b8b8e9dcf061908f5a5c8a19eb2a0c56b36aa46c
3
+ metadata.gz: dd70eeabf4ae48d02909c4530a68f2fccb3d63bd
4
+ data.tar.gz: 12af2197e143c187cfa930b44fa38d7ffe5c9bff
5
5
  SHA512:
6
- metadata.gz: 647d837db97b0993e9cb6e5a9698470acda03692f39efdf031b14ef7078ddc2777be687c53a8ceec583d3b2d4e38868634507455d5cae31fce484f5bcb140ed1
7
- data.tar.gz: 5fb4eec191e06ede9d7af3b22eaebcbc7c4c857f40c89119734e7f87f51a7c23f5a7d32aa0db02eadf3d046c4281dd76a89a2d3f5e6e7c47f04b487d4499709d
6
+ metadata.gz: 94dd5fb13696c9572e269120a2e3c5000dc0babaf7f70d828ad2321c48702bc5a4428f9fb6cc11519e5477622eeff23683b7f25a085c45709779270d7b10daa0
7
+ data.tar.gz: 4b1dd04d8e254be707db42d6c29d3d0884e5d4d324fbaa4fba78cf5af38596f62b125a924a3150e5039054a988a6f3a5d873d9d7fe5024b1f41e5f3a6f20ca70
data/README.md CHANGED
@@ -87,6 +87,8 @@ end
87
87
 
88
88
  ## RSpec examples
89
89
 
90
+ ### RSpec example manifest (run automatically)
91
+
90
92
  ```ruby
91
93
  # spec/models/unidom_spec.rb
92
94
  require 'unidom/certificate/models_rspec'
@@ -97,3 +99,87 @@ require 'unidom/certificate/types_rspec'
97
99
  # spec/validators/unidom_spec.rb
98
100
  require 'unidom/certificate/validators_rspec'
99
101
  ```
102
+
103
+ ### RSpec shared examples (to be integrated)
104
+
105
+ ```ruby
106
+ # The Unidom::Certificate::China::BusinessLicense model, & the Unidom::Certificate::China::IdentityCard model already include the Unidom::Certificate::Concerns::AsCertification concern
107
+
108
+ # app/models/your_certification.rb
109
+ class YourCertification < ApplicationRecord
110
+
111
+ include Unidom::Common::Concerns::ModelExtension
112
+ include Unidom::Certificate::Concerns::AsCertification
113
+
114
+ end
115
+
116
+ # lib/unidom.rb
117
+ def initialize_unidom
118
+
119
+ Unidom::Party::Company.class_eval do
120
+ include Unidom::Certificate::Concerns::AsCertificated
121
+ end
122
+
123
+ Unidom::Party::Person.class_eval do
124
+ include Unidom::Certificate::Concerns::AsCertificated
125
+ end
126
+
127
+ Unidom::Party::Shop.class_eval do
128
+ include Unidom::Certificate::Concerns::AsCertificated
129
+ end
130
+
131
+ end
132
+
133
+ # spec/rails_helper.rb
134
+ require 'unidom'
135
+ initialize_unidom
136
+
137
+ # spec/support/unidom_rspec_shared_examples.rb
138
+ require 'unidom/certificate/rspec_shared_examples'
139
+
140
+ # spec/models/unidom/party/company_spec.rb
141
+ describe Unidom::Party::Company, type: :model do
142
+
143
+ model_attribtues = {
144
+ name: 'Tesla'
145
+ }
146
+
147
+ it_behaves_like 'Unidom::Certificate::Concerns::AsCertificated', model_attribtues
148
+
149
+ end
150
+
151
+ # spec/models/unidom/party/person_spec.rb
152
+ describe Unidom::Party::Person, type: :model do
153
+
154
+ model_attribtues = {
155
+ name: 'Tim'
156
+ }
157
+
158
+ it_behaves_like 'Unidom::Certificate::Concerns::AsCertificated', model_attribtues
159
+
160
+ end
161
+
162
+ # spec/models/unidom/party/shop_spec.rb
163
+ describe Unidom::Party::Shop, type: :model do
164
+
165
+ model_attribtues = {
166
+ name: 'WalMart'
167
+ }
168
+
169
+ it_behaves_like 'Unidom::Certificate::Concerns::AsCertificated', model_attribtues
170
+
171
+ end
172
+
173
+ # spec/models/your_certification_spec.rb
174
+ describe YourCertification, type: :model do
175
+
176
+ model_attribtues = {
177
+ name: 'Your Certification Name',
178
+ serial_number: '12345678',
179
+ issued_on: '2020-01-01'
180
+ }
181
+
182
+ it_behaves_like 'Unidom::Certificate::Concerns::AsCertification', model_attribtues
183
+
184
+ end
185
+ ```
@@ -19,9 +19,8 @@ class Unidom::Certificate::Certificating < Unidom::Certificate::ApplicationRecor
19
19
  # 由认证者 certificator 用证书 certification 去认证的人或者机构 certificated ,认证时间是: opened_at。
20
20
  def self.certificate!(certification: nil, certificated: nil, certificator: nil, opened_at: Time.now)
21
21
  assert_present! :certification, certification
22
- #raise ArgumentError.new('The certification argument is required.') if certification.blank?
23
- raise ArgumentError.new('The certificated argument is required.' ) if certificated.blank?
24
- raise ArgumentError.new('The opened_at argument is required.' ) if opened_at.blank?
22
+ assert_present! :certificated, certificated
23
+ assert_present! :opened_at, opened_at
25
24
 
26
25
  attributes = { opened_at: opened_at }
27
26
  if certificator.present?
@@ -4,6 +4,7 @@
4
4
  module Unidom::Certificate::Concerns::AsCertification
5
5
 
6
6
  extend ActiveSupport::Concern
7
+ include Unidom::Common::Concerns::ArgumentValidation
7
8
 
8
9
  included do |includer|
9
10
 
@@ -14,7 +15,8 @@ module Unidom::Certificate::Concerns::AsCertification
14
15
  # 如:mcse.certificate! person, by: bill_gates, at: Time.now
15
16
  def certificate!(certificated, by: nil, at: Time.now)
16
17
 
17
- raise ArgumentError.new('The certificated argument is required.') if certificated.blank?
18
+ assert_present! :certificated, certificated
19
+ #raise ArgumentError.new('The certificated argument is required.') if certificated.blank?
18
20
  raise ArgumentError.new('The by argument is required.' ) if by.blank?
19
21
  raise ArgumentError.new('The at argument is required.' ) if at.blank?
20
22
 
@@ -0,0 +1,23 @@
1
+ shared_examples 'Unidom::Certificate::Concerns::AsCertificated' do |model_attributes|
2
+
3
+ context do
4
+
5
+ certificating_1_attribtues = {
6
+ certificator_id: SecureRandom.uuid,
7
+ certificator_type: 'Unidom::Certificate::Certificator::Mock',
8
+ certification_id: SecureRandom.uuid,
9
+ certification_type: 'Unidom::Certificate::Certification::Mock'
10
+ }
11
+
12
+ certificating_2_attribtues = {
13
+ certificator_id: SecureRandom.uuid,
14
+ certificator_type: 'Unidom::Certificate::Certificator::Mock',
15
+ certification_id: SecureRandom.uuid,
16
+ certification_type: 'Unidom::Certificate::Certification::Mock'
17
+ }
18
+
19
+ it_behaves_like 'has_many', model_attributes, :certificatings, Unidom::Certificate::Certificating, [ certificating_1_attribtues, certificating_2_attribtues ]
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ shared_examples 'Unidom::Certificate::Concerns::AsCertification' do |model_attributes|
2
+
3
+ context do
4
+
5
+ certificating_1_attribtues = {
6
+ certificator_id: SecureRandom.uuid,
7
+ certificator_type: 'Unidom::Certificate::Certificator::Mock',
8
+ certificated_id: SecureRandom.uuid,
9
+ certificated_type: 'Unidom::Certificate::Certificated::Mock'
10
+ }
11
+
12
+ certificating_2_attribtues = {
13
+ certificator_id: SecureRandom.uuid,
14
+ certificator_type: 'Unidom::Certificate::Certificator::Mock',
15
+ certificated_id: SecureRandom.uuid,
16
+ certificated_type: 'Unidom::Certificate::Certificated::Mock'
17
+ }
18
+
19
+ it_behaves_like 'has_many', model_attributes, :certificatings, Unidom::Certificate::Certificating, [ certificating_1_attribtues, certificating_2_attribtues ]
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,2 @@
1
+ require 'rspec/models/unidom/certificate/concerns/as_certificated_shared_examples'
2
+ require 'rspec/models/unidom/certificate/concerns/as_certification_shared_examples'
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Certificate
3
- VERSION = '2.1'.freeze
3
+ VERSION = '2.1.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-certificate
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.1'
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-28 00:00:00.000000000 Z
11
+ date: 2017-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common
@@ -51,10 +51,13 @@ files:
51
51
  - config/routes.rb
52
52
  - db/migrate/20010201000000_create_unidom_certificatings.rb
53
53
  - lib/rspec/models/unidom/certificate/certificating_spec.rb
54
+ - lib/rspec/models/unidom/certificate/concerns/as_certificated_shared_examples.rb
55
+ - lib/rspec/models/unidom/certificate/concerns/as_certification_shared_examples.rb
54
56
  - lib/tasks/certificate_tasks.rake
55
57
  - lib/unidom/certificate.rb
56
58
  - lib/unidom/certificate/engine.rb
57
59
  - lib/unidom/certificate/models_rspec.rb
60
+ - lib/unidom/certificate/rspec_shared_examples.rb
58
61
  - lib/unidom/certificate/types_rspec.rb
59
62
  - lib/unidom/certificate/validators_rspec.rb
60
63
  - lib/unidom/certificate/version.rb