string_dot_levenshtein 0.1.1 → 0.2.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: 0ce7d7c82d7f2ae83cb54f121a16d6b1cb521767f09841ddd513e58720cfe909
4
- data.tar.gz: 5bc0e8cb030f53bdcd039f3ed382d6ff46bc02990f874dcb6d96e6de3d62735a
3
+ metadata.gz: a792ebd19b8f0d3216f14e7f39e91225797e6dc237e1ca3607a46b1ebc5f419c
4
+ data.tar.gz: 96ac6d2bbd0d21dcc8b8d6bd25fe451d0248068e4acaf56335fa42a372feb423
5
5
  SHA512:
6
- metadata.gz: 689ba24cce747bb9813813c4118a97686b7eebfecdfe609dbdc215c982d62b36df0b0a7fb7150b86c8b3a5a39111b747e456b2664179ee50b32fdf885a892565
7
- data.tar.gz: 63bafd002145c17d80cf2d7ec495c5acf751642e79cf7c3505a6f6b11f351476a1f8f2918ab62c77ddb6d561b67a5bc393b58d709d43742ac2c4391f56f58770
6
+ metadata.gz: 6837719b05488620bd2d85988fa2b404c4368410145d675a911357c94db3becd7cfd34bb3d2e127bed789684e6b991db93541ec08abab81e53dd9581c9bca0bf
7
+ data.tar.gz: 67009a7b2c223ec24b9ecfcbc62cca03959940943d0cab2b0fc5a86a5fd5f979ae18120461afe13e4c6a5554fa5522a6a595f2773d08150f7a32c2d794d844d8
@@ -1,2 +1,3 @@
1
1
  require "string_dot_levenshtein/version"
2
+ require 'string_dot_levenshtein/levenshtein_rb'
2
3
  require 'levenshtein'
@@ -0,0 +1,45 @@
1
+ class String
2
+ def levenshtein_rb(arg)
3
+ a_len = length + 1
4
+ b_len = arg.length + 1
5
+
6
+ x_chars = chars
7
+ y_chars = arg.chars
8
+
9
+ ary = Array.new(b_len) { Array.new(a_len) }
10
+
11
+ i = -1
12
+ ary[0][i] = i while (i += 1) < a_len
13
+
14
+ i = -1
15
+ ary[i][0] = i while (i += 1) < b_len
16
+
17
+ i = 0
18
+ while (i += 1) < b_len
19
+ j = 0
20
+ i_1 = i - 1
21
+ ary_i = ary[i]
22
+ ary_i_1 = ary[i - 1]
23
+
24
+ while (j += 1) < a_len
25
+ j_1 = j - 1
26
+ diag = ary_i_1[j_1]
27
+
28
+ if x_chars[j_1] == y_chars[i_1]
29
+ ary_i[j] = diag
30
+ else
31
+ up = ary_i_1[j]
32
+ left = ary_i[j_1]
33
+
34
+ min = diag
35
+ min = up if up < min
36
+ min = left if left < min
37
+
38
+ ary_i[j] = min + 1
39
+ end
40
+ end
41
+ end
42
+
43
+ ary[b_len - 1][a_len - 1]
44
+ end
45
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StringDotLevenshtein
4
- VERSION = "0.1.1"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string_dot_levenshtein
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sourav Goswami
@@ -22,6 +22,7 @@ files:
22
22
  - ext/extconf.rb
23
23
  - ext/levenshtein.c
24
24
  - lib/string_dot_levenshtein.rb
25
+ - lib/string_dot_levenshtein/levenshtein_rb.rb
25
26
  - lib/string_dot_levenshtein/version.rb
26
27
  homepage: https://github.com/Souravgoswami/string_dot_levenshtein
27
28
  licenses:
@@ -35,7 +36,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
35
36
  requirements:
36
37
  - - ">="
37
38
  - !ruby/object:Gem::Version
38
- version: 1.9.3
39
+ version: 2.0.0
39
40
  required_rubygems_version: !ruby/object:Gem::Requirement
40
41
  requirements:
41
42
  - - ">="