Lingara Lingara مستندات رهنماها API کتابخانه‌ها اپلیکیشن‌ها ساختن اپلیکیشن وب
زبان: دری

Ruby

این صفحه از انگلیسی ترجمه شده است. اگر این دو با هم فرق داشته باشند، صفحهٔ انگلیسی درست است. صفحهٔ انگلیسی را بخوانید

کتابخانه Ruby همان gem با نام lingara در RubyGems است. به 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

آنچه این صفحه دربر می‌گیرد