Lingara Lingara Documentación Guías API Bibliotecas Apps Crear Aplicación web
Idioma: Español

Ruby

Esta página está traducida del inglés. Si ambas difieren, la página en inglés es la correcta. Leer la página en inglés

La biblioteca de Ruby es la gema lingara en RubyGems. Necesita Ruby 3.3 o posterior y usa Net::HTTP de la biblioteca estándar, sin ninguna otra gema.

Cómo se usa

  • Las llamadas son síncronas. Un mismo cliente se puede compartir entre hilos, y sigue funcionando correctamente tras un fork.
  • Pasa un bloque a una llamada con flujo y cada evento se le entrega mediante yield. Sin bloque obtienes en su lugar un flujo Enumerable, que es perezoso: la petición se envía en el primer each o next. Un flujo leído con next necesita un close explícito.
  • Distingue los eventos con case e in.
  • Para detener un flujo antes de tiempo, sal del bloque con break, o llama a close.
  • Los errores heredan de Lingara::Error. retry_after es un número de segundos, o nil cuando la API no indicó ninguna espera.
  • Crea un cliente con argumentos de palabra clave para Lingara::Client.new. Las opciones de Net::HTTP van en net_http_options; su tiempo de espera de lectura es también el tiempo de inactividad del flujo.

Los ejemplos de abajo instalan la gema, crean un cliente, reciben en flujo una lista de vocabulario y gestionan un error.

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

Qué envuelve esta página