Ruby
Trang này được dịch từ tiếng Anh. Nếu hai bản khác nhau, trang tiếng Anh là bản đúng. Đọc trang tiếng Anh
Thư viện Ruby là gem lingara trên RubyGems. Thư viện cần Ruby 3.3 trở lên và dùng Net::HTTP từ thư viện chuẩn, không cần gem nào khác.
Cách sử dụng
- Các lệnh gọi là đồng bộ. Một máy khách có thể được dùng chung giữa các luồng thực thi, và vẫn hoạt động đúng sau một lần
fork. - Truyền một block cho lệnh gọi phát trực tuyến và từng sự kiện sẽ được yield vào block đó. Nếu không có block, bạn sẽ nhận được một luồng
Enumerable, vốn có tính lười: yêu cầu được gửi ở lầneachhoặcnextđầu tiên. Luồng được đọc bằngnextcần một lệnhclosetường minh. - So khớp sự kiện bằng
casevàin. - Để dừng luồng sớm, hãy thoát khỏi block bằng
break, hoặc gọiclose. - Các lỗi kế thừa từ
Lingara::Error.retry_afterlà số giây, hoặcnilkhi API không nêu thời gian chờ. - Tạo máy khách bằng các đối số từ khóa cho
Lingara::Client.new. Tùy chọn cho Net::HTTP được đặt trongnet_http_options; thời gian chờ đọc của nó cũng là thời gian chờ khi rảnh của luồng.
Các mẫu dưới đây cài đặt gem, tạo máy khách, phát trực tuyến một danh sách từ vựng và xử lý lỗi.
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