module Interscript::Stdlib::Functions

Public Class Methods

compose(output, _:nil) click to toggle source
# File lib/interscript/stdlib.rb, line 206
def self.compose(output, _:nil)
  output.unicode_normalize(:nfc)
end
decompose(output, _:nil) click to toggle source
# File lib/interscript/stdlib.rb, line 210
def self.decompose(output, _:nil)
  output.unicode_normalize(:nfd)
end
downcase(output, word_separator: nil) click to toggle source
# 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:) click to toggle source
# 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:) click to toggle source
# 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: " ") click to toggle source
# File lib/interscript/stdlib.rb, line 214
def self.separate(output, separator: " ")
  output.split("").join(separator)
end
title_case(output, word_separator: " ") click to toggle source
# 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: " ") click to toggle source
# File lib/interscript/stdlib.rb, line 218
def self.unseparate(output, separator: " ")
  output.split(separator).join("")
end