dictionary_api 0.1.14 → 0.1.15

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTc1Yzc1OWI1NTI5MTc5ZWZlODEyODA3YTg0MzNjYmQ4MzYxMzBiOA==
4
+ NjlkMjQ5YmVmNDRjZmM4Y2M0MWNkZWI0ODNiZTA5NjZjNDU2NzJhNQ==
5
5
  data.tar.gz: !binary |-
6
- NDZiMWIwNWRjMjMwY2RiMzZhZDMxY2NmY2QzZWM3ZWFhMzhhMTVlYg==
6
+ ZDUzNTUwYWFiZTE3ZDhlNjAwMzY4MjQ1MzBhZTFmYzhkZGI2ZjVkNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDIxM2JhYmFjYTQwYzhiNWI5MGM3YmFlNzAyNTQyZGJiYjJhM2EzZTMzN2Iy
10
- YTcxYzY3MzA4YTRlNTUxZGIyNzhmNzQyNTUzNjY4OTkwNDAyMmE4NzgzZWE1
11
- MjRhNTIzNGZhN2FhODFjZjA1MGJhNzRlZDk1ZjYwOWVhMWM2NDE=
9
+ MDJkOGVlZTNjNzVkYTY0OWVkMmRjZDMxOTljNGM2NmMyZjE5YmFmZGZjMGVi
10
+ Zjg2YmQ3NGJmYTVmNGE0NTg1MTgyMzg2MGJhZmY5OGM0OTViZTkzNGVkNjg2
11
+ Zjc5NmRkZDgyODUzNzEwMjNjY2JhMTg4Njc2MjkyMWE1ZGM4OTQ=
12
12
  data.tar.gz: !binary |-
13
- YzVhMDhiOWNjMDYzZjA2NWRjM2NjODFiODBkNmJiNTFkODkyYTVlNTU2ZTBi
14
- MTE0ODZjNTk5ODg3YjFhNjA1MmRmNmRhNjFkMjUwNjU0MzQ0NGYwOTFjNTkw
15
- YmQ3NTc1MTJmYzE5MTU3NjAwOTRjNzc5MDY1NTYzOTA4MGJhODI=
13
+ NDBmMTVkYzk2NGFjNTMyZjExOThkOWRlN2I1ZTQxYzBmZWU4YTI5ZTA3OWQx
14
+ OThjNjNlMWYzNjBmNmQyMTg3Y2JmYTBkZDZkYzFiYzliNTExOTVkZjFmMzA4
15
+ MTRjZjQ2NTExMjJjNTQ2MGZlMTIwODczMGM1Y2FkNjc1ZjlhYTk=
@@ -4,31 +4,33 @@ require 'dictionary_api/parser'
4
4
 
5
5
  module DictionaryAPI
6
6
 
7
- class DictionaryAPI
7
+ class DictionaryAPI
8
8
 
9
- attr_accessor :api_key
9
+ attr_accessor :api_key
10
10
 
11
- def initialize(key)
12
- @api_key = key
13
- end
11
+ def initialize(key)
12
+ @api_key = key
13
+ end
14
14
 
15
- def get_langs
16
- JSON.parse client.execute('getLangs', {key: @api_key}).body
17
- end
15
+ def get_langs
16
+ JSON.parse client.execute('getLangs', {key: @api_key}).body
17
+ end
18
18
 
19
- def lookup(lang, text)
20
- response = JSON.parse client.execute('lookup', {key: @api_key, lang: lang, text: text}).body
21
- parser.parse(response)
22
- end
19
+ def lookup(lang, text)
20
+ response = JSON.parse client.execute('lookup', {key: @api_key, lang: lang, text: text}).body
21
+ parser.parse(response)
22
+ end
23
23
 
24
- protected
24
+ protected
25
25
 
26
- def client
27
- @client ||= Client.new
28
- end
26
+ def client
27
+ @client ||= Client.new
28
+ end
29
+
30
+ def parser
31
+ @parser ||= Parser.new
32
+ end
33
+ end
34
+
35
+ end
29
36
 
30
- def parser
31
- @parser ||= Parser.new
32
- end
33
- end
34
- end
@@ -1,7 +1,13 @@
1
1
  module DictionaryAPI
2
2
 
3
- class Article
4
- attr_accessor :text, :position, :transcription, :translation
5
- end
3
+ class Article
4
+
5
+ attr_accessor :text, :position, :transcription, :translation
6
+
7
+ def attributes
8
+ {text: text, position: position, transcription: transcription}
9
+ end
10
+
11
+ end
6
12
 
