Ruby
यह पेज अंग्रेज़ी से अनुवादित है। अगर दोनों में अंतर हो, तो अंग्रेज़ी पेज सही है। अंग्रेज़ी पेज पढ़ें
Ruby लाइब्रेरी RubyGems पर lingara gem है। इसके लिए Ruby 3.3 या उसके बाद का संस्करण चाहिए और यह स्टैंडर्ड लाइब्रेरी के Net::HTTP का उपयोग करती है, किसी और gem के बिना।
इसे कैसे इस्तेमाल करें
- कॉल सिंक्रोनस होती हैं। एक क्लाइंट को थ्रेड्स के बीच साझा किया जा सकता है, और यह
forkके बाद भी सही बना रहता है। - किसी स्ट्रीमिंग कॉल को एक block दें और हर इवेंट उसे yield किया जाता है। block के बिना आपको इसके बजाय एक
Enumerableस्ट्रीम मिलती है, जो lazy है: अनुरोध पहलेeachयाnextपर भेजा जाता है।nextसे पढ़ी गई स्ट्रीम को स्पष्ट रूप सेcloseकरना पड़ता है। - इवेंट्स को
caseऔरinसे मिलाएँ। - स्ट्रीम को जल्दी रोकने के लिए,
breakसे block से बाहर निकलें, या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