codecal 0.3.7 → 0.3.8
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 +4 -4
- data/codecal.gemspec +1 -0
- data/lib/codecal.rb +9 -7
- data/lib/codecal/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30e10c76141a7bd4dd1546176610410c73d433e3
|
4
|
+
data.tar.gz: f4d3c65238990953bca1addd0a67640b4b2b4842
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb51974461903ebdd56b21eedea93e218b136dbd64d490b8830d31264acf450e0dfc838d6f6fbeaad1e3630f1203788b8f611b25ed3f142cb39377db1959300f
|
7
|
+
data.tar.gz: 051155d89a2e63d2c459f902fafd340212b8185850ebb935f45ba2e9bc8e9589c663de1b082042dd501ac3042c9026e82cbffd6d3064ba99f404d7c6eea6cdbf
|
data/codecal.gemspec
CHANGED
data/lib/codecal.rb
CHANGED
@@ -3,6 +3,7 @@ require_relative "./code"
|
|
3
3
|
|
4
4
|
module Codecal
|
5
5
|
@@BASE_ALPHABET = ['o','a','3','p','9','h','b','2','q','i','1','c','4','r','7','j','s','5','d','t','8','k','u','e','v','l','w','f','x','6','m','y','0','g','z','n']
|
6
|
+
@@MASK_ALPHABET = ['a','4','p','9','h','r','7','q','c','3','b','2','j','s','6','d','t','8','k','u','e','l','v','f','w','x','5','m','y','g','z','n', 'i']
|
6
7
|
@@generate_seed = [2,7,5,3,8,9,5,9,1,6,7,3,5]
|
7
8
|
@@simple_seed = [5,4,6,2,3,1,5,4,6,2,3,1]
|
8
9
|
class<<self
|
@@ -64,7 +65,7 @@ module Codecal
|
|
64
65
|
return false unless is_legal_masked_code?(masked_code)
|
65
66
|
return false unless is_legal_mask?(mask)
|
66
67
|
offset = get_mask_offset(mask)
|
67
|
-
result = simple_code_generate(unmask_code(offset, masked_code)[
|
68
|
+
result = simple_code_generate(unmask_code(offset, masked_code)[0..-2].to_i)
|
68
69
|
return false unless result[:success]
|
69
70
|
return masked_code == mask_code(offset, result[:customer_code])
|
70
71
|
end
|
@@ -95,19 +96,19 @@ module Codecal
|
|
95
96
|
|
96
97
|
def mask_code(offset, code)
|
97
98
|
code_arr = code.size > 5 ? code.split("") : ("%06d" % code).split("")
|
98
|
-
start_code = code_arr.pop
|
99
99
|
masked_code = code_arr.each_with_index.inject([]) do |code, (c, i)|
|
100
|
-
code.push(@@
|
100
|
+
code.push(@@MASK_ALPHABET[(@@BASE_ALPHABET.find_index(c) + offset[ i % offset.size ]) % @@MASK_ALPHABET.size])
|
101
101
|
end
|
102
|
+
start_code = masked_code.pop
|
102
103
|
masked_code.unshift(start_code).join
|
103
104
|
end
|
104
105
|
|
105
106
|
def unmask_code(offset, masked_code)
|
106
|
-
|
107
|
-
code = masked_code
|
108
|
-
code.push(@@BASE_ALPHABET[(@@
|
107
|
+
masked_code = masked_code[1..-1] + masked_code[0]
|
108
|
+
code = masked_code.downcase.split("").each_with_index.inject([]) do |code, (c, i)|
|
109
|
+
code.push(@@BASE_ALPHABET[(@@MASK_ALPHABET.find_index(c) - offset[ i % offset.size ]) % @@MASK_ALPHABET.size])
|
109
110
|
end
|
110
|
-
code.
|
111
|
+
code.join
|
111
112
|
end
|
112
113
|
|
113
114
|
def get_mask_offset(mask)
|
@@ -137,6 +138,7 @@ module Codecal
|
|
137
138
|
|
138
139
|
def is_legal_masked_code?(masked_code)
|
139
140
|
return false unless masked_code.is_a?(String) && masked_code.size > 5
|
141
|
+
return false unless masked_code[/[a-zA-KMNP-Z2-9]+/] == masked_code
|
140
142
|
return true
|
141
143
|
end
|
142
144
|
|
data/lib/codecal/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codecal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger Fang
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: return a string according to parameters(1/2) and a seed.
|
56
70
|
email:
|
57
71
|
- roger.fang@blockchaintech.net.au
|