unidom-common 2.1.1 → 3.0

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
  SHA256:
3
- metadata.gz: 444af65d978a141ce0ed608a61f28d98824f44183a70648de9259e8bec786987
4
- data.tar.gz: c91d48fb9b988681022988fd2215b1cea8949c6fe9a421c9d6ea152bffdf8a27
3
+ metadata.gz: 9c71146870a9030fc64208ac28ed4bc6f7a92530432a95ffcbb5166d13ad7527
4
+ data.tar.gz: b045e9c5680d646c078d9b6b16e1ecac57f6b4b5db15c48b37e0158919ef5141
5
5
  SHA512:
6
- metadata.gz: 996ed1380af6526a1bc4ee7f93fba005e26d8f9c97d2444f36955d2808b3821940b0fb946b783cfbd4c236036818bb15fe71f9cf216d22ffe239d61b89c18b37
7
- data.tar.gz: 762802f2bcce075b1d0716ebb50f31af84ed2ad81a9eec88eb6f98585607ae0a9a7a1c5aff5f5fa3195e0f40661467c1558895d1da664dac9062b5b6df00ac69
6
+ metadata.gz: 5dd9f8e8d2a8f5f0daf8185c3f3162a1ad6b0290c2433914a34f4198e02f7b7a522a47cb857bc9c34c3c06c5c4899bea85120fb6ca2d190bb2425d2e00f4945c
7
+ data.tar.gz: 7f4259427bbb8377258e12c630b19eec5aff6310df53201d2d56ae6b927759c200d3082b771fa1161b1b8aa684fb482b95de92c7366c45406e102780062844f6
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![Dependency Status](https://gemnasium.com/badges/github.com/topbitdu/unidom-common.svg)](https://gemnasium.com/github.com/topbitdu/unidom-common)
8
8
 
9
9
  Unidom (UNIfied Domain Object Model) is a series of domain model engines. The Common domain model engine includes the common models.
10
- Unidom (统一领域对象模型)是一系列的领域模型引擎。常用领域模型引擎包括一些常用的模型。
10
+ Unidom (统一领域对象模型)是一系列的领域模型引擎。常用领域模型引擎包括一些常用的模型。
11
11
 
12
12
 
13
13
 
@@ -134,7 +134,7 @@ Project.notation_boolean_column_where(:enabled, true) # All enabled projects
134
134
 
135
135
  ```ruby
136
136
  # db/migrate/YYYYMMDDHHMMSS_create_people.rb
137
- class CreatePeople < ActiveRecord::Migration[5.0]
137
+ class CreatePeople < ActiveRecord::Migration[6.0]
138
138
 
139
139
  def change
140
140
 
@@ -189,7 +189,7 @@ Person.passport_number_is('E00000000').first==person # true
189
189
 
190
190
  ```ruby
191
191
  # db/migrate/YYYYMMDDHHMMSS_create_orderings.rb
192
- class CreateOrderings < ActiveRecord::Migration[5.0]
192
+ class CreateOrderings < ActiveRecord::Migration[6.0]
193
193
 
194
194
  def change
195
195
 
@@ -553,268 +553,31 @@ end
553
553
 
554
554
  ### Domain Models (200YMMDDHHMMSS)
555
555
 
556
- <table class='table table-striped table-hover'>
557
- <caption></caption>
558
- <thead>
559
-
560
- <tr>
561
- <th>Ruby Gem</th>
562
- <th>Migration</th>
563
- <th>Model</th>
564
- <th>Description</th>
565
- </tr>
566
-
567
- </thead>
568
- <tbody>
569
-
570
- <tr>
571
- <td><a href="https://github.com/topbitdu/unidom-common">unidom-common</a></td>
572
- <td>200001DDHHMMSS</td>
573
- <td>-</td>
574
- <td>The Common domain model engine includes the common models. 常用领域模型引擎包括一些常用的模型。</td>
575
- </tr>
576
-
577
- <tr>
578
- <td><a href="https://github.com/topbitdu/unidom-visitor">unidom-visitor</a></td>
579
- <td>200002DDHHMMSS</td>
580
- <td>
581
- <ul>
582
- <li>Identificating</li>
583
- <li>Authenticating</li>
584
- <li>Recognization</li>
585
- <li>User</li>
586
- <li>Guest</li>
587
- <li>Password</li>
588
- <ul>
589
- </td>
590
- <td>The Visitor domain model engine includes Identificating, Authenticating, Recognization, Visitor (User &amp; Guest), and Password models. 访问者领域模型引擎包括身份标识、身份鉴别、身份识别、访问者(用户和游客)、密码的模型。</td>
591
- </tr>
592
-
593
- <tr>
594
- <td><a href="https://github.com/topbitdu/unidom-category">unidom-category</a></td>
595
- <td>200003DDHHMMSS</td>
596
- <td>
597
- <ul>
598
- <li>Category</li>
599
- <li>Categorizing</li>
600
- <li>Category Rollup</li>
601
- <li>Category Associating</li>
602
- <ul>
603
- </td>
604
- <td>The Category domain model engine includes Category and its relative models. 类别领域模型引擎包括类别及其相关的模型。</td>
605
- </tr>
606
-
607
- <tr>
608
- <td><a href="https://github.com/topbitdu/unidom-authorization">unidom-authorization</a></td>
609
- <td>200004DDHHMMSS</td>
610
- <td>
611
- <ul>
612
- <li>Permission</li>
613
- <li>Authorizing</li>
614
- <ul>
615
- </td>
616
- <td>The Authorization domain model engine includes the Permission and Authorizing models. 授权领域模型引擎包括权限、授权的模型。</td>
617
- </tr>
618
-
619
- <tr>
620
- <td><a href="https://github.com/topbitdu/unidom-action">unidom-action</a></td>
621
- <td>200005DDHHMMSS</td>
622
- <td>
623
- <ul>
624
- <li>Reason</li>
625
- <li>State Transition</li>
626
- <li>Obsolescing</li>
627
- <li>Acting</li>
628
- </ul>
629
- </td>
630
- <td>The Action domain model engine includes the Reason, State Transition, Obsolescing, and the Acting models. 审计领域模型引擎包括原因、状态迁移、废弃和行为日志的模型。</td>
631
- </tr>
632
-
633
- <tr>
634
- <td><a href="https://github.com/topbitdu/unidom-standard">unidom-standard</a></td>
635
- <td>200006DDHHMMSS</td>
636
- <td>
637
- <ul>
638
- <li>Standard</li>
639
- <li>Standard Associating</li>
640
- </ul>
641
- </td>
642
- <td>The Standard domain model engine includes the Standard model and the Standard Associating model. 标准领域模型引擎包括行为标准和标准关联的模型。</td>
643
- </tr>
644
-
645
-
646
- <tr>
647
- <td><a href="https://github.com/topbitdu/unidom-party">unidom-party</a></td>
648
- <td>200101DDHHMMSS</td>
649
- <td>
650
- <ul>
651
- <li>Person</li>
652
- <li>Shop</li>
653
- <li>Company</li>
654
- <li>Government Agency</li>
655
- <li>Party Relation</li>
656
- </ul>
657
- </td>
658
- <td>The Party domain model engine includes the Person, Shop, Company, Government Agency, and the Party Relation models. 参与者领域模型引擎包括个人、店铺、公司、政府机构、参与者关系的模型。</td>
659
- </tr>
660
-
661
- <tr>
662
- <td><a href="https://github.com/topbitdu/unidom-certificate">unidom-certificate</a></td>
663
- <td>200102DDHHMMSS</td>
664
- <td>
665
- <ul>
666
- <li>Certificating</li>
667
- </ul>
668
- </td>
669
- <td>The Certificate domain model engine includes the Certificating model.
670
- 证书领域模型引擎包括证书认证的模型。</td>
671
- </tr>
672
-
673
- <tr>
674
- <td><a href="https://github.com/topbitdu/unidom-contact">unidom-contact</a></td>
675
- <td>200103DDHHMMSS</td>
676
- <td>
677
- <ul>
678
- <li>Contact Subscription</li>
679
- <li>Email Address</li>
680
- </ul>
681
- </td>
682
- <td>The Contact domain model engine includes the Contact Subscription and Email Address models. 联系方式领域模型引擎包括联系方式订阅和电子邮箱地址的模型。</td>
683
- </tr>
684
-
685
- <tr>
686
- <td><a href="https://github.com/topbitdu/unidom-geo">unidom-geo</a></td>
687
- <td>200104DDHHMMSS</td>
688
- <td>
689
- <ul>
690
- <li>Location</li>
691
- <li>Locating</li>
692
- </ul>
693
- </td>
694
- <td>The Geo domain model engine includes the Location and Locating models. 地理领域模型引擎包括位置和定位的模型。</td>
695
- </tr>
696
-
697
-
698
- <tr>
699
- <td><a href="https://github.com/topbitdu/unidom-article_number">unidom-article_number</a></td>
700
- <td>200201DDHHMMSS</td>
701
- <td>
702
- <ul>
703
- <li>Marking</li>
704
- <li>EAN 13 Barcode</li>
705
- <li>EAN 8 Barcode</li>
706
- </ul>
707
- </td>
708
- <td>The Article Number domain model engine includes Marking, EAN-13, and EAN-8 models. 物品编码领域模型引擎包括打码、EAN-13和EAN-8的模型。</td>
709
- </tr>
710
-
711
- <tr>
712
- <td><a href="https://github.com/topbitdu/unidom-product">unidom-product</a></td>
713
- <td>200202DDHHMMSS</td>
714
- <td>
715
- <ul>
716
- <li>Product</li>
717
- <li>Product Associating</li>
718
- </ul>
719
- </td>
720
- <td>The Product domain model engine includes Product and Produt Associating models. 产品领域模型引擎包括产品和产品关联的模型。</td>
721
- </tr>
722
-
723
- <tr>
724
- <td><a href="https://github.com/topbitdu/unidom-price">unidom-price</a></td>
725
- <td>200203DDHHMMSS</td>
726
- <td>
727
- <ul>
728
- <li>Price</li>
729
- </ul>
730
- </td>
731
- <td>The Price domain model engine includes Price and its relative models. 价格领域模型引擎包括定价及其相关的模型。</td>
732
- </tr>
733
-
734
- <tr>
735
- <td><a href="https://github.com/topbitdu/unidom-shopping">unidom-shopping</a></td>
736
- <td>200205DDHHMMSS</td>
737
- <td>
738
- <ul>
739
- <li>Shopping Cart</li>
740
- <li>Shopping Item</li>
741
- </ul>
742
- </td>
743
- <td>The Shopping domain model engine includes Shopping Cart and Shopping Item models. 购物领域模型引擎包括购物车和购物项的模型。</td>
744
- </tr>
745
-
746
- <tr>
747
- <td><a href="https://github.com/topbitdu/unidom-order">unidom-order</a></td>
748
- <td>200206DDHHMMSS</td>
749
- <td>
750
- <ul>
751
- <li>Order</li>
752
- <li>Order Item</li>
753
- <li>Order Adjustment</li>
754
- </ul>
755
- </td>
756
- <td>The Order domain model engine includes Order, Order Item, and Order Adjustment models. 订单领域模型引擎包括订单、订单项和订单调整的模型。</td>
757
- </tr>
758
-
759
- <tr>
760
- <td><a href="https://github.com/topbitdu/unidom-inventory">unidom-inventory</a></td>
761
- <td>200209DDHHMMSS</td>
762
- <td>
763
- <ul>
764
- <li>Serialized Inventory Item</li>
765
- <li>Grouped Inventory Item</li>
766
- <li>Lot</li>
767
- <li>Inventory Item Variance</li>
768
- </ul>
769
- </td>
770
- <td>The Inventory domain model engine includes the Serialized Inventory Item, the Grouped Inventory Item, the Lot, and the Inventory Item Variance models. 库存领域模型引擎包括序列化库存项、分组库存项、批量和库存项变化的模型。</td>
771
- </tr>
772
-
773
- <tr>
774
- <td><a href="https://github.com/topbitdu/unidom-shipment">unidom-shipment</a></td>
775
- <td>200210DDHHMMSS</td>
776
- <td>
777
- <ul>
778
- <li>Shipment</li>
779
- <li>Shipment Item</li>
780
- <li>Shipment Package</li>
781
- <li>Shipment Package Item</li>
782
- <li>Shipment Receipt</li>
783
- </ul>
784
- </td>
785
- <td>The Shipment domain model engine includes the Shipment, Shipment Item, Shipment Package, Shipment Package Item, and Shipment Receipt model. 装运领域模型引擎包括装运、装运项、装运包裹、装运包裹项、装运收据的模型。</td>
786
- </tr>
787
-
788
-
789
- <tr>
790
- <td><a href="https://github.com/topbitdu/unidom-position">unidom-position</a></td>
791
- <td>200402DDHHMMSS</td>
792
- <td>
793
- <ul>
794
- <li>Occupation</li>
795
- <li>Position</li>
796
- <li>Post</li>
797
- <li>Position Reporting Structure</li>
798
- </ul>
799
- </td>
800
- <td>The Position domain model engine includes the Occupation, Position, Post, and Position Reporting Structure models.
801
- 职位领域模型引擎包括职业、职位、岗位及岗位报告关系模型。</td>
802
- </tr>
803
-
804
- <tr>
805
- <td><a href="https://github.com/topbitdu/unidom-accession">unidom-accession</a></td>
806
- <td>200405DDHHMMSS</td>
807
- <td>
808
- <ul>
809
- <li>Post Fulfillment</li>
810
- </ul>
811
- </td>
812
- <td>The Accession domain model engine includes the Post Fulfillment and its relative models. 就职领域模型引擎包括岗位履行及其相关的模型。</td>
813
- </tr>
814
-
815
-
816
- </tbody>
817
- </table>
556
+ |Ruby Gem|Migration|Model|Description|
557
+ |--- |--- |--- |--- |
558
+ |unidom-common|200001DDHHMMSS|-|The Common domain model engine includes the common models. 常用领域模型引擎包括一些常用的模型。|
559
+ |unidom-visitor|200002DDHHMMSS|Identificating, Authenticating, Recognization, User, Guest, Password|The Visitor domain model engine includes Identificating, Authenticating, Recognization, Visitor (User & Guest), and Password models. 访问者领域模型引擎包括身份标识、身份鉴别、身份识别、访问者(用户和游客)、密码的模型。|
560
+ |unidom-category|200003DDHHMMSS|Category, Categorizing, Category Rollup, Category Associating|The Category domain model engine includes Category and its relative models. 类别领域模型引擎包括类别及其相关的模型。|
561
+ |unidom-authorization|200004DDHHMMSS|Permission, Authorizing|The Authorization domain model engine includes the Permission and Authorizing models. 授权领域模型引擎包括权限、授权的模型。|
562
+ |unidom-action|200005DDHHMMSS|Reason, State Transition, Obsolescing, Acting|The Action domain model engine includes the Reason, State Transition, Obsolescing, and the Acting models. 审计领域模型引擎包括原因、状态迁移、废弃和行为日志的模型。|
563
+ |unidom-standard|200006DDHHMMSS|Standard, Standard Associating|The Standard domain model engine includes the Standard model and the Standard Associating model. 标准领域模型引擎包括行为标准和标准关联的模型。|
564
+ |unidom-party|200101DDHHMMSS|Person, Shop, Company, Government Agency, Party Relation|The Party domain model engine includes the Person, Shop, Company, Government Agency, and the Party Relation models. 参与者领域模型引擎包括个人、店铺、公司、政府机构、参与者关系的模型。|
565
+ |unidom-certificate|200102DDHHMMSS|Certificating|The Certificate domain model engine includes the Certificating model.
566
+ 证书领域模型引擎包括证书认证的模型。|
567
+ |unidom-contact|200103DDHHMMSS|Contact Subscription, Email Address|The Contact domain model engine includes the Contact Subscription and Email Address models. 联系方式领域模型引擎包括联系方式订阅和电子邮箱地址的模型。|
568
+ |unidom-geo|200104DDHHMMSS|Location, Locating|The Geo domain model engine includes the Location and Locating models. 地理领域模型引擎包括位置和定位的模型。|
569
+ |unidom-article_number|200201DDHHMMSS|Marking, EAN 13 Barcode, EAN 8 Barcode|The Article Number domain model engine includes Marking, EAN-13, and EAN-8 models. 物品编码领域模型引擎包括打码、EAN-13和EAN-8的模型。|
570
+ |unidom-product|200202DDHHMMSS|Product, Product Associating|The Product domain model engine includes Product and Produt Associating models. 产品领域模型引擎包括产品和产品关联的模型。|
571
+ |unidom-price|200203DDHHMMSS|Price|The Price domain model engine includes Price and its relative models. 价格领域模型引擎包括定价及其相关的模型。|
572
+ |unidom-shopping|200205DDHHMMSS|Shopping Cart, Shopping Item|The Shopping domain model engine includes Shopping Cart and Shopping Item models. 购物领域模型引擎包括购物车和购物项的模型。|
573
+ |unidom-order|200206DDHHMMSS|Order, Order Item, Order Adjustment|The Order domain model engine includes Order, Order Item, and Order Adjustment models. 订单领域模型引擎包括订单、订单项和订单调整的模型。|
574
+ |unidom-inventory|200209DDHHMMSS|Serialized Inventory Item, Grouped Inventory Item, Lot, Inventory Item Variance|The Inventory domain model engine includes the Serialized Inventory Item, the Grouped Inventory Item, the Lot, and the Inventory Item Variance models. 库存领域模型引擎包括序列化库存项、分组库存项、批量和库存项变化的模型。|
575
+ |unidom-shipment|200210DDHHMMSS|Shipment, Shipment Item, Shipment Package, Shipment Package Item, Shipment Receipt|The Shipment domain model engine includes the Shipment, Shipment Item, Shipment Package, Shipment Package Item, and Shipment Receipt model. 装运领域模型引擎包括装运、装运项、装运包裹、装运包裹项、装运收据的模型。|
576
+ |unidom-position|200402DDHHMMSS|Occupation, Position, Post, Position Reporting Structure|The Position domain model engine includes the Occupation, Position, Post, and Position Reporting Structure models.
577
+ 职位领域模型引擎包括职业、职位、岗位及岗位报告关系模型。|
578
+ |unidom-accession|200405DDHHMMSS|Post Fulfillment|The Accession domain model engine includes the Post Fulfillment and its relative models. 就职领域模型引擎包括岗位履行及其相关的模型。|
579
+ |unidom-stapar|200601DDHHMMSS|Sample, Matching|The Statistical Approach of Pattern Recognition domain model engine includes the Sample and Matching and its relative models. 统计模式识别领域模型引擎包括采样、匹配的模型。|
580
+
818
581
 
819
582
  ### Country Extensions (200YMM9NNNMMSS)
820
583
 
@@ -41,7 +41,7 @@ module Unidom::Common::Concerns::Aes256Cryptor
41
41
 
42
42
  end
43
43
 
44
- module ClassMethods
44
+ class_methods do
45
45
 
46
46
  def encryption_algorithm
47
47
  'AES-256-CBC'
@@ -60,7 +60,9 @@ module Unidom::Common::Concerns::Aes256Cryptor
60
60
  cipher = OpenSSL::Cipher::AES.new(256, 'CBC')
61
61
  cipher.encrypt
62
62
  cipher.padding = aes_256_padding
63
- cipher.key = key
63
+
64
+ times = key.length/cipher.key_len>=1 ? 1 : cipher.key_len/key.length+1
65
+ cipher.key = (key*times)[0..cipher.key_len-1]
64
66
 
65
67
  cipher.update(message)+cipher.final
66
68
 
@@ -77,7 +79,10 @@ module Unidom::Common::Concerns::Aes256Cryptor
77
79
  cipher = OpenSSL::Cipher::AES.new(256, 'CBC')
78
80
  cipher.decrypt
79
81
  cipher.padding = aes_256_padding
80
- cipher.key = key
82
+ #cipher.key = key
83
+
84
+ times = key.length/cipher.key_len>=1 ? 1 : cipher.key_len/key.length+1
85
+ cipher.key = (key*times)[0..cipher.key_len-1]
81
86
 
82
87
  cipher.update(encoded)+cipher.final
83
88
 
@@ -140,6 +140,19 @@ module Unidom::Common::Concerns::ModelExtension
140
140
  end
141
141
  end
142
142
 
143
+ ##
144
+ # 抽取验证错误。
145
+ def extract_errors
146
+ refined_errors = {}
147
+ self.errors.messages.each do | name, messages |
148
+ details = errors.details[name]
149
+ refined_errors[name] = []
150
+ messages.count.times { |i| refined_errors[name] << details[i].merge(message: messages[i]) }
151
+ end
152
+ refined_errors
153
+ end
154
+
155
+
143
156
  end
144
157
 
145
158
  module ClassMethods
@@ -1,38 +1,44 @@
1
- ##
2
- # Engine Extension 是为 Rails 引擎提供的扩展关注点。
3
- # .enable_initializer 方法简化了知识层枚举和数据库迁移脚本的加载。
4
-
5
- module Unidom::Common::EngineExtension
6
-
7
- extend ActiveSupport::Concern
8
-
9
- #included do |includer|
10
- #end
11
-
12
- module ClassMethods
1
+ module Unidom
2
+ module Common
13
3
 
14
4
  ##
15
- # 设置初始化器的开关。如:
16
- # Unidom::Common::EngineExtension.enable_initializer enum_enabled: true, migration_enabled: false
17
- # enum_enabled 表明是否加载枚举型。
18
- # migration_enabled 表明是否运行领域模型数据库迁移脚本,同时也表明加载对应的领域模型。
19
- def enable_initializer(enum_enabled: false, migration_enabled: false)
20
-
21
- if enum_enabled
22
- require 'unidom/common/yaml_helper'
23
- initializer :load_config_initializers do |app|
24
- Unidom::Common::YamlHelper.load_enum config: app.config, root: config.root
25
- end
26
- end
5
+ # Engine Extension 是为 Rails 引擎提供的扩展关注点。
6
+ # .enable_initializer 方法简化了知识层枚举和数据库迁移脚本的加载。
7
+ module EngineExtension
8
+
9
+ extend ActiveSupport::Concern
10
+
11
+ #included do |includer|
12
+ #end
13
+
14
+ #module ClassMethods
15
+ class_methods do
16
+
17
+ ##
18
+ # 设置初始化器的开关。如:
19
+ # Unidom::Common::EngineExtension.enable_initializer enum_enabled: true, migration_enabled: false
20
+ # enum_enabled 表明是否加载枚举型。
21
+ # migration_enabled 表明是否运行领域模型数据库迁移脚本,同时也表明加载对应的领域模型。
22
+ def enable_initializer(enum_enabled: false, migration_enabled: false)
23
+
24
+ if enum_enabled
25
+ require 'unidom/common/yaml_helper'
26
+ initializer :load_config_initializers do |app|
27
+ Unidom::Common::YamlHelper.load_enum config: app.config, root: config.root
28
+ end
29
+ end
30
+
31
+ if migration_enabled
32
+ initializer :append_migrations do |app|
33
+ config.paths['db/migrate'].expanded.each { |expanded_path| app.config.paths['db/migrate'] << expanded_path } unless Unidom::Common::Neglection.namespace_neglected?(self.class.name)||app.root.to_s.match(root.to_s)
34
+ end
35
+ end
27
36
 
28
- if migration_enabled
29
- initializer :append_migrations do |app|
30
- config.paths['db/migrate'].expanded.each { |expanded_path| app.config.paths['db/migrate'] << expanded_path } unless Unidom::Common::Neglection.namespace_neglected?(self.class.name)||app.root.to_s.match(root.to_s)
31
37
  end
38
+
32
39
  end
33
40
 
34
41
  end
35
42
 
36
43
  end
37
-
38
44
  end
@@ -1,20 +1,25 @@
1
- ##
2
- # Neglection 根据配置信息忽略指定的类或者命名空间。
1
+ module Unidom
2
+ module Common
3
3
 
4
- class Unidom::Common::Neglection
4
+ ##
5
+ # Neglection 根据配置信息忽略指定的类或者命名空间。
6
+ class Neglection
5
7
 
6
- ##
7
- # 判断指定的类名是否被忽略。如:
8
- # Unidom::Common::Neglection.namespace_neglected? 'Namespace::ClassName'
9
- # 在应用的 config/initializers/unidom.rb 文件中配置如下代码,即可忽略 Namespace::ClassName 这个类。
10
- # Unidom::Common.configure do |options|
11
- # # The migrations inside the following namespaces will be ignored. The models inside the following namespaces won't be defined.
12
- # options[:neglected_namespaces] = %w{
13
- # Namespace::ClassName
14
- # }
15
- def self.namespace_neglected?(class_name)
16
- neglected_namespaces = Unidom::Common.try(:options).try(:[], :neglected_namespaces)
17
- neglected_namespaces.present? ? neglected_namespaces.include?(class_name.to_s.deconstantize) : false
18
- end
8
+ ##
9
+ # 判断指定的类名是否被忽略。如:
10
+ # Unidom::Common::Neglection.namespace_neglected? 'Namespace::ClassName'
11
+ # 在应用的 config/initializers/unidom.rb 文件中配置如下代码,即可忽略 Namespace::ClassName 这个类。
12
+ # Unidom::Common.configure do |options|
13
+ # # The migrations inside the following namespaces will be ignored. The models inside the following namespaces won't be defined.
14
+ # options[:neglected_namespaces] = %w{
15
+ # Namespace::ClassName
16
+ # }
17
+ def self.namespace_neglected?(class_name)
18
+ neglected_namespaces = Unidom::Common.try(:options).try(:[], :neglected_namespaces)
19
+ neglected_namespaces.present? ? neglected_namespaces.include?(class_name.to_s.deconstantize) : false
20
+ end
21
+
22
+ end
19
23
 
24
+ end
20
25
  end
@@ -1,20 +1,25 @@
1
- ##
2
- # Numeration 是数字格式转换的辅助类。
1
+ module Unidom
2
+ module Common
3
3
 
4
- class Unidom::Common::Numeration
4
+ ##
5
+ # Numeration 是数字格式转换的辅助类。
6
+ class Numeration
5
7
 
6
- ##
7
- # 将二进制数据转换成 16 进制的表达。如:
8
- # Unidom::Common::Numeration.hex [ 'A', '}' ]
9
- def self.hex(data)
10
- data.present? ? data.unpack('H*')[0] : nil
11
- end
8
+ ##
9
+ # 将二进制数据转换成 16 进制的表达。如:
10
+ # Unidom::Common::Numeration.hex [ 'A', '}' ]
11
+ def self.hex(data)
12
+ data.present? ? data.unpack('H*')[0] : nil
13
+ end
12
14
 
13
- ##
14
- # 将十六进制数的表达字符串,转换成二进制数据。如:
15
- # Unidom::Common::Numeration.rev_hex '6CA0'
16
- def self.rev_hex(hex)
17
- hex.present? ? hex.scan(/../).map(&:hex).pack('c*') : nil
18
- end
15
+ ##
16
+ # 将十六进制数的表达字符串,转换成二进制数据。如:
17
+ # Unidom::Common::Numeration.rev_hex '6CA0'
18
+ def self.rev_hex(hex)
19
+ hex.present? ? hex.scan(/../).map(&:hex).pack('c*') : nil
20
+ end
19
21
 
22
+ end
23
+
24
+ end
20
25
  end
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Common
3
- VERSION = '2.1.1'.freeze
3
+ VERSION = '3.0'.freeze
4
4
  end
5
5
  end
@@ -1,25 +1,30 @@
1
- ##
2
- # YAML Helper 是用于加载知识层枚举的配置文件的辅助模块。
1
+ module Unidom
2
+ module Common
3
3
 
4
- module Unidom::Common::YamlHelper
4
+ ##
5
+ # YAML Helper 是用于加载知识层枚举的配置文件的辅助模块。
6
+ module YamlHelper
5
7
 
6
- ##
7
- # 从应用或者引擎的跟路径 root 加载 config/enum.yml 中的内容到 config 中。
8
- def self.load_enum(config: nil, root: nil)
8
+ ##
9
+ # 从应用或者引擎的跟路径 root 加载 config/enum.yml 中的内容到 config 中。
10
+ def self.load_enum(config: nil, root: nil)
9
11
 
10
- enum_yaml_path = root.join 'config', 'enum.yml'
11
- raise ArgumentError.new "The file #{enum_yaml_path} does not exist." unless enum_yaml_path.exist?
12
+ enum_yaml_path = root.join 'config', 'enum.yml'
13
+ raise ArgumentError.new "The file #{enum_yaml_path} does not exist." unless enum_yaml_path.exist?
14
+
15
+ unless config.respond_to? :enum
16
+ config.class_eval do
17
+ attr_accessor :enum
18
+ end
19
+ end
20
+ config.enum = {} if config.enum.nil?
21
+
22
+ enum_definitions = YAML.load File.read(enum_yaml_path)
23
+ config.enum.merge! enum_definitions['enum'] if enum_definitions.present?&&enum_definitions['enum'].present?
12
24
 
13
- unless config.respond_to? :enum
14
- config.class_eval do
15
- attr_accessor :enum
16
25
  end
17
- end
18
- config.enum = {} if config.enum.nil?
19
26
 
20
- enum_definitions = YAML.load File.read(enum_yaml_path)
21
- config.enum.merge! enum_definitions['enum'] if enum_definitions.present?&&enum_definitions['enum'].present?
27
+ end
22
28
 
23
29
  end
24
-
25
30
  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: 2.1.1
4
+ version: '3.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-29 00:00:00.000000000 Z
11
+ date: 2024-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '7.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '6.0'
26
+ version: '7.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pg
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '3.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -124,11 +124,11 @@ files:
124
124
  - lib/unidom/common/numeration.rb
125
125
  - lib/unidom/common/version.rb
126
126
  - lib/unidom/common/yaml_helper.rb
127
- homepage: http://github.com/topbitdu/unidom-common
127
+ homepage: https://gitee.com/Unidom/unidom-common
128
128
  licenses:
129
129
  - MIT
130
130
  metadata: {}
131
- post_install_message:
131
+ post_install_message:
132
132
  rdoc_options: []
133
133
  require_paths:
134
134
  - lib
@@ -143,8 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  requirements: []
146
- rubygems_version: 3.1.2
147
- signing_key:
146
+ rubygems_version: 3.5.6
147
+ signing_key:
148
148
  specification_version: 4
149
149
  summary: Unidom Common Domain Model Engine 常用领域模型引擎
150
150
  test_files: []