Lingara Lingara Dokumentation Ratgeber API Bibliotheken Apps Erstellen Web-App
Sprache: Deutsch

Ruby

Diese Seite ist aus dem Englischen übersetzt. Wenn die beiden voneinander abweichen, ist die englische Seite maßgeblich. Englische Seite lesen

Die Ruby-Bibliothek ist das Gem lingara auf RubyGems. Sie benötigt Ruby 3.3 oder neuer und verwendet Net::HTTP aus der Standardbibliothek, ohne weitere Gems.

Wie sie sich liest

  • Aufrufe sind synchron. Ein Client kann von mehreren Threads gemeinsam genutzt werden und bleibt auch über einen fork hinweg korrekt.
  • Übergeben Sie einem streamenden Aufruf einen Block, und jedes Event wird an ihn übergeben. Ohne Block erhalten Sie stattdessen einen Enumerable-Stream, der lazy ist: Die Anfrage wird beim ersten each oder next gesendet. Ein mit next gelesener Stream braucht ein explizites close.
  • Unterscheiden Sie Events mit case und in.
  • Um einen Stream vorzeitig zu beenden, verlassen Sie den Block mit break oder rufen close auf.
  • Fehler erben von Lingara::Error. retry_after ist eine Anzahl von Sekunden oder nil, wenn die API keine Wartezeit genannt hat.
  • Erstellen Sie einen Client mit Schlüsselwortargumenten für Lingara::Client.new. Optionen für Net::HTTP gehören in net_http_options; dessen Lese-Timeout ist zugleich das Leerlauf-Timeout des Streams.

Die folgenden Beispiele installieren das Gem, erstellen einen Client, streamen eine Vokabelliste und behandeln einen Fehler.

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

Was diese Seite kapselt