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/detect/constants.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 =
Load rust if available.
rust_load!- VERSION =
The version number
"0.10.1"
Class Method Summary collapse
-
.detect(text) ⇒ Symbol?
Attempts to detect the encoding scheme of the provided string.
-
.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.
-
.rust_load! ⇒ bool
Attempts to load Rust native extension.
-
.transliterate(text, from, to = nil, **opts) ⇒ Object
Transliterates a string from one scheme to another.
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 |
.rust_disable! ⇒ bool
Turns off Rust native extension.
38 39 40 41 42 43 |
# File 'lib/sanscript/rust.rb', line 38 def rust_disable! Detect.singleton_class.class_eval do alias_method :detect_scheme, :ruby_detect_scheme end @rust_enabled = false end |
.rust_enable! ⇒ bool
Turns on Rust extension, if available.
28 29 30 31 32 33 34 |
# File 'lib/sanscript/rust.rb', line 28 def rust_enable! return false unless RUST_AVAILABLE Detect.singleton_class.class_eval do alias_method :detect_scheme, :rust_detect_scheme end @rust_enabled = true end |
.rust_enabled? ⇒ bool
Returns the enabled status of the Rust extension.
22 23 24 |
# File 'lib/sanscript/rust.rb', line 22 def rust_enabled? @rust_enabled ||= false end |
.rust_load! ⇒ bool
Attempts to load Rust native extension.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/sanscript/rust.rb', line 8 def rust_load! # :nocov: 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) defined?(Sanscript::Rust) ? true : false rescue Fiddle::DLError false # :nocov: end |
.transliterate(text, from, to, **opts) ⇒ String .transliterate(text, to, **opts) ⇒ String
Transliterates a string from one scheme to another. Proxy for Sanscript::Transliterate.transliterate
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/sanscript.rb', line 58 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 |