7
13
  end
@@ -2,27 +2,27 @@ require 'httpclient'
2
2
 
3
3
  module DictionaryAPI
4
4
 
5
- class DictionaryAPI::Client
5
+ class DictionaryAPI::Client
6
6
 
7
- BASE_URL = "https://dictionary.yandex.net/api/v1/dicservice.json/"
7
+ BASE_URL = "https://dictionary.yandex.net/api/v1/dicservice.json/"
8
8
 
9
- def execute(path, options = {})
10
- response = HTTPClient.post(BASE_URL + path, options)
11
- self.check_errors(response)
12
- end
9
+ def execute(path, options = {})
10
+ response = HTTPClient.post(BASE_URL + path, options)
11
+ self.check_errors(response)
12
+ end
13
13
 
14
- protected
14
+ protected
15
15
 
16
- def check_errors(response)
17
- case response.code
18
- when 200 then response
19
- when 401 then raise 'Invalid API key'
20
- when 402 then raise 'API key blocked'
21
- when 403 then raise 'Daily limit of requests is exceeded'
22
- when 413 then raise 'Text too long'
23
- when 501 then raise 'Translate direction is not supported'
24
- end
25
- end
26
- end
27
-
28
- end
16
+ def check_errors(response)
17
+ case response.code
18
+ when 200 then response
19
+ when 401 then raise 'Invalid API key'
20
+ when 402 then raise 'API key blocked'
21
+ when 403 then raise 'Daily limit of requests is exceeded'
22
+ when 413 then raise 'Text too long'
23
+ when 501 then raise 'Translate direction is not supported'
24
+ end
25
+ end
26
+ end
27
+
28
+ end
@@ -3,41 +3,44 @@ require 'dictionary_api/translation_article'
3
3
 
4
4
  module DictionaryAPI
5
5
 
6
- class DictionaryAPI::Parser
7
-
8
- def parse(response)
9
- response['def'].inject([]) { |result, response_el| result << self.build_article(response_el) }
10
- end
11
-
12
- protected
13
-
14
- def build_article(articles_hash)
15
- article = Article.new
16
- article.text = articles_hash['text']
17
- article.position = articles_hash['pos']
18
- article.transcription = articles_hash['ts']
19
- article.translation = articles_hash['tr'].inject([]) { |result, el| result << self.build_translation_article(el) }
20
- article
21
- end
22
-
23
- def build_translation_article(articles_hash)
24
- translation_article = TranslationArticle.new
25
- translation_article.text = articles_hash['text']
26
- translation_article.position = articles_hash['pos']
27
- translation_article.synonym = self.build_array(articles_hash['syn']) unless articles_hash['syn'].nil?
28
- translation_article.meaning = self.build_array(articles_hash['mean']) unless articles_hash['mean'].nil?
29
- translation_article.example = self.build_array(articles_hash['ex']) unless articles_hash['ex'].nil?
30
- translation_article.aspect = articles_hash['asp']
31
- translation_article
32
- end
33
-
34
- def build_array(articles_array)
35
- articles_array.inject([]) do |result, element|
36
- result << element.to_a.inject([]) do |result, el|
37
- result << (el[1].class == Array ? self.build_array(el[1]) : el[1])
38
- end
39
- result.flatten!
40
- end
41
- end
42
- end
43
- end
6
+ class DictionaryAPI::Parser
7
+
8
+ def parse(response)
9
+ response['def'].inject([]) { |result, response_el| result << self.build_article(response_el) }
10
+ end
11
+
12
+ protected
13
+
14
+ def build_article(articles_hash)
15
+ article = Article.new
16
+ article.text = articles_hash['text']
17
+ article.position = articles_hash['pos']
18
+ article.transcription = articles_hash['ts']
19
+ article.translation = articles_hash['tr'].inject([]) { |result, el| result << self.build_translation_article(el) }
20
+ article
21
+ end
22
+
23
+ def build_translation_article(articles_hash)
24
+ translation_article = TranslationArticle.new
25
+ translation_article.text = articles_hash['text']
26
+ translation_article.position = articles_hash['pos']
27
+ translation_article.synonym = self.build_array(articles_hash['syn']) unless articles_hash['syn'].nil?
28
+ translation_article.meaning = self.build_array(articles_hash['mean']) unless articles_hash['mean'].nil?
29
+ translation_article.example = self.build_array(articles_hash['ex']) unless articles_hash['ex'].nil?
30
+ translation_article.aspect = articles_hash['asp']
31
+ translation_article
32
+ end
33
+
34
+ def build_array(articles_array)
35
+ articles_array.inject([]) do |result, element|
36
+ result << element.to_a.inject([]) do |result, el|
37
+ result << (el[1].class == Array ? self.build_array(el[1]) : el[1])
38
+ end
39
+ result.flatten!
40
+ end
41
+ end
42
+ end
43
+
44
+ end
45
+
46
+
@@ -1,7 +1,13 @@
1
1
  module DictionaryAPI
