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 primeiroeachounext. Um stream lido comnextprecisa de umcloseexplícito. - Distinga os eventos com
caseein. - Para parar um stream mais cedo, saia do bloco com
break, ou chameclose. - Os erros herdam de
Lingara::Error.retry_afteré um número de segundos, ounilquando 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 emnet_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.6Ruby
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
endRuby
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