Module: Interscript::Stdlib::Functions
- Defined in:
- lib/interscript/stdlib.rb
Class Method Summary collapse
- .compose(output, _: nil) ⇒ Object
- .decompose(output, _: nil) ⇒ Object
- .downcase(output, word_separator: nil) ⇒ Object
- .rababa(output, config:) ⇒ Object
- .secryst(output, model:) ⇒ Object
- .separate(output, separator: " ") ⇒ Object
- .title_case(output, word_separator: " ") ⇒ Object
- .unseparate(output, separator: " ") ⇒ Object
Class Method Details
.compose(output, _: nil) ⇒ Object
206 207 208 |
# File 'lib/interscript/stdlib.rb', line 206 def self.compose(output, _:nil) output.unicode_normalize(:nfc) end |
.decompose(output, _: nil) ⇒ Object
210 211 212 |
# File 'lib/interscript/stdlib.rb', line 210 def self.decompose(output, _:nil) output.unicode_normalize(:nfd) end |
.downcase(output, word_separator: nil) ⇒ Object
197 198 199 200 201 202 203 204 |
# File 'lib/interscript/stdlib.rb', line 197 def self.downcase(output, word_separator: nil) if word_separator output = output.gsub(/^(.)/, &:downcase) output = output.gsub(/#{word_separator}(.)/, &:downcase) unless word_separator == '' else output.downcase end end |
.rababa(output, config:) ⇒ Object
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 |
# File 'lib/interscript/stdlib.rb', line 237 def self.rababa(output, config:) require "rababa" rescue nil # Try to load rababa, but don't fail hard if not possible. unless defined? Rababa raise StandardError, "Rababa is not loaded. Please read docs/Usage_with_Rababa.adoc" end config_value = Interscript.rababa_configs[config] model_uri = config_value['model'] rababa_config = config_value['config'] model_path = Interscript.rababa_provision(config, model_uri) @rababa_diacritizer ||= Rababa::Diacritizer.new(model_path, rababa_config) @rababa_diacritizer.diacritize_text(output) end |
.secryst(output, model:) ⇒ Object
223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/interscript/stdlib.rb', line 223 def self.secryst(output, model:) require "secryst" rescue nil # Try to load secryst, but don't fail hard if not possible. unless defined? Secryst raise StandardError, "Secryst is not loaded. Please read docs/Usage_with_Secryst.adoc" end Interscript.secryst_index_locations.each do |remote| Secryst::Provisioning.add_remote(remote) end @secryst_models[model] ||= Secryst::Translator.new(model_file: model) output.split("\n").map(&:chomp).map do |i| @secryst_models[model].translate(i) end.join("\n") end |
.separate(output, separator: " ") ⇒ Object
214 215 216 |
# File 'lib/interscript/stdlib.rb', line 214 def self.separate(output, separator: " ") output.split("").join(separator) end |
.title_case(output, word_separator: " ") ⇒ Object
191 192 193 194 195 |
# File 'lib/interscript/stdlib.rb', line 191 def self.title_case(output, word_separator: " ") output = output.gsub(/^(.)/, &:upcase) output = output.gsub(/#{word_separator}(.)/, &:upcase) unless word_separator == '' output end |
.unseparate(output, separator: " ") ⇒ Object
218 219 220 |
# File 'lib/interscript/stdlib.rb', line 218 def self.unseparate(output, separator: " ") output.split(separator).join("") end |