yandex-translator-api 1.0.0 → 1.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.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/.rubocop.yml +46 -0
- data/Gemfile +2 -0
- data/README.md +43 -1
- data/Rakefile +1 -1
- data/bin/console +3 -3
- data/lib/yandex.rb +1 -0
- data/lib/yandex/translator.rb +18 -23
- data/lib/yandex/translator/detect.rb +5 -5
- data/lib/yandex/translator/langs.rb +5 -5
- data/lib/yandex/translator/translate.rb +5 -5
- data/lib/yandex/version.rb +1 -1
- data/yandex.gemspec +3 -1
- metadata +21 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9c69bfa8ce26b71f8dbce328bb54b5ec6a31e32
|
4
|
+
data.tar.gz: ce99603a1859fafc89485608a750b7ae7383a3e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c20185398da0e5e784c8dbf33ff91ed47f62853afdec1939f920f94967579b615c1abdc7b38a44aa6745518c5acb8626dc06005f7747e19903f17cc89196790
|
7
|
+
data.tar.gz: e80d06c8d20eb76498693fc30e5e6a22932d35a354170ccd5a4e24c7caeead36ad5bc5b79dc863bf4e31c794db5b3632a94cd0888d70eb5e886f4d55f64cacb0
|
data/.rspec
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- bin/*
|
4
|
+
|
5
|
+
Metrics/AbcSize:
|
6
|
+
Enabled: false
|
7
|
+
|
8
|
+
Metrics/BlockLength:
|
9
|
+
Enabled: false
|
10
|
+
|
11
|
+
Metrics/ClassLength:
|
12
|
+
Enabled: false
|
13
|
+
|
14
|
+
Metrics/LineLength:
|
15
|
+
Enabled: false
|
16
|
+
|
17
|
+
Metrics/MethodLength:
|
18
|
+
Enabled: false
|
19
|
+
|
20
|
+
Metrics/ModuleLength:
|
21
|
+
Enabled: false
|
22
|
+
|
23
|
+
Metrics/CyclomaticComplexity:
|
24
|
+
Max: 20
|
25
|
+
|
26
|
+
Layout/IndentationWidth:
|
27
|
+
Width: 4
|
28
|
+
|
29
|
+
Layout/CaseIndentation:
|
30
|
+
EnforcedStyle: case
|
31
|
+
SupportedStyles:
|
32
|
+
- case
|
33
|
+
- end
|
34
|
+
IndentOneStep: true
|
35
|
+
|
36
|
+
Layout/AlignHash:
|
37
|
+
Enabled: false
|
38
|
+
|
39
|
+
Style/GuardClause:
|
40
|
+
Enabled: false
|
41
|
+
|
42
|
+
Style/FileName:
|
43
|
+
Enabled: false
|
44
|
+
|
45
|
+
Style/FormatStringToken:
|
46
|
+
EnforcedStyle: template
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -23,7 +23,8 @@ Or install it yourself as:
|
|
23
23
|
Create Translator object.
|
24
24
|
|
25
25
|
```ruby
|
26
|
-
|
26
|
+
require 'yandex'
|
27
|
+
translator = Yandex::Translator.new(api_key: 'api_key')
|
27
28
|
```
|
28
29
|
|
29
30
|
### Langs
|
@@ -36,6 +37,18 @@ Request for getting possible translation directions is #langs.
|
|
36
37
|
|
37
38
|
It returns array of possible translations or error.
|
38
39
|
|
40
|
+
#### Responces
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
{
|
44
|
+
"dirs"=>[
|
45
|
+
"az-ru",
|
46
|
+
"be-bg",
|
47
|
+
"en-ru"
|
48
|
+
]
|
49
|
+
}
|
50
|
+
```
|
51
|
+
|
39
52
|
### Detect
|
40
53
|
|
41
54
|
Request for detecting language of the text is #detect.
|
@@ -48,6 +61,20 @@ Request for detecting language of the text is #detect.
|
|
48
61
|
text - text for detecting, required param
|
49
62
|
hint - list of possible languages
|
50
63
|
|
64
|
+
#### Responces
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
{
|
68
|
+
"code"=>200,
|
69
|
+
"lang"=>"en"
|
70
|
+
}
|
71
|
+
```
|
72
|
+
```ruby
|
73
|
+
{
|
74
|
+
:error=>"Bad Request"
|
75
|
+
}
|
76
|
+
```
|
77
|
+
|
51
78
|
### Translate
|
52
79
|
|
53
80
|
Request for translating of the text is #translate.
|
@@ -61,6 +88,21 @@ Request for translating of the text is #translate.
|
|
61
88
|
from - language of the text
|
62
89
|
to - translating direction, required param
|
63
90
|
|
91
|
+
#### Responces
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
{
|
95
|
+
"code"=>200,
|
96
|
+
"lang"=>"en-ru",
|
97
|
+
"text"=>["привет"]
|
98
|
+
}
|
99
|
+
```
|
100
|
+
```ruby
|
101
|
+
{
|
102
|
+
:error=>"Bad Request"
|
103
|
+
}
|
104
|
+
```
|
105
|
+
|
64
106
|
## Contributing
|
65
107
|
|
66
108
|
Bug reports and pull requests are welcome on GitHub at https://github.com/kortirso/yandex-translator-api.
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'yandex'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +10,5 @@ require "yandex"
|
|
10
10
|
# require "pry"
|
11
11
|
# Pry.start
|
12
12
|
|
13
|
-
require
|
13
|
+
require 'irb'
|
14
14
|
IRB.start(__FILE__)
|
data/lib/yandex.rb
CHANGED
data/lib/yandex/translator.rb
CHANGED
@@ -1,46 +1,41 @@
|
|
1
|
+
require 'httparty'
|
1
2
|
require_relative 'translator/langs'
|
2
3
|
require_relative 'translator/detect'
|
3
4
|
require_relative 'translator/translate'
|
4
|
-
require 'net/http'
|
5
|
-
require 'json'
|
6
5
|
|
7
6
|
module Yandex
|
7
|
+
# Translator class
|
8
8
|
class Translator
|
9
|
+
class YandexFailure < StandardError; end
|
10
|
+
|
11
|
+
include HTTParty
|
9
12
|
include Yandex::Translator::Langs
|
10
13
|
include Yandex::Translator::Detect
|
11
14
|
include Yandex::Translator::Translate
|
12
15
|
|
13
|
-
|
16
|
+
base_uri 'https://translate.yandex.net/api/v1.5/tr.json'
|
17
|
+
format :json
|
14
18
|
|
15
|
-
attr_reader :api_key
|
19
|
+
attr_reader :api_key
|
16
20
|
|
17
|
-
def initialize(
|
18
|
-
@api_key = api_key
|
19
|
-
@base_uri = 'https://translate.yandex.net/api/v1.5/tr.json'
|
21
|
+
def initialize(args = {})
|
22
|
+
@api_key = args[:api_key]
|
20
23
|
end
|
21
24
|
|
22
|
-
private
|
23
|
-
|
24
|
-
def call(address, args = {})
|
25
|
-
response = http_request(address, args)
|
25
|
+
private def request(uri, args = {})
|
26
|
+
response = self.class.post(uri, query: args.merge(key: api_key))
|
26
27
|
check_response(response)
|
27
28
|
response
|
28
29
|
end
|
29
30
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
|
35
|
-
end
|
36
|
-
|
37
|
-
def check_response(response)
|
38
|
-
if response.code != '200'
|
39
|
-
raise YandexFailure, JSON.parse(response.body)['message']
|
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
|
40
35
|
end
|
41
36
|
end
|
42
37
|
|
43
|
-
def check_args(args)
|
38
|
+
private def check_args(args)
|
44
39
|
args.each do |arg_name, value|
|
45
40
|
if value.nil? || !value.is_a?(String)
|
46
41
|
raise YandexFailure, "Invalid argument '#{arg_name}', must be string"
|
@@ -48,4 +43,4 @@ module Yandex
|
|
48
43
|
end
|
49
44
|
end
|
50
45
|
end
|
51
|
-
end
|
46
|
+
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module Yandex
|
2
2
|
class Translator
|
3
|
+
# Detection module
|
3
4
|
module Detect
|
4
|
-
|
5
|
+
# Detect language
|
5
6
|
def detect(args = {})
|
6
7
|
check_args(text: args[:text])
|
7
|
-
response =
|
8
|
-
|
8
|
+
response = request('/detect', hint: args[:hint], text: args[:text])
|
9
|
+
response.parsed_response
|
9
10
|
rescue YandexFailure => ex
|
10
11
|
return { error: ex.message }
|
11
12
|
end
|
12
|
-
|
13
13
|
end
|
14
14
|
end
|
15
|
-
end
|
15
|
+
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module Yandex
|
2
2
|
class Translator
|
3
|
+
# Available languages module
|
3
4
|
module Langs
|
4
|
-
|
5
|
+
# Get list of available languages for translation
|
5
6
|
def langs
|
6
|
-
response =
|
7
|
-
|
7
|
+
response = request('/getLangs')
|
8
|
+
response.parsed_response
|
8
9
|
rescue YandexFailure => ex
|
9
10
|
return { error: ex.message }
|
10
11
|
end
|
11
|
-
|
12
12
|
end
|
13
13
|
end
|
14
|
-
end
|
14
|
+
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
module Yandex
|
2
2
|
class Translator
|
3
|
+
# Translate module
|
3
4
|
module Translate
|
4
|
-
|
5
|
+
# Translate text
|
5
6
|
def translate(args = {})
|
6
7
|
check_args(text: args[:text], to: args[:to])
|
7
8
|
translate_direction = args[:from].nil? ? args[:to] : "#{args[:from]}-#{args[:to]}"
|
8
|
-
response =
|
9
|
-
|
9
|
+
response = request('/translate', lang: translate_direction, text: args[:text])
|
10
|
+
response.parsed_response
|
10
11
|
rescue YandexFailure => ex
|
11
12
|
return { error: ex.message }
|
12
13
|
end
|
13
|
-
|
14
14
|
end
|
15
15
|
end
|
16
|
-
end
|
16
|
+
end
|
data/lib/yandex/version.rb
CHANGED
data/yandex.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'yandex/version'
|
@@ -23,5 +24,6 @@ Gem::Specification.new do |spec|
|
|
23
24
|
|
24
25
|
spec.add_development_dependency 'bundler', '~> 1.14'
|
25
26
|
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
-
spec.add_development_dependency '
|
27
|
+
spec.add_development_dependency 'rubocop', '~> 0.49.1'
|
28
|
+
spec.add_dependency 'httparty', '~> 0.15'
|
27
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.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Bogdanov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,19 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rubocop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.49.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.49.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: httparty
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.15'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.15'
|
55
69
|
description: Gem for sending words for translation to Yandex Translator API
|
56
70
|
email:
|
57
71
|
- kortirso@gmail.com
|
@@ -61,6 +75,7 @@ extra_rdoc_files: []
|
|
61
75
|
files:
|
62
76
|
- ".gitignore"
|
63
77
|
- ".rspec"
|
78
|
+
- ".rubocop.yml"
|
64
79
|
- ".travis.yml"
|
65
80
|
- Gemfile
|
66
81
|
- LICENSE.txt
|
@@ -95,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
110
|
version: '0'
|
96
111
|
requirements: []
|
97
112
|
rubyforge_project:
|
98
|
-
rubygems_version: 2.6.
|
113
|
+
rubygems_version: 2.6.14
|
99
114
|
signing_key:
|
100
115
|
specification_version: 4
|
101
116
|
summary: Text translating by Yandex Translator API
|