Ruby
Bu sayfa İngilizceden çevrilmiştir. İkisi arasında fark varsa İngilizce sayfa doğrudur. İngilizce sayfayı oku
Ruby kütüphanesi, RubyGems üzerindeki lingara gem’idir. Ruby 3.3 veya üstünü gerektirir ve başka hiçbir gem olmadan standart kütüphanedeki Net::HTTP’yi kullanır.
Kullanımı nasıldır
- Çağrılar eşzamanlıdır (senkron). Tek bir istemci iş parçacıkları arasında paylaşılabilir ve bir
forksonrasında da doğru çalışmaya devam eder. - Akış hâlinde yanıt veren bir çağrıya bir blok verin; her olay o bloğa iletilir. Blok vermezseniz bunun yerine tembel bir
Enumerableakış alırsınız: istek ilkeachveyanextçağrısında gönderilir.nextile okunan bir akışın açıkçacloseile kapatılması gerekir. - Olayları
caseveinile eşleştirin. - Bir akışı erken durdurmak için bloktan
breakile çıkın ya dacloseçağırın. - Hatalar
Lingara::Errorsınıfından türer.retry_aftersaniye cinsinden bir sayıdır ya da API bir bekleme süresi belirtmediysenilolur. Lingara::Client.newmetoduna anahtar kelime argümanları vererek bir istemci oluşturun. Net::HTTP seçeneklerinet_http_optionsiçine girer; onun okuma zaman aşımı aynı zamanda akışın boşta kalma zaman aşımıdır.
Aşağıdaki örnekler gem’i kurar, bir istemci oluşturur, bir kelime listesini akış hâlinde alır ve bir hatayı işler.
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