unidom-common 1.3 → 1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72b239e03d003ae2a4e0f68db103b014417ea67e
4
- data.tar.gz: 24dc122ec9aa546cbbe8565eab0bd56ace09a143
3
+ metadata.gz: 46f0e637b8fede019f80dea128b1aaff90f7901d
4
+ data.tar.gz: b7604abc60c3c05f6163368ea9e28d6cb4cba41d
5
5
  SHA512:
6
- metadata.gz: d0ee19de3aaff418f90faf82cd2cf56e7dee37d42907057317161712d1f76ce7d06aa17321121ed9e22fbc817a3fb06bebc1b0342560c10cf669fd805e6f3a1d
7
- data.tar.gz: b833df4e2a8e3efd2654ab64a379bcf0dd9ac1bbf4c99f6b4724fcdd89a5f3a7c9c78a27faa7bbb2400f34f20c329dd09196c56ff85f8f705f4c0eda3af07d1d
6
+ metadata.gz: ca5afb8e0c42bd8da40546735edaa919357fefe4f0745161abc30b8738596d59c5d020be9ed210c770355a32b2c3f1cf0a9495c43a20bbf49b7e80ee556e0695
7
+ data.tar.gz: ed2bc11249d6934302d5e202b7e5806bc132df713ba7c66be62075d535b856cfa32e23f7a39684ce115515c524176675ef32915e4b31f64480807b3dcb5aa570
data/README.md CHANGED
@@ -7,28 +7,43 @@
7
7
  Unidom (UNIfied Domain Object Model) is a series of domain model engines. The Common domain model engine includes the common models.
8
8
  Unidom (统一领域对象模型)是一系列的领域模型引擎。常用领域模型引擎包括一些常用的模型。
9
9
 
10
+
11
+
10
12
  ## Recent Update
13
+
11
14
  Check out the [Road Map](ROADMAP.md) to find out what's the next.
12
15
  Check out the [Change Log](CHANGELOG.md) to find out what's new.
13
16
 
17
+
18
+
14
19
  ## Usage in Gemfile
20
+
15
21
  ```ruby
16
22
  gem 'unidom-common'
17
23
  ```
18
24
 
25
+
26
+
19
27
  ## Run the Database Migration
28
+
20
29
  ```shell
21
30
  rake db:migrate
22
31
  ```
23
32
  The migration versions starts with 200001.
24
33
  The migration enabled the PostgreSQL uuid-ossp extension.
25
34
 
35
+
36
+
26
37
  ## Include Concern in Models
38
+
27
39
  ```ruby
28
40
  include Unidom::Common::Concerns::ModelExtension
29
41
  ```
30
42
 
43
+
44
+
31
45
  ## Model Extension concern
46
+
32
47
  ```ruby
33
48
  class Project < ActiveRecord::Base
34
49
 
@@ -39,9 +54,17 @@ class Project < ActiveRecord::Base
39
54
 
40
55
  belongs_to :customer
41
56
  belongs_to :team
57
+ belongs_to :place
42
58
 
43
59
  # other fields: code, description
44
60
 
61
+ def kick_off(in: nil)
62
+ assert_present! :in, in
63
+ # An argument error is raised if in is blank.
64
+
65
+ self.place = in
66
+ end
67
+
45
68
  end
46
69
 
47
70
  Project.coded_as('JIRA').valid_at(Time.now).alive(true) # Same as Project.coded_as('JIRA').valid_at.alive
@@ -54,7 +77,10 @@ Project.created_not_before('2015-01-01 00:00:00')
54
77
  Project.audition_transited_to('A').transited_to('C')
55
78
  ```
56
79
 
80
+
81
+
57
82
  ## No-SQL Columns
83
+
58
84
  ```ruby
59
85
  class Project < ActiveRecord::Base
60
86
 
@@ -81,7 +107,10 @@ project.enabled? # true
81
107
  Project.notation_boolean_column_where(:enabled, true) # All enabled projects
82
108
  ```
83
109
 
110
+
111
+
84
112
  ## Numeration
113
+
85
114
  ```ruby
86
115
  binary = 'some string'
87
116
  hex = Unidom::Common::Numeration.hex binary # "736f6d6520737472696e67"
@@ -91,7 +120,10 @@ text = Unidom::Common::Numeration.rev_hex hex # "some string"
91
120
  # convert a hex string to its text value
92
121
  ```
93
122
 
123
+
124
+
94
125
  ## AES 256 Cryptor
126
+
95
127
  ```ruby
96
128
  class IdentityCard
97
129
 
@@ -126,7 +158,10 @@ decrypted = identity_card.decrypt_identification_number
126
158
  # The AES 256 Cryptor also has the #hex_encrypt and the #hex_decrypt methods
127
159
  ```
128
160
 
161
+
162
+
129
163
  ## MD 5 Digester
164
+
130
165
  ```ruby
131
166
  class IdentityCard
132
167
 
@@ -153,7 +188,10 @@ hex_digested = identity_card.hex_digest_identification_number
153
188
  hex_digested == Unidom::Common::Numeration.hex digested # true
154
189
  ```
155
190
 
191
+
192
+
156
193
  ## SHA 256 Digester
194
+
157
195
  ```ruby
158
196
  class IdentityCard
159
197
 
@@ -180,7 +218,10 @@ hex_digested = identity_card.hex_digest_identification_number
180
218
  hex_digested == Unidom::Common::Numeration.hex digested # true
181
219
  ```
