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 عددًا من الثواني، أو nil عندما لا يحدد الـ API مدة انتظار.
  • أنشئ عميلًا بوسائط مسماة تُمرَّر إلى 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

ما تغلّفه هذه الصفحة