Lingara Lingara Documentação Guias API Bibliotecas Aplicações Criar Aplicação web
Idioma: Português

Ruby

Esta página é uma tradução do inglês. Se as duas diferirem, a página em inglês é a correta. Ler a página em inglês

A biblioteca Ruby é a gem lingara no RubyGems. Requer Ruby 3.3 ou posterior e usa Net::HTTP da biblioteca padrão, sem outras gems.

Como se utiliza

  • As chamadas são síncronas. Um cliente pode ser partilhado entre threads e continua correto após um fork.
  • Passe um bloco a uma chamada em stream e cada evento é-lhe entregue com yield. Sem bloco obtém, em vez disso, um stream Enumerable, que é preguiçoso: o pedido é enviado no primeiro each ou next. Um stream lido com next precisa de um close explícito.
  • Distinga os eventos com case e in.
  • Para parar um stream mais cedo, saia do bloco com break, ou chame close.
  • Os erros herdam de Lingara::Error. retry_after é um número de segundos, ou nil quando a API não indicou nenhuma espera.
  • Crie um cliente com argumentos de palavra-chave para Lingara::Client.new. As opções do Net::HTTP vão em net_http_options; o seu tempo limite de leitura é também o tempo limite de inatividade do stream.

Os exemplos abaixo instalam a gem, criam um cliente, recebem em stream uma lista de vocabulário e tratam um erro.

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

O que esta página encapsula