jaro_winkler 1.5.1 → 1.5.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
  SHA256:
3
- metadata.gz: 9a6c09b6eb84b074ba116e7a986660665da7948ee55e655c0515137e2e717a6d
4
- data.tar.gz: cd8276983e8a4af489da885caa2e57fc954476d475e4d3b5a0a52ad5c561369d
3
+ metadata.gz: a54cd261b2f561005020139db57b155c402b572f66d665ed20e7f24eeeb4c2bf
4
+ data.tar.gz: 461c6ca244424f65a1d37525d4f65e498b99153aea3726c6207f7fe00a406495
5
5
  SHA512:
6
- metadata.gz: bd00297dd0d4ba66fa0210712c304c5f1f85df7a694148d9fdfaf0c9d0ec8f29544490f55340229b23b3f333b68bdb41b8e5d877af55502da65e85d160422c01
7
- data.tar.gz: 6477366a7cdf3079537654b65253a26e116a303fce88501df94a7a827d1b66e0d39e1918e0498f1f13c0349e407ec2040c002c321844a416b50ae1dbf2f499bd
6
+ metadata.gz: 763dc827330ddffabc653c4025f0612f0da0c401af61b64edca89a14089378088a65a2458cfbdfa0861fd88733ef517ad00a9f048cfe6c0ff9f2c230ccfbf97c
7
+ data.tar.gz: 8c688332177a4aef85f39868b8f030623cf41b71befff5ea103bdf5e69e79ec0579e1c99286e08e877c59778196d9b11c4b701d05dd84198881a339d1237e5f3
@@ -1,16 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if RUBY_ENGINE == 'ruby'
4
- require 'mkmf'
5
- $CFLAGS << ' -std=c99 '
6
- create_makefile('jaro_winkler/jaro_winkler_ext')
7
- else
8
- open('Makefile', 'wb') do |file|
9
- file.write <<-MAKEFILE
10
- .PHONY: install
11
- install:
12
- \techo "Cannot compile C Extension, fall back to pure Ruby version."
13
- clean:
14
- MAKEFILE
15
- end
16
- end
3
+ require 'mkmf'
4
+ $CFLAGS << ' -std=c99 '
5
+ create_makefile('jaro_winkler/jaro_winkler_ext')
@@ -27,12 +27,11 @@ VALUE distance(size_t argc, VALUE *argv, VALUE self,
27
27
  uint32_t *codepoints2, size_t len2,
28
28
  Options *)) {
29
29
  VALUE s1, s2, opt;
30
- CodePoints cp1, cp2;
31
30
 
32
31
  rb_scan_args((int32_t)argc, argv, "2:", &s1, &s2, &opt);
33
- codepoints_init(&cp1, s1);
34
- codepoints_init(&cp2, s2);
35
32
 
33
+ Check_Type(s1, T_STRING);
34
+ Check_Type(s2, T_STRING);
36
35
  Options c_opt = DEFAULT_OPTIONS;
37
36
  if (TYPE(opt) == T_HASH) {
38
37
  VALUE weight = rb_hash_aref(opt, ID2SYM(rb_intern("weight"))),
@@ -54,6 +53,9 @@ VALUE distance(size_t argc, VALUE *argv, VALUE self,
54
53
  c_opt.adj_table =
55
54
  (TYPE(adj_table) == T_FALSE || NIL_P(adj_table)) ? 0 : 1;
56
55
  }
56
+ CodePoints cp1, cp2;
57
+ codepoints_init(&cp1, s1);
58
+ codepoints_init(&cp2, s2);
57
59
  VALUE ret = rb_float_new(
58
60
  (*distance_fn)(cp1.data, cp1.length, cp2.data, cp2.length, &c_opt));
59
61
  codepoints_free(&cp1);
@@ -14,10 +14,12 @@ module JaroWinkler
14
14
 
15
15
  class << self
16
16
  def distance(str1, str2, options = {})
17
+ validate!(str1, str2)
17
18
  _distance str1.codepoints.to_a, str2.codepoints.to_a, options
18
19
  end
19
20
 
20
21
  def jaro_distance(str1, str2, options = {})
22
+ validate!(str1, str2)
21
23
  _jaro_distance str1.codepoints.to_a, str2.codepoints.to_a, options
22
24
  end
23
25
 
@@ -125,5 +127,9 @@ module JaroWinkler
125
127
  m = similar_count / 10.0 + m if options[:adj_table]
126
128
  (m / len1 + m / len2 + (m - t) / m) / 3
127
129
  end
130
+
131
+ def validate!(str1, str2)
132
+ raise TypeError unless str1.is_a?(String) && str2.is_a?(String)
133
+ end
128
134
  end
129
135
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JaroWinkler
4
- VERSION = '1.5.1'
4
+ VERSION = '1.5.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jaro_winkler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jian Weihang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-06 00:00:00.000000000 Z
11
+ date: 2019-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler