Lingara Lingara ドキュメント 学習ガイド API ライブラリ アプリ 作成 ウェブ版
言語: 日本語

Ruby

このページは英語から翻訳されています。内容に相違がある場合は、英語のページが正しい内容です。 英語のページを読む

Ruby ライブラリは RubyGems の lingara gem です。Ruby 3.3 以降が必要で、標準ライブラリの Net::HTTP を使用し、ほかの gem は使いません。

使い方

  • 呼び出しは同期的です。1 つのクライアントを複数のスレッドで共有でき、fork をまたいでも正しく動作します。
  • ストリーミング呼び出しにブロックを渡すと、各イベントがそのブロックに yield されます。ブロックを渡さない場合は、代わりに 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

このページがラップするもの