yandex-translator-api 1.1.0 → 1.2
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/Gemfile +2 -2
- data/lib/yandex/translator.rb +30 -30
- data/lib/yandex/translator/detect.rb +12 -12
- data/lib/yandex/translator/langs.rb +11 -11
- data/lib/yandex/translator/translate.rb +13 -13
- data/lib/yandex/version.rb +1 -1
- data/yandex.gemspec +18 -18
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42f7467da7829216bc58cacb7dcd3439ff66dac9
|
4
|
+
data.tar.gz: 1103ca3c24fb080e3d4b20968b7451fa8fcccbef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96113e7642a94eecb114519f313deb5cb3e709023e9fde8a3854cbfd516be6d8c9cacbae06bd6d420b7a302b1b57a3824e63438890357004528f4c0d2e1bacfc
|
7
|
+
data.tar.gz: efe80f86d4c192a622432e87d000ac37b6f74b40aabbb9bdf567a31e1af04c4f500b26719e0a75ede0e9d510005918675f491b7d2f2e007465fb5579b0c348f7
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/lib/yandex/translator.rb
CHANGED
@@ -4,43 +4,43 @@ require_relative 'translator/detect'
|
|
4
4
|
require_relative 'translator/translate'
|
5
5
|
|
6
6
|
module Yandex
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
# Translator class
|
8
|
+
class Translator
|
9
|
+
class YandexFailure < StandardError; end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
include HTTParty
|
12
|
+
include Yandex::Translator::Langs
|
13
|
+
include Yandex::Translator::Detect
|
14
|
+
include Yandex::Translator::Translate
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
base_uri 'https://translate.yandex.net/api/v1.5/tr.json'
|
17
|
+
format :json
|
18
18
|
|
19
|
-
|
19
|
+
attr_reader :api_key
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
def initialize(args = {})
|
22
|
+
@api_key = args[:api_key]
|
23
|
+
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
25
|
+
private def request(uri, args = {})
|
26
|
+
response = self.class.post(uri, query: args.merge(key: api_key))
|
27
|
+
check_response(response)
|
28
|
+
response
|
29
|
+
end
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
31
|
+
private def check_response(response)
|
32
|
+
if response.code != 200
|
33
|
+
error_message = response.message.empty? ? response.code : response.message
|
34
|
+
raise YandexFailure, error_message
|
35
|
+
end
|
36
|
+
end
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|
38
|
+
private def check_args(args)
|
39
|
+
args.each do |arg_name, value|
|
40
|
+
if value.nil? || !value.is_a?(String)
|
41
|
+
raise YandexFailure, "Invalid argument '#{arg_name}', must be string"
|
44
42
|
end
|
43
|
+
end
|
45
44
|
end
|
45
|
+
end
|
46
46
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module Yandex
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
2
|
+
class Translator
|
3
|
+
# Detection module
|
4
|
+
module Detect
|
5
|
+
# Detect language
|
6
|
+
def detect(args = {})
|
7
|
+
check_args(text: args[:text])
|
8
|
+
response = request('/detect', hint: args[:hint], text: args[:text])
|
9
|
+
response.parsed_response
|
10
|
+
rescue YandexFailure => ex
|
11
|
+
return { error: ex.message }
|
12
|
+
end
|
14
13
|
end
|
14
|
+
end
|
15
15
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module Yandex
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
2
|
+
class Translator
|
3
|
+
# Available languages module
|
4
|
+
module Langs
|
5
|
+
# Get list of available languages for translation
|
6
|
+
def langs
|
7
|
+
response = request('/getLangs')
|
8
|
+
response.parsed_response
|
9
|
+
rescue YandexFailure => ex
|
10
|
+
return { error: ex.message }
|
11
|
+
end
|
13
12
|
end
|
13
|
+
end
|
14
14
|
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
module Yandex
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
2
|
+
class Translator
|
3
|
+
# Translate module
|
4
|
+
module Translate
|
5
|
+
# Translate text
|
6
|
+
def translate(args = {})
|
7
|
+
check_args(text: args[:text], to: args[:to])
|
8
|
+
translate_direction = args[:from].nil? ? args[:to] : "#{args[:from]}-#{args[:to]}"
|
9
|
+
response = request('/translate', lang: translate_direction, text: args[:text])
|
10
|
+
response.parsed_response
|
11
|
+
rescue YandexFailure => ex
|
12
|
+
return { error: ex.message }
|
13
|
+
end
|
15
14
|
end
|
15
|
+
end
|
16
16
|
end
|
data/lib/yandex/version.rb
CHANGED
data/yandex.gemspec
CHANGED
@@ -5,25 +5,25 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require 'yandex/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
spec.name = 'yandex-translator-api'
|
9
|
+
spec.version = Yandex::VERSION
|
10
|
+
spec.authors = ['Anton Bogdanov']
|
11
|
+
spec.email = ['kortirso@gmail.com']
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
spec.summary = 'Text translating by Yandex Translator API'
|
14
|
+
spec.description = 'Gem for sending words for translation to Yandex Translator API'
|
15
|
+
spec.homepage = 'https://github.com/kortirso/yandex-translator-api'
|
16
|
+
spec.license = 'MIT'
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
19
|
+
f.match(%r{^(test|spec|features)/})
|
20
|
+
end
|
21
|
+
spec.bindir = 'exe'
|
22
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
+
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
spec.add_development_dependency 'bundler', '~> 1.14'
|
26
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
27
|
+
spec.add_development_dependency 'rubocop', '~> 0.49.1'
|
28
|
+
spec.add_dependency 'httparty', '~> 0.15'
|
29
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yandex-translator-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Bogdanov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|