Module: Sanscript
- Defined in:
- lib/sanscript.rb,
lib/sanscript/rust.rb,
lib/sanscript/detect.rb,
lib/sanscript/version.rb,
lib/sanscript/benchmark.rb,
lib/sanscript/exceptions.rb,
lib/sanscript/detect/rust.rb,
lib/sanscript/detect/ruby24.rb,
lib/sanscript/detect/ruby2x.rb,
lib/sanscript/transliterate.rb,
lib/sanscript/transliterate/schemes.rb
Overview
Sanscript.rb detection/transliteration module for Sanskrit.
Defined Under Namespace
Modules: Benchmark, Detect, Transliterate Classes: DetectionError, SchemeNotSupportedError
Constant Summary collapse
- RUST_AVAILABLE =
Whether Rust extension is available.
load_rust!- VERSION =
The version number
"0.7.1"
Class Method Summary collapse
-
.detect(text) ⇒ Symbol?
Attempts to detect the encoding scheme of the provided string.
-
.load_rust! ⇒ bool
Attempts to load Rust native extension.
-
.rust_disable! ⇒ bool
Turns off Rust native extension.
-
.rust_enable! ⇒ bool
Turns on Rust extension, if available.
-
.rust_enabled? ⇒ bool
The enabled status of the Rust extension.
-
.transliterate(text, from, to = nil, **opts) ⇒ Object
Transliterates a string, optionally detecting its source-scheme first.
Class Method Details
.detect(text) ⇒ Symbol?
Attempts to detect the encoding scheme of the provided string. Simple proxy for Sanscript::Detect.detect_scheme
26 27 28 |
# File 'lib/sanscript.rb', line 26 def detect(text) Detect.detect_scheme(text) end |
.load_rust! ⇒ bool
Attempts to load Rust native extension.
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/sanscript/rust.rb', line 7 def load_rust! return RUST_AVAILABLE if defined?(RUST_AVAILABLE) require "thermite/fiddle" Thermite::Fiddle.load_module("init_rusty_sanscript", cargo_project_path: GEM_ROOT, ruby_project_path: GEM_ROOT) #:nocov:# true rescue Fiddle::DLError false #:nocov:# end |
.rust_disable! ⇒ bool
Turns off Rust native extension.
45 46 47 48 49 50 51 52 |
# File 'lib/sanscript/rust.rb', line 45 def rust_disable! Detect.module_eval do class << self alias_method :detect_scheme, :ruby_detect_scheme end end @rust_enabled = false end |
.rust_enable! ⇒ bool
Turns on Rust extension, if available.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/sanscript/rust.rb', line 27 def rust_enable! if RUST_AVAILABLE # :nocov: Detect.module_eval do class << self alias_method :detect_scheme, :rust_detect_scheme end end @rust_enabled = true else @rust_enabled = false # :nocov: end @rust_enabled end |
.rust_enabled? ⇒ bool
Returns the enabled status of the Rust extension.
21 22 23 |
# File 'lib/sanscript/rust.rb', line 21 def rust_enabled? @rust_enabled end |
.transliterate(text, from, to, **opts) ⇒ String .transliterate(text, to, **opts) ⇒ String
Transliterates a string, optionally detecting its source-scheme first.
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/sanscript.rb', line 55 def transliterate(text, from, to = nil, **opts) if to.nil? to = from from = nil end if from.nil? from = Detect.detect_scheme(text) || opts[:default_scheme] || raise(DetectionError, "String detection and fallback failed.") end Transliterate.transliterate(text, from, to, opts) end |