unidom-common 1.1 → 1.2

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: 95243ebeb2e8156ec28f4ca6c76d1bda4b2dfb9a
4
- data.tar.gz: c6dd4045999cb395eb98659c01895480df1bba1f
3
+ metadata.gz: 88c40a102845260fbe5699f42e6d5c2735ffa0c0
4
+ data.tar.gz: 47f31fb4af3d8fb94cd73568399293dd6c0ebbe8
5
5
  SHA512:
6
- metadata.gz: bcde6b74d223e1371ffe43e04a555edbcdb6c9acec410a1112a7d360feedda7635450ef3d7573b7478e069c1fdf1d4762be55a13037a8935eb5e9f62d5259ac4
7
- data.tar.gz: d05202257ad1d5ae256a866c58d6da0785050b32dfe104f1654337ea5d3ada6c0a4fc748154bc6c4b73ca1ab16eb8ca56866ecb5e8b036dc6a0d316c5a14569b
6
+ metadata.gz: 3e326b1f17168a898d71f72e2fd2f642d67c85cb8ddaa132a6abd28ff25c1a1a51b0cb3c016d32c630abc151d254c360cc2185004a572ff22309855cc8ad10af
7
+ data.tar.gz: 9c65b56a55eb3184101a42ead4afaca5b9c0fd0d67b8975ed469fc1f506d5776578c6f213b7423c5135b72920eaf5d00f8a286c8fbd976d47ad6007c8282d851
data/README.md CHANGED
@@ -126,6 +126,87 @@ decrypted = identity_card.decrypt_identification_number
126
126
  # The AES 256 Cryptor also has the #hex_encrypt and the #hex_decrypt methods
127
127
  ```
128
128
 
129
+ ## MD 5 Digester
130
+ ```ruby
131
+ class IdentityCard
132
+
133
+ include Unidom::Common::Concerns::Md5Digester
134
+ attr_accessor :identification_number
135
+
136
+ def initialize(identification_number)
137
+ self.identification_number = identification_number
138
+ end
139
+
140
+ def digest_identification_number
141
+ digest identification_number, pepper: self.class.name
142
+ end
143
+
144
+ def hex_digest_identification_number
145
+ hex_digest identification_number, pepper: self.class.name
146
+ end
147
+
148
+ end
149
+
150
+ identity_card = IdentityCard.new '9527'
151
+ digested = identity_card.digest_identification_number
152
+ hex_digested = identity_card.hex_digest_identification_number
153
+ hex_digested == Unidom::Common::Numeration.hex digested # true
154
+ ```
155
+
156
+ ## SHA 256 Digester
157
+ ```ruby
158
+ class IdentityCard
159
+
160
+ include Unidom::Common::Concerns::Sha256Digester
161
+ attr_accessor :identification_number
162
+
163
+ def initialize(identification_number)
164
+ self.identification_number = identification_number
165
+ end
166
+
167
+ def digest_identification_number
168
+ digest identification_number, pepper: self.class.name
169
+ end
170
+
171
+ def hex_digest_identification_number
172
+ hex_digest identification_number, pepper: self.class.name
173
+ end
174
+
175
+ end
176
+
177
+ identity_card = IdentityCard.new '9527'
178
+ digested = identity_card.digest_identification_number
179
+ hex_digested = identity_card.hex_digest_identification_number
180
+ hex_digested == Unidom::Common::Numeration.hex digested # true
181
+ ```
182
+
183
+ ## SHA 384 Digester
184
+ ```ruby
185
+ class IdentityCard
186
+
187
+ include Unidom::Common::Concerns::Sha384Digester
188
+ attr_accessor :identification_number
189
+
190
+ def initialize(identification_number)
191
+ self.identification_number = identification_number
192
+ end
193
+
194
+ def digest_identification_number
195
+ digest identification_number, pepper: self.class.name
196
+ end
197
+
198
+ def hex_digest_identification_number
199
+ hex_digest identification_number, pepper: self.class.name
200
+ end
201
+
202
+ end
203
+
204
+ identity_card = IdentityCard.new '9527'
205
+ digested = identity_card.digest_identification_number
206
+ hex_digested = identity_card.hex_digest_identification_number
207
+ hex_digested == Unidom::Common::Numeration.hex digested # true
208
+ ```
209
+
129
210
  ## SHA 512 Digester
130
211
  ```ruby
131
212
  class IdentityCard
