Lingara Lingara Documentazione Guide API Librerie App Crea App web
Lingua: Italiano

Ruby

Questa pagina è tradotta dall'inglese. Se le due versioni differiscono, fa fede la pagina in inglese. Leggi la pagina in inglese

La libreria Ruby è la gem lingara su RubyGems. Richiede Ruby 3.3 o successivo e usa Net::HTTP della libreria standard, senza altre gem.

Come si usa

  • Le chiamate sono sincrone. Un client può essere condiviso tra thread e resta corretto anche dopo un fork.
  • Passa un blocco a una chiamata in streaming e ogni evento gli viene passato con yield. Senza blocco ottieni invece uno stream Enumerable, che è lazy: la richiesta viene inviata al primo each o next. Uno stream letto con next richiede un close esplicito.
  • Distingui gli eventi con case e in.
  • Per fermare uno stream in anticipo, esci dal blocco con break, oppure chiama close.
  • Gli errori ereditano da Lingara::Error. retry_after è un numero di secondi, oppure nil quando l’API non ha indicato alcuna attesa.
  • Crea un client con argomenti keyword passati a Lingara::Client.new. Le opzioni per Net::HTTP vanno in net_http_options; il suo timeout di lettura è anche il timeout di inattività dello stream.

Gli esempi qui sotto installano la gem, creano un client, ricevono in streaming un elenco di vocaboli e gestiscono un errore.

Ruby

gem install lingara -v 0.1.0-alpha.6

Ruby

require "lingara"

client = Lingara::Client.new(client_id: client_id, client_secret: client_secret)

Ruby

client.generate_vocabulary(level: 2, source_lang: "en", target_lang: "zh", count: 8) do |event|
  case event
  in Lingara::GenerateVocabularyEventItem => item then puts "#{item.data.word}: #{item.data.translation}"
  else nil
  end
end

Ruby

begin
  client.get_usage
rescue Lingara::ApiError => e
  # A refusal from the API: status, code (stable) and message (localised).
  puts "#{e.status} #{e.code}: #{e.message}"
  puts "retry after #{e.retry_after}s" if e.retry_after
rescue Lingara::OAuthError => e
  # The token endpoint refused the credentials or the scopes.
  puts "#{e.status} #{e.error}: #{e.description}"
rescue Lingara::MaintenanceError => e
  puts "under maintenance"
  puts "retry after #{e.retry_after}s" if e.retry_after
rescue Lingara::TransportError => e
  # No usable answer: :connect, :tls, :reset, :timeout, and so on.
  puts "transport: #{e.kind}"
end

Cosa incapsula questa pagina