unidom-common 2.1.1 → 3.0

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
  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: []