str_metrics 0.1.0 → 0.1.1

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: f773ff65c7ef2fb3bc5f396cf10e13e7d98d3037981de45a846f8b9fc6328caa
4
- data.tar.gz: c6b3838b89a063c4e57cf70e06a7e9226bee9ecb84a99d0f2773775dbb56cc6e
3
+ metadata.gz: 7b9d4521b7b87e2eebace68bf7fae4f2dbf83074c6b6f2a7bebfc50c6023a693
4
+ data.tar.gz: 22e1df9500b78ab599e0acc8db77c459453b5bae4741bf62e0c05a359007ec10
5
5
  SHA512:
6
- metadata.gz: 22df7813421a8850d277065d8595aadf5a30c0fc96ebfb90bfaac05e3906030c5874dd4a8da38e1a0af67277f22ca2c46940515d509ed6bd63c0d332e6620b3b
7
- data.tar.gz: 7addd087a16eb72ed3428a9b90ce51c0e0ed5865bc2d8aebe7b899f2adc5fdbbcad15c73b60af3701213129e9f7fed6e69a834637f7e32c14f478f8caaa7e589
6
+ metadata.gz: ecb25067d4e09964f6edbec296deb36b6ce107c71a67db9e486166ab72e0d5c72d892db9383db90ed81584509bcb6420986533cf39d3b3adbf2838f26a8f20ba
7
+ data.tar.gz: 037da668c2d9cee0d297b4c747c407b15317234d15e2293429e1a05f3f117d10bd46abe12600dd915fb5d7b066aeb77c1b69a0a2b283fd3483ba8137b9b71d2c
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # StrMetrics
2
2
 
3
3
  [![checks](https://github.com/anirbanmu/str_metrics/workflows/checks/badge.svg)](https://github.com/anirbanmu/str_metrics/actions?query=workflow%3Achecks)
4
+ [![Gem Version](https://badge.fury.io/rb/str_metrics.svg)](https://rubygems.org/gems/str_metrics)
5
+ [![license](https://img.shields.io/github/license/anirbanmu/str_metrics?style=plastic)](LICENSE)
4
6
 
5
- Ruby gem (native extension in Rust) providing implementations of various string metrics. Current metrics supported are: Sørensen–Dice, Levenshtein, Damerau–Levenshtein, Jaro & Jaro–Winkler. Strings that are UTF-8 encodable (convertible to UTF-8 representation) are supported. All comparison of strings is done at the grapheme cluster level as described by [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries); this may be different from many gems that calculate string metrics.
7
+ Ruby gem (native extension in Rust) providing implementations of various string metrics. Current metrics supported are: Sørensen–Dice, Levenshtein, Damerau–Levenshtein, Jaro & Jaro–Winkler. Strings that are UTF-8 encodable (convertible to UTF-8 representation) are supported. All comparison of strings is done at the grapheme cluster level as described by [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries); this may be different from many gems that calculate string metrics. Gem should work on Linux, MacOS & Windows.
6
8
 
7
9
  ## Getting Started
8
10
  ### Prerequisites
data/extconf.rb CHANGED
@@ -1,14 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'ffi'
4
+
3
5
  abort 'Rust compiler required (https://www.rust-lang.org/)' if `which rustc`.empty?
4
6
 
7
+ lib_name = FFI::Platform::OS == 'windows' ? 'str_metrics' : 'libstr_metrics'
8
+ src_path = File.expand_path(File.join(__dir__, 'target', 'release', "#{lib_name}.#{FFI::Platform::LIBSUFFIX}"))
9
+ dest_path = File.expand_path(File.join(__dir__, 'lib', 'str_metrics'))
10
+
11
+ if File::ALT_SEPARATOR
12
+ src_path = src_path.gsub(File::SEPARATOR, File::ALT_SEPARATOR)
13
+ dest_path = dest_path.gsub(File::SEPARATOR, File::ALT_SEPARATOR)
14
+ end
15
+
16
+ cp_cmd = if FFI::Platform::OS == 'windows'
17
+ "xcopy \"#{src_path}\" \"#{dest_path}\\*\""
18
+ else
19
+ "cp \"#{src_path}\" \"#{dest_path}\""
20
+ end
21
+
5
22
  File.open('Makefile', 'wb') do |f|
6
23
  f.puts(<<~MKCONTENT)
7
24
  all:
8
25
  \tcargo rustc --release
9
- \tmv ./target/release/libstr_metrics.so ./lib/str_metrics
26
+ \t#{cp_cmd}
10
27
  clean:
11
28
  install:
12
- \trm -r target
29
+ \tcargo clean
13
30
  MKCONTENT
14
31
  end
@@ -9,7 +9,8 @@ module StrMetrics
9
9
  module Native
10
10
  extend FFI::Library
11
11
 
12
- ffi_lib File.expand_path('./str_metrics/libstr_metrics.so', __dir__)
12
+ LIB_NAME = FFI::Platform::OS == 'windows' ? 'str_metrics' : 'libstr_metrics'
13
+ ffi_lib File.expand_path(File.join(__dir__, 'str_metrics', "#{LIB_NAME}.#{FFI::Platform::LIBSUFFIX}"))
13
14
 
14
15
  attach_function :sorensen_dice_coefficient, %i[string string char], :double
15
16
  attach_function :levenshtein_distance, %i[string string char], :int64
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StrMetrics
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: str_metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anirban Mukhopadhyay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-13 00:00:00.000000000 Z
11
+ date: 2020-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -112,7 +112,7 @@ description: 'Ruby gem (native extension in Rust) providing implementations of v
112
112
  string metrics. Current metrics supported are: Sørensen–Dice, Levenshtein, Damerau–Levenshtein,
113
113
  Jaro & Jaro–Winkler. Strings that are UTF-8 encodable (convertible to UTF-8 representation)
114
114
  are supported. All comparison of strings is done at the grapheme cluster level as
115
- described by [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries);
115
+ described by Unicode Standard Annex #29 (https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries);
116
116
  this may be different from many gems that calculate string metrics.'
117
117
  email:
118
118
  - anirban.mukhop@gmail.com
@@ -144,7 +144,7 @@ metadata:
144
144
  homepage_uri: https://github.com/anirbanmu/str_metrics
145
145
  bug_tracker_uri: https://github.com/anirbanmu/str_metrics/issues
146
146
  source_code_uri: https://github.com/anirbanmu/str_metrics
147
- changelog_uri: https://github.com/anirbanmu/str_metrics/blob/v0.1.0/CHANGELOG.md
147
+ changelog_uri: https://github.com/anirbanmu/str_metrics/blob/v0.1.1/CHANGELOG.md
148
148
  post_install_message:
149
149
  rdoc_options: []
150
150
  require_paths: