Lingara Lingara Documentatie Gidsen API Bibliotheken Apps Bouwen Webapp
Taal: Nederlands

Ruby

Deze pagina is vertaald uit het Engels. Als de twee verschillen, is de Engelse pagina juist. Lees de Engelse pagina

De Ruby-bibliotheek is de gem lingara op RubyGems. Ze vereist Ruby 3.3 of hoger en gebruikt Net::HTTP uit de standaardbibliotheek, zonder andere gems.

Hoe het leest

  • Aanroepen zijn synchroon. Eén client kan tussen threads worden gedeeld en blijft correct over een fork heen.
  • Geef een blok mee aan een streamende aanroep en elk event wordt eraan doorgegeven. Zonder blok krijg je in plaats daarvan een Enumerable-stream, die lui is: het verzoek wordt verstuurd bij de eerste each of next. Een stream die je met next leest, heeft een expliciete close nodig.
  • Match events met case en in.
  • Om een stream vroegtijdig te stoppen, verlaat je het blok met break, of roep je close aan.
  • Fouten erven van Lingara::Error. retry_after is een aantal seconden, of nil wanneer de API geen wachttijd noemde.
  • Maak een client aan met keyword-argumenten voor Lingara::Client.new. Opties voor Net::HTTP horen in net_http_options; de read-time-out daarvan is ook de inactiviteitstime-out van de stream.

De voorbeelden hieronder installeren de gem, maken een client aan, streamen een woordenlijst en handelen een fout af.

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

Wat deze pagina omvat