182
220
 
221
+
222
+
183
223
  ## SHA 384 Digester
224
+
184
225
  ```ruby
185
226
  class IdentityCard
186
227
 
@@ -207,7 +248,10 @@ hex_digested = identity_card.hex_digest_identification_number
207
248
  hex_digested == Unidom::Common::Numeration.hex digested # true
208
249
  ```
209
250
 
251
+
252
+
210
253
  ## SHA 512 Digester
254
+
211
255
  ```ruby
212
256
  class IdentityCard
213
257
 
@@ -235,7 +279,9 @@ hex_digested == Unidom::Common::Numeration.hex digested # true
235
279
  ```
236
280
 
237
281
 
282
+
238
283
  ## SHA 1 Digester
284
+
239
285
  ```ruby
240
286
  class IdentityCard
241
287
 
@@ -263,7 +309,9 @@ hex_digested == Unidom::Common::Numeration.hex digested # true
263
309
  ```
264
310
 
265
311
 
312
+
266
313
  ## SHA 2 Digester
314
+
267
315
  ```ruby
268
316
  class IdentityCard
269
317
 
@@ -291,7 +339,9 @@ hex_digested == Unidom::Common::Numeration.hex digested # true
291
339
  ```
292
340
 
293
341
 
342
+
294
343
  ## ActiveRecord Migration Naming Convention
344
+
295
345
  ### Domain Models (200YMMDDHHMMSS)
296
346
 
297
347
  <table class='table table-striped table-hover'>
@@ -351,6 +401,18 @@ hex_digested == Unidom::Common::Numeration.hex digested # true
351
401
  <td>The Authorization domain model engine includes the Permission and Authorizing models. 授权领域模型引擎包括权限、授权的模型。</td>
352
402
  </tr>
353
403
 
404
+ <tr>
405
+ <td>[![unidom-action](https://badge.fury.io/rb/unidom-action.svg)](https://github.com/topbitdu/unidom-action)</td>
406
+ <td>200005DDHHMMSS</td>
407
+ <td>
408
+ - Reason
409
+ - State Transition
410
+ - Obsolescence
411
+ - Acting
412
+ </td>
413
+ <td>The Action domain model engine includes the Reason, State Transition, Obsolescene, and the Acting models. 审计领域模型引擎包括原因、状态迁移、废弃和行为日志的模型。</td>
414
+ </tr>
415
+
354
416
  <tr>
355
417
  <td>[![unidom-standard](https://badge.fury.io/rb/unidom-standard.svg)](https://github.com/topbitdu/unidom-standard)</td>
356
418
  <td>200006DDHHMMSS</td>
@@ -469,6 +531,19 @@ hex_digested == Unidom::Common::Numeration.hex digested # true
469
531
  <td>The Inventory domain model engine includes the Serialized Inventory Item, the Grouped Inventory Item, the Lot, and the Inventory Item Variance models. 库存领域模型引擎包括序列化库存项、分组库存项、批量和库存项变化的模型。</td>
470
532
  </tr>
471
533
 
534
+ <tr>
535
+ <td>[![unidom-shipment](https://badge.fury.io/rb/unidom-shipment.svg)](https://github.com/topbitdu/unidom-shipment)</td>
536
+ <td>200210DDHHMMSS</td>
537
+ <td>
538
+ - Shipment
539
+ - Shipment Item
540
+ - Shipment Package
541
+ - Shipment Package Item
542
+ - Shipment Receipt
543
+ </td>
544
+ <td>The Shipment domain model engine includes the Shipment, Shipment Item, Shipment Package, Shipment Package Item, and Shipment Receipt model. 装运领域模型引擎包括装运、装运项、装运包裹、装运包裹项、装运收据的模型。</td>
545
+ </tr>
546
+
472
547
 
473
548
  <tr>
474
549
  <td>[![unidom-position](https://badge.fury.io/rb/unidom-position.svg)](https://github.com/topbitdu/unidom-position)</td>
@@ -497,6 +572,7 @@ hex_digested == Unidom::Common::Numeration.hex digested # true
497
572
  </table>
498
573
 
499
574
  ### Country Extensions (200YMM9NNNMMSS)
575
+
500
576
  The YMM part should be identical to the relative part of the Domain Models.
501
577
  The NNN is the numeric code of [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1 "codes for the names of countries, dependent territories, and special areas of geographical interest").
502
578
  The numeric code of China is 156.
@@ -136,6 +136,10 @@ module Unidom::Common::Concerns::ModelExtension
136
136
  end
137
137
  end
138
138
 
139
+ def assert_present!(name, value)
140
+ raise ArgumentError.new("The #{name} argument is required.") if value.blank?
141
+ end
142
+
139
143
  end
140
144
 
141
145
  module ClassMethods
@@ -174,6 +178,10 @@ module Unidom::Common::Concerns::ModelExtension
174
178
  end
175
179
  end
176
180
 
181
+ def assert_present!(name, value)
182
+ raise ArgumentError.new("The #{name} argument is required.") if value.blank?
183
+ end
184
+
177
185
  end
178
186
 
179
187
  end
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Common
3
- VERSION = '1.3'.freeze
3
+ VERSION = '1.4'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-common
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.3'
4
+ version: '1.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-28 00:00:00.000000000 Z
11
+ date: 2016-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails