aegis_support 0.0.1 → 0.0.2

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: c77e86a53ff5e0811169153c2d9d7657c1cc5725ffc5c50fbc887efd30fe97be
4
- data.tar.gz: bf6c63c92af362cbdb4ff8b8da154e4501665150669f316cb644b03ca9315fa0
3
+ metadata.gz: 658fe7dd0b5571c490a5ca53060712b028da1d77cd67daeebfbbd71b6ea2da65
4
+ data.tar.gz: b3f6a4c52809eb5b1b03a05821af9f1eeaf0535599b02976ef1616285151235f
5
5
  SHA512:
6
- metadata.gz: 3d565663fbe59685bec2616bbed2616a285cc225ffc2a82242364b41b5407f5f280d0a3f4dde5299c8c86463c064e4c807d7d2a277af2e52af2bb1f7bc4fa7e2
7
- data.tar.gz: bc4244243aff667b9de0841fb1b7bca66c676214622edb1f6c58d8066ead7abc62875d77a3c628751b28c1248fcc7e15f1e93402756654ee19c743de68cdac4e
6
+ metadata.gz: 6546f8565b05cec91f27e43c5f98d4569a34e00efdd0359fa332b134e58a861633e3238022efcf92724de00f3ff329211291248576b2cbbbe4ba8764056d66de
7
+ data.tar.gz: 1cb35f1f20f90590e7cc392a97c2ff6062881c080b5eac56861205d021572802c7f74065c0fdd671d0a1970986e87487d783c5c12c291ac1704f98d7337f624e
@@ -0,0 +1,28 @@
1
+
2
+ module AegisSupport
3
+ module SecureNumber
4
+ extend ActiveSupport::Concern
5
+
6
+ module ClassMethods
7
+ def has_secure_number(attribute)
8
+ require "securerandom"
9
+
10
+ define_method("regenerate_#{attribute}"){ update! attribute => self.class.generate_secure_number(attribute) }
11
+ before_create{ self.send("#{attribute}=", self.class.generate_secure_number(attribute)) }
12
+ end
13
+
14
+ def generate_secure_number(attribute)
15
+ 10.times do |i|
16
+ # use "4.gigabytes ** 2" just want to generate a random number that maximum length is 20
17
+ secure_number = SecureRandom.random_number(4.gigabytes ** 2).to_s.rjust(20, "0")
18
+
19
+ if exists?(attribute => secure_number)
20
+ raise "Couldn't generate a unique number in 10 attempts!" if i == 9
21
+ else
22
+ break secure_number
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module AegisSupport
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/aegis_support.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "aegis_support/version"
2
2
  require "aegis_support/railtie"
3
+ require "aegis_support/secure_number"
3
4
 
4
5
  module AegisSupport
5
6
  # Your code goes here...
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aegis_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 7.0.2.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: mocha
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.13.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.13.0
27
41
  description: A helpful collection of utitility for rails application
28
42
  email:
29
43
  - ianlynxk@gmail.com
@@ -36,6 +50,7 @@ files:
36
50
  - Rakefile
37
51
  - lib/aegis_support.rb
38
52
  - lib/aegis_support/railtie.rb
53
+ - lib/aegis_support/secure_number.rb
39
54
  - lib/aegis_support/version.rb
40
55
  - lib/tasks/aegis_support_tasks.rake
41
56
  homepage: https://github.com/otorain/aegis_support