Ruby
Αυτή η σελίδα έχει μεταφραστεί από τα αγγλικά. Αν οι δύο διαφέρουν, η αγγλική σελίδα είναι η σωστή. Διαβάστε την αγγλική σελίδα
Η βιβλιοθήκη για Ruby είναι το gem lingara στο RubyGems. Απαιτεί Ruby 3.3 ή νεότερη και χρησιμοποιεί το Net::HTTP από την τυπική βιβλιοθήκη, χωρίς άλλα gems.
Πώς διαβάζεται
- Οι κλήσεις είναι σύγχρονες. Ένας client μπορεί να μοιράζεται μεταξύ νημάτων και παραμένει σωστός και μετά από ένα
fork. - Περάστε ένα block σε μια κλήση ροής και κάθε συμβάν παραδίδεται σε αυτό. Χωρίς block λαμβάνετε αντί γι’ αυτό μια ροή
Enumerable, η οποία είναι οκνηρή: το αίτημα αποστέλλεται στο πρώτοeachήnext. Μια ροή που διαβάζεται μεnextχρειάζεται ρητόclose. - Αντιστοιχίστε τα συμβάντα με
caseκαιin. - Για να σταματήσετε μια ροή νωρίς, βγείτε από το block με
break, ή καλέστεclose. - Τα σφάλματα κληρονομούν από το
Lingara::Error. Τοretry_afterείναι ένας αριθμός δευτερολέπτων, ήnilόταν το API δεν όρισε αναμονή. - Δημιουργήστε έναν client με ορίσματα λέξεων-κλειδιών στο
Lingara::Client.new. Οι επιλογές για το Net::HTTP μπαίνουν στοnet_http_options· το χρονικό όριο ανάγνωσής του είναι και το χρονικό όριο αδράνειας της ροής.
Τα παρακάτω δείγματα εγκαθιστούν το gem, δημιουργούν έναν client, μεταδίδουν σε ροή μια λίστα λεξιλογίου και χειρίζονται ένα σφάλμα.
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