yandex_translator_api 1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/yandex_translator_api.rb +66 -0
  3. metadata +42 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 80889444aa26843c30fbeb3dec1c8d4b6391c7626ea7cc21d20943679e52b3ce
4
+ data.tar.gz: fed3cc2dbe9ecae14040a0c6fd5b7282ce76ba20404344971eea63eabe17019d
5
+ SHA512:
6
+ metadata.gz: 0ac5fd701ee2ad28bdadc43b287a47f11407d81660043c4a9d0928f1bdbcea8574fb99c87c5adc24a81b732c4db10cf23edf98307533f7bfa4b8fb4e766d1647
7
+ data.tar.gz: 1171c72c1ea9a6cc51db7b5ce04e1c44907900f8008109598c7a921abe731fd0118081c4f8fc181b9482a874e0a6f193594adde5a629c627b79c940dececb0af
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+ require 'uri'
5
+ require 'json'
6
+ require 'singleton'
7
+
8
+ module YandexTranslatorApi
9
+ # configuration
10
+ class Config
11
+ include Singleton
12
+ attr_accessor :api_key, :default_lang
13
+
14
+ def self.api_key
15
+ @api_key
16
+ end
17
+
18
+ def self.api_key=(api_key)
19
+ @api_key = api_key
20
+ end
21
+
22
+ def self.default_lang
23
+ @default_lang
24
+ end
25
+
26
+ def self.default_lang=(default_lang)
27
+ @default_lang = default_lang
28
+ end
29
+ end
30
+ # client yandex api translate
31
+ class Api
32
+
33
+ def configurate(options = {})
34
+ Config.api_key = options[:api_key]
35
+ Config.default_lang = options[:default_lang] || 'en'
36
+ rescue StandardError
37
+ 'Input data error. Please check input data.'
38
+ end
39
+
40
+ def translate(options = {})
41
+ lang = options[:lang] || Config.default_lang || 'ru'
42
+ text = options[:text] || 'Hello'
43
+ uri = URI('https://translate.yandex.net/api/v1.5/tr.json/translate?' \
44
+ "key=#{Config.api_key}&lang=#{lang}&text=#{URI.encode(text)}")
45
+ res = Net::HTTP.get(uri)
46
+ JSON.parse(res)['text']
47
+ rescue StandardError
48
+ 'Request error. Please check input data or internet connection.'
49
+ end
50
+
51
+ def languages
52
+ uri = URI('https://translate.yandex.net/api/v1.5/tr.json/getLangs?' \
53
+ "key=#{Config.api_key}&ui=en")
54
+ res = Net::HTTP.get(uri)
55
+ JSON.parse(res)['langs']
56
+ rescue StandardError
57
+ 'Request error. Please check input data or internet connection.'
58
+ end
59
+ end
60
+ end
61
+
62
+ # example
63
+ # api = YandexTranslatorApi::Api.new
64
+ # api.configurate(api_key: 'trnsl.1.1.20191023T101011Z.d0ab8730fe62b788.be13f4dcbdd74247838474a096b5a4dbe82384fc', default_lang: 'ru')
65
+ # api.translate(text: 'Hello world', lang: 'zh')
66
+ # api.languages
metadata ADDED
@@ -0,0 +1,42 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yandex_translator_api
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.0'
5
+ platform: ruby
6
+ authors:
7
+ - teeara
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-10-26 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/yandex_translator_api.rb
20
+ homepage:
21
+ licenses: []
22
+ metadata: {}
23
+ post_install_message:
24
+ rdoc_options: []
25
+ require_paths:
26
+ - lib
27
+ required_ruby_version: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
32
+ required_rubygems_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ requirements: []
38
+ rubygems_version: 3.0.6
39
+ signing_key:
40
+ specification_version: 4
41
+ summary: Yandex Translator Api is the best
42
+ test_files: []