what_you_say 0.4.3-arm64-darwin → 0.5.0-arm64-darwin

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: 3842c012e3f3b3b19547b5ada41a64ddf57382ec18e1adb20293743edc5d51ca
4
- data.tar.gz: feb79661d5dcba5d5e10aa7889eba503d6f6033e26e48ab1ffd6a7638f5ff48e
3
+ metadata.gz: 7cf702b1e0e1a7b4762e87660ca54df69c5ce8663cdc44a88af883e5847b8335
4
+ data.tar.gz: f6d915f445f334dc2bf328edec7bce398e4c32409253e0d08267f464054dc7fb
5
5
  SHA512:
6
- metadata.gz: 634c2569a2f3247f0e1cec8bc19cb6a650a20194e1dd9e6f204832112396a250e0450dc5a57a2100455cc745cab631fd722f0428f30e83b2732672705dc7055c
7
- data.tar.gz: 7310c7028255564e61528b0298596bfffb5acf6f6cc43f7ee6bb287b86148380c1bc8baeba6ceeae6e2654e0af366cec66ebb0ec56f11005c2872f769b393ffe
6
+ metadata.gz: 63ba3059d01bbb7c346223cb1b188e1c2e1d1f9651e15fbadff9c76b2ff1ec2b7a85d85083d91b9de3fcb9905f0d2de7548805ca95e06cbc3fca009ccc1a04b6
7
+ data.tar.gz: 0b2301e50dd3dd7ee6f5f58aeb2d9fcf5d5820268e63bf99ba25b84786eed01cd6b2437acf2aedfb7f8d4aa48e2dfff7b4e8c6ddfef05aad8a76ee1a01170f3b
data/README.md CHANGED
@@ -1,14 +1,12 @@
1
1
  # WhatYouSay
2
2
 
3
- Quick and easy natural language detection wrapping the [Whatlang Rust crate](https://github.com/greyblake/whatlang-rs). Instantly identify the source language of a piece of text.
3
+ Quick and easy natural language detection wrapping the [lingua-rs Rust crate](https://github.com/pemistahl/lingua-rs). Instantly identify the source language of a piece of text.
4
4
 
5
5
  ![What you say!!](https://user-images.githubusercontent.com/64050/224237944-ceb2570c-d544-474a-8c91-41433efdee43.png)
6
6
 
7
- - Supports [69 languages](https://github.com/greyblake/whatlang-rs/blob/master/SUPPORTED_LANGUAGES.md) (nice!)
7
+ - Supports [75+ languages](https://github.com/pemistahl/lingua-rs/tree/main#3-which-languages-are-supported)
8
8
  - Core library is written in Rust; this is a Ruby wrapper to it
9
9
  - Lightweight, fast, and simple
10
- - Recognizes not only a language, but also a script (Latin, Cyrillic, etc)
11
- - Provides reliability information
12
10
 
13
11
  ## Installation
14
12
 
@@ -22,25 +20,52 @@ If bundler is not being used to manage dependencies, install the gem by executin
22
20
 
23
21
  ## Usage
24
22
 
25
- The method to call is `_?`. Why? Because. Pass in the text whose language you want to detect:
23
+ The method to call is `detect_language`.
24
+
25
+ Pass in the text whose language you want to detect:
26
26
 
27
27
  ```ruby
28
28
  require "what_you_say"
29
29
 
30
30
  text = "Ĉu vi ne volas eklerni Esperanton? Bonvolu! Estas unu de la plej bonaj aferoj!"
31
31
 
32
- result = WhatYouSay._?(text)
32
+ result = WhatYouSay.new.detect_language(text)
33
33
 
34
- assert_equal("epo", result.code)
35
- assert_equal("esperanto", result.eng_name)
34
+ assert_equal("epo", result.lang.code)
35
+ assert_equal("esperanto", result.lang.eng_name)
36
36
  ```
37
37
 
38
38
  You also have to opportunity to `inspect` some output:
39
39
 
40
40
  ```ruby
41
41
  text = "Եվ ահա ես ստանում եմ մի զանգ պատահական տղայից"
42
- WhatYouSay._?(text).inspect
43
- #=> #<WhatYouSay::Lang code="hye" eng_name="Armenian">
42
+ WhatYouSay.new.detect_language(text).inspect
43
+ #=> #<WhatYouSay::Lang code="hye" eng_name="armenian">
44
+ ```
45
+
46
+ Not everything in life is perfect, and neither is this lib. Sometimes language detection will be wildly mistaken. You
47
+ can attempt to correct this by passing in an `allowlist` of supported languages:
48
+
49
+ ```ruby
50
+ text = "สวัสดี Rágis hello"
51
+ result = WhatYouSay.new.detect_language(text)
52
+
53
+ assert_equal("spanish", result.eng_name)
54
+
55
+ result = WhatYouSay.new(allowlist: ["English", "Thai"]).detect_language(text)
56
+
57
+ assert_equal("eng", result.code)
58
+ ```
59
+
60
+ If a language truly cannot be detected, the `Unknown` language type is returned:
61
+
62
+ ```ruby
63
+ text = "日本語"
64
+
65
+ result = WhatYouSay.new(allowlist: ["English", "Thai"]).detect_language(text)
66
+
67
+ assert_equal("???", result.code)
68
+ assert_equal("unknown", result.eng_name)
44
69
  ```
45
70
 
46
71
  ## Development
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module WhatYouSay
3
+ class WhatYouSay
4
4
  class Lang
5
5
  end
6
6
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module WhatYouSay
4
- VERSION = "0.4.3"
3
+ class WhatYouSay
4
+ VERSION = "0.5.0"
5
5
  end
data/lib/what_you_say.rb CHANGED
@@ -9,13 +9,11 @@ if ENV.fetch("DEBUG", false)
9
9
  require "debug"
10
10
  end
11
11
 
12
- module WhatYouSay
13
- class << self
14
- def _?(text)
15
- raise TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
16
- raise TypeError, "text must be UTF-8 encoded; got #{text.encoding}!" unless text.encoding.name == "UTF-8"
12
+ class WhatYouSay
13
+ def detect_language(text)
14
+ raise TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
15
+ raise TypeError, "text must be UTF-8 encoded; got #{text.encoding}!" unless text.encoding.name == "UTF-8"
17
16
 
18
- detect(text, options: {})
19
- end
17
+ detect_text(text)
20
18
  end
21
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: what_you_say
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - Garen J. Torikian
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-11 00:00:00.000000000 Z
11
+ date: 2023-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,8 +38,8 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.2'
41
- description: Natural language detectio with a focus on simplicity and performance.
42
- Currently wraps the whatlang Rust crate.
41
+ description: Natural language detection with a focus on simplicity and performance.
42
+ Currently wraps the lingua-rs Rust crate.
43
43
  email:
44
44
  - gjtorikian@users.noreply.github.com
45
45
  executables: []