@@ -153,6 +234,7 @@ hex_digested = identity_card.hex_digest_identification_number
153
234
  hex_digested == Unidom::Common::Numeration.hex digested # true
154
235
  ```
155
236
 
237
+
156
238
  ## ActiveRecord Migration Naming Convention
157
239
  ### Domain Models (200YMMDDHHMMSS)
158
240
 
@@ -0,0 +1,29 @@
1
+ module Unidom::Common::Concerns::Md5Digester
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do |includer|
6
+
7
+ def digest(message, pepper: nil)
8
+ self.class.digest message, pepper: pepper
9
+ end
10
+
11
+ def hex_digest(message, pepper: nil)
12
+ self.class.hex_digest message, pepper: pepper
13
+ end
14
+
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ def digest(message, pepper: nil)
20
+ message.present? ? Digest::MD5.digest("#{message}_#{Rails.application.secrets[:secret_key_base]}_#{pepper}") : nil
21
+ end
22
+
23
+ def hex_digest(message, pepper: nil)
24
+ message.present? ? Unidom::Common::Numeration.hex(digest(message, pepper: pepper)) : nil
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -6,7 +6,7 @@ module Unidom
6
6
 
7
7
  extend ActiveSupport::Concern
8
8
 
9
- self.included do |includer|
9
+ included do |includer|
10
10
 
11
11
  validates :state, presence: true, length: { is: columns_hash['state'].limit }
12
12
 
@@ -0,0 +1,29 @@
1
+ module Unidom::Common::Concerns::Sha256Digester
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do |includer|
6
+
7
+ def digest(message, pepper: nil)
8
+ self.class.digest message, pepper: pepper
9
+ end
10
+
11
+ def hex_digest(message, pepper: nil)
12
+ self.class.hex_digest message, pepper: pepper
13
+ end
14
+
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ def digest(message, pepper: nil)
20
+ message.present? ? Digest::SHA256.digest("#{message}_#{Rails.application.secrets[:secret_key_base]}_#{pepper}") : nil
21
+ end
22
+
23
+ def hex_digest(message, pepper: nil)
24
+ message.present? ? Unidom::Common::Numeration.hex(digest(message, pepper: pepper)) : nil
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,29 @@
1
+ module Unidom::Common::Concerns::Sha384Digester
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do |includer|
6
+
7
+ def digest(message, pepper: nil)
8
+ self.class.digest message, pepper: pepper
9
+ end
10
+
11
+ def hex_digest(message, pepper: nil)
12
+ self.class.hex_digest message, pepper: pepper
13
+ end
14
+
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ def digest(message, pepper: nil)
20
+ message.present? ? Digest::SHA384.digest("#{message}_#{Rails.application.secrets[:secret_key_base]}_#{pepper}") : nil
21
+ end
22
+
23
+ def hex_digest(message, pepper: nil)
24
+ message.present? ? Unidom::Common::Numeration.hex(digest(message, pepper: pepper)) : nil
25
+ end
26
+
27
+ end
28
+
29
+ end
data/lib/unidom/common.rb CHANGED
@@ -5,8 +5,8 @@ require 'unidom/common/numeration'
5
5
  module Unidom
6
6
  module Common
7
7
 
8
- NULL_UUID = '00000000-0000-0000-0000-000000000000'.freeze
9
- SELF = '~'.freeze
8
+ NULL_UUID = '00000000-0000-0000-0000-000000000000' #.freeze
9
+ SELF = '~' #.freeze
10
10
 
11
11
  #OPENED_AT = Time.utc(1970).freeze
12
12
  #CLOSED_AT = Time.utc(3000).freeze
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Common
3
- VERSION = '1.1'.freeze
3
+ VERSION = '1.2'.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.1'
4
+ version: '1.2'
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-08-25 00:00:00.000000000 Z
11
+ date: 2016-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -82,7 +82,10 @@ files:
82
82
  - app/controllers/unidom/common/application_controller.rb
83
83
  - app/helpers/unidom/common/application_helper.rb
84
84
  - app/models/unidom/common/concerns/aes256_cryptor.rb
85
+ - app/models/unidom/common/concerns/md5_digester.rb
85
86
  - app/models/unidom/common/concerns/model_extension.rb
87
+ - app/models/unidom/common/concerns/sha256_digester.rb
88
+ - app/models/unidom/common/concerns/sha384_digester.rb
86
89
  - app/models/unidom/common/concerns/sha512_digester.rb
87
90
  - app/views/layouts/unidom/common/application.html.erb
88
91
  - config/routes.rb