2
2
 
3
- class TranslationArticle
4
- attr_accessor :text, :position, :gender, :animated, :synonym, :meaning, :example, :aspect
5
- end
3
+ class TranslationArticle
4
+
5
+ attr_accessor :text, :position, :gender, :animated, :synonym, :meaning, :example, :aspect
6
+
7
+ def attributes
8
+ {text: text, position: position, gender: gender, animated: animated, synonym: synonym, meaning: meaning, example: example, aspect: aspect}
9
+ end
10
+
11
+ end
6
12
 
7
13
  end
@@ -1,26 +1,26 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe DictionaryAPI do
4
-
5
- it "get_langs" do
6
- dict = DictionaryAPI.new('dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e')
7
- dict.get_langs.size.should eq 86
8
- dict.get_langs.should include('en-ru')
9
- dict.get_langs.should include('ru-en')
10
- end
4
+
5
+ it "get_langs" do
6
+ dict = DictionaryAPI.new('dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e')
7
+ dict.get_langs.size.should eq 86
8
+ dict.get_langs.should include('en-ru')
9
+ dict.get_langs.should include('ru-en')
10
+ end
11
11
 
12
- it "lookup" do
13
- dict = DictionaryAPI.new('dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e')
14
- response = dict.lookup('en-ru', 'time')
15
- response.size.should eq 3
16
- response[0].text.should_not be_nil
17
- response[0].position.should_not be_nil
18
- response[0].transcription.should_not be_nil
19
- response[0].translation.should_not be_nil
20
- end
12
+ it "lookup" do
13
+ dict = DictionaryAPI.new('dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e')
14
+ response = dict.lookup('en-ru', 'time')
15
+ response.size.should eq 3
16
+ response[0].text.should_not be_nil
17
+ response[0].position.should_not be_nil
18
+ response[0].transcription.should_not be_nil
19
+ response[0].translation.should_not be_nil
20
+ end
21
21
 
22
- it "check errors" do
23
- dict = DictionaryAPI.new('q9fjq9fjioj')
24
- expect{ dict.lookup('en-ru', 'time') }.to raise_error(Exception)
25
- end
22
+ it "check errors" do
23
+ dict = DictionaryAPI.new('q9fjq9fjioj')
24
+ expect{ dict.lookup('en-ru', 'time') }.to raise_error(Exception)
25
+ end
26
26
  end
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Client do
4
-
5
- it 'execute' do
6
- key = 'dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e'
7
- client = Client.new(key)
8
- JSON.parse(client.execute('getLangs').body).size.should eq 86
9
- end
10
-
4
+
5
+ it 'execute' do
6
+ key = 'dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e'
7
+ client = Client.new(key)
8
+ JSON.parse(client.execute('getLangs').body).size.should eq 86
9
+ end
10
+
11
11
  end
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Parser do
4
-
5
- it 'parse' do
6
- key = 'dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e'
7
- client = Client.new(key)
8
- response = JSON.parse(client.execute('lookup', ['en-ru', 'time']).body)
9
- parser = Parser.new
10
- parser.parse(response).size.should eq 3
11
- end
12
-
4
+
5
+ it 'parse' do
6
+ key = 'dict.1.1.20150814T100205Z.a0d27651d642b1d1.93ce6ba9cd891aada1fb98d47b6cd89c15a32f2e'
7
+ client = Client.new(key)
8
+ response = JSON.parse(client.execute('lookup', ['en-ru', 'time']).body)
9
+ parser = Parser.new
10
+ parser.parse(response).size.should eq 3
11
+ end
12
+
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dictionary_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - spitsman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-20 00:00:00.000000000 Z
11
+ date: 2015-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler