Lingara Lingara 說明文件 學習指南 API 函式庫 應用程式 起造 網頁版
語言: 閩南語

Ruby

這頁是對英文翻譯過來的。若兩篇無仝,以英文頁為準。 看英文頁

Ruby 函式庫是 RubyGems 頂面的 lingara gem。伊愛 Ruby 3.3 抑是較新的版本,用標準函式庫內底的 Net::HTTP,免其他的 gem。

用起來按怎

  • 呼叫是同步的。一个用戶端會當佇幾若條執行緒之間共用,經過 fork 了後嘛猶是正確。
  • 傳一个區塊予串流呼叫,逐个事件就會一个一个交予伊。無傳區塊的話,你會提著一个 Enumerable 串流,伊是惰性的:請求愛等到頭一擺 each 抑是 next 才會送出去。用 next 讀的串流愛明確 close。
  • 用 case 佮 in 來對事件。
  • 想欲提早停止串流,會當用 break 離開區塊,抑是呼叫 close。
  • 錯誤繼承自 Lingara::Error。retry_after 是秒數,若 API 無講愛等偌久就是 nil。
  • 用關鍵字引數呼叫 Lingara::Client.new 來建立用戶端。Net::HTTP 的選項囥佇 net_http_options;伊的讀取逾時仝時嘛是串流的閒置逾時。

下面的範例會安裝 gem、建立用戶端、用串流提一份詞彙清單,閣處理錯誤。

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

這頁包的內容