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.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