linguara 0.0.4 → 0.0.5
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.
- data/VERSION +1 -1
- data/lib/linguara/configuration.rb +1 -1
- data/lib/linguara/request.rb +9 -0
- data/lib/linguara.rb +22 -8
- data/linguara.gemspec +3 -2
- data/spec/linguara_spec.rb +52 -5
- metadata +5 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Linguara
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :api_key, :server_path, :return_url, :user, :password, :request_valid_for, :site_url, :log
|
3
|
+
attr_accessor :api_key, :server_path, :return_url, :user, :password, :request_valid_for, :site_url, :log
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
self.log = true
|
data/lib/linguara.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'uri'
|
3
|
+
require 'nokogiri'
|
3
4
|
require 'linguara/configuration'
|
4
5
|
require 'linguara/utils'
|
5
6
|
require 'linguara/translation'
|
7
|
+
require 'linguara/request'
|
6
8
|
|
7
9
|
module Linguara
|
8
10
|
extend Linguara::Utils
|
@@ -31,6 +33,7 @@ module Linguara
|
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
36
|
+
# Sends translation request
|
34
37
|
def send_translation_request(element, options = {})
|
35
38
|
translation = Translation.new(element, options)
|
36
39
|
url= URI.parse("#{Linguara.configuration.server_path}api/translations.xml")
|
@@ -38,30 +41,46 @@ module Linguara
|
|
38
41
|
send_linguara_request(req, url)
|
39
42
|
end
|
40
43
|
|
44
|
+
# Sends status request
|
41
45
|
def send_status_query(translation_request_id)
|
42
46
|
url= URI.parse("#{Linguara.configuration.server_path}api/translations/#{translation_request_id}/status.xml")
|
43
47
|
req = prepare_request(url, :authorization => true)
|
44
48
|
send_linguara_request(req, url)
|
45
49
|
end
|
46
50
|
|
51
|
+
# Sends languages request
|
47
52
|
def send_languages_request(options={})
|
48
53
|
url= URI.parse("#{Linguara.configuration.server_path}api/languages.xml")
|
49
54
|
req = prepare_request(url, options.merge(:method => :get))
|
50
55
|
send_linguara_request(req, url)
|
51
56
|
end
|
52
57
|
|
53
|
-
|
58
|
+
# Sends specializations request
|
59
|
+
def send_specializations_request(options = {})
|
54
60
|
url= URI.parse("#{Linguara.configuration.server_path}api/specializations.xml")
|
55
61
|
req = prepare_request(url, options.merge(:method => :get))
|
56
62
|
send_linguara_request(req, url)
|
57
63
|
end
|
58
64
|
|
59
|
-
|
65
|
+
# Sends translators request
|
66
|
+
def send_translators_request(options = {})
|
60
67
|
url= URI.parse("#{Linguara.configuration.server_path}api/translators.xml")
|
61
68
|
req = prepare_request(url, options.merge(:method => :get))
|
62
69
|
send_linguara_request(req, url)
|
63
70
|
end
|
64
71
|
|
72
|
+
def available_languages
|
73
|
+
Nokogiri::XML(send_languages_request.response.body).xpath("//language").map do |element|
|
74
|
+
[element.xpath('name').inner_text, element.xpath('code').inner_text]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def available_specializations
|
79
|
+
Nokogiri::XML(send_specializations_request.response.body).xpath("//specialization").map do |element|
|
80
|
+
[element.xpath('name').inner_text, element.xpath('id').inner_text]
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
65
84
|
# Override this method if you want to perform some action when connection
|
66
85
|
# with linguara cannot be established e.g. log request or redo the send
|
67
86
|
def handle_request_error
|
@@ -112,12 +131,7 @@ module Linguara
|
|
112
131
|
log("SENDING LINGUARA REQUEST TO #{url.path}: \n#{req.body}")
|
113
132
|
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
|
114
133
|
log("LINGUARA RESPONSE: #{res.message} -- #{res.body}")
|
115
|
-
|
116
|
-
if Linguara.configuration.return_request
|
117
|
-
return req
|
118
|
-
else
|
119
|
-
return res
|
120
|
-
end
|
134
|
+
return LinguaraRequest.new( :request => req, :response => res )
|
121
135
|
rescue Errno::ETIMEDOUT
|
122
136
|
handle_request_error
|
123
137
|
end
|
data/linguara.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{linguara}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aleksander Dabrowski", "Piotr Barczuk"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-30}
|
13
13
|
s.description = %q{Gem to integrate with linguara api}
|
14
14
|
s.email = %q{aleks@kumulator.pl}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
"lib/linguara.rb",
|
28
28
|
"lib/linguara/active_record.rb",
|
29
29
|
"lib/linguara/configuration.rb",
|
30
|
+
"lib/linguara/request.rb",
|
30
31
|
"lib/linguara/translation.rb",
|
31
32
|
"lib/linguara/utils.rb",
|
32
33
|
"linguara.gemspec",
|
data/spec/linguara_spec.rb
CHANGED
@@ -36,7 +36,7 @@ describe "Linguara" do
|
|
36
36
|
it 'sends request' do
|
37
37
|
blog_post = BlogPost.new( :title => "Old title", :body => "Old body")
|
38
38
|
FakeWeb.register_uri(:post, "http://www.example.com/api/translations.xml", :body => 'response_from_linguara', :status => 200)
|
39
|
-
response = Linguara.send_translation_request(blog_post)
|
39
|
+
response = Linguara.send_translation_request(blog_post).response
|
40
40
|
response.body.should eql('response_from_linguara')
|
41
41
|
end
|
42
42
|
end
|
@@ -44,7 +44,7 @@ describe "Linguara" do
|
|
44
44
|
describe '#send_status_query' do
|
45
45
|
it 'sends request' do
|
46
46
|
FakeWeb.register_uri(:post, "http://www.example.com/api/translations/5/status.xml", :body => 'response_from_linguara', :status => 200)
|
47
|
-
response = Linguara.send_status_query(5)
|
47
|
+
response = Linguara.send_status_query(5).response
|
48
48
|
response.body.should eql('response_from_linguara')
|
49
49
|
end
|
50
50
|
end
|
@@ -52,7 +52,7 @@ describe "Linguara" do
|
|
52
52
|
describe '#send_languages_request' do
|
53
53
|
it 'sends request' do
|
54
54
|
FakeWeb.register_uri(:get, "http://www.example.com/api/languages.xml", :body => 'response_from_linguara', :status => 200)
|
55
|
-
response = Linguara.send_languages_request("city"=>"321", "specialization"=>"technical", "country"=>"pl", "native_speaker"=>"1", "max_price"=>"12")
|
55
|
+
response = Linguara.send_languages_request("city"=>"321", "specialization"=>"technical", "country"=>"pl", "native_speaker"=>"1", "max_price"=>"12").response
|
56
56
|
response.body.should eql('response_from_linguara')
|
57
57
|
end
|
58
58
|
end
|
@@ -60,7 +60,7 @@ describe "Linguara" do
|
|
60
60
|
describe '#send_specializations_request' do
|
61
61
|
it 'sends request' do
|
62
62
|
FakeWeb.register_uri(:get, "http://www.example.com/api/specializations.xml", :body => 'response_from_linguara', :status => 200)
|
63
|
-
response = Linguara.send_specializations_request("language"=>"suomi", "sworn" => "1", "native_speaker"=>"1", "max_price"=>"12")
|
63
|
+
response = Linguara.send_specializations_request("language"=>"suomi", "sworn" => "1", "native_speaker"=>"1", "max_price"=>"12").response
|
64
64
|
response.body.should eql('response_from_linguara')
|
65
65
|
end
|
66
66
|
end
|
@@ -68,7 +68,7 @@ describe "Linguara" do
|
|
68
68
|
describe '#send_translators_request' do
|
69
69
|
it 'sends request' do
|
70
70
|
FakeWeb.register_uri(:get, "http://www.example.com/api/translators.xml", :body => 'response_from_linguara', :status => 200)
|
71
|
-
response = Linguara.send_translators_request("city"=>"warsaw", "country"=>"pl", "max_price"=>"12", "query"=>"wojcisz", "target_language"=>"en", "source_language" => "pl")
|
71
|
+
response = Linguara.send_translators_request("city"=>"warsaw", "country"=>"pl", "max_price"=>"12", "query"=>"wojcisz", "target_language"=>"en", "source_language" => "pl").response
|
72
72
|
response.body.should eql('response_from_linguara')
|
73
73
|
end
|
74
74
|
end
|
@@ -108,7 +108,54 @@ describe "Linguara" do
|
|
108
108
|
end
|
109
109
|
|
110
110
|
end
|
111
|
+
|
112
|
+
describe '#available_languages' do
|
113
|
+
before :each do
|
114
|
+
@response_body = "<?xml version='1.0' encoding='UTF-8'?>
|
115
|
+
<languages>
|
116
|
+
<language>
|
117
|
+
<code>pl</code>
|
118
|
+
<name>Polish</name>
|
119
|
+
</language>
|
120
|
+
<language>
|
121
|
+
<code>en</code>
|
122
|
+
<name>English</name>
|
123
|
+
</language>
|
124
|
+
<language>
|
125
|
+
<code>tlh</code>
|
126
|
+
<name>Klingon</name>
|
127
|
+
</language>
|
128
|
+
</languages>"
|
129
|
+
FakeWeb.register_uri(:get, "http://www.example.com/api/languages.xml", :body => @response_body, :status => 200)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'returns array with languages and codes' do
|
133
|
+
expected_array = [['Polish','pl'],['English','en'],['Klingon','tlh']]
|
134
|
+
Linguara.available_languages.should eql(expected_array)
|
135
|
+
end
|
136
|
+
end
|
111
137
|
|
138
|
+
describe '#available_specializations' do
|
139
|
+
before :each do
|
140
|
+
@response_body = "<?xml version='1.0' encoding='UTF-8'?>
|
141
|
+
<specializations>
|
142
|
+
<specialization>
|
143
|
+
<id>2</id>
|
144
|
+
<name>IT</name>
|
145
|
+
</specialization>
|
146
|
+
<specialization>
|
147
|
+
<id>3</id>
|
148
|
+
<name>Architecture</name>
|
149
|
+
</specialization>
|
150
|
+
</specializations>"
|
151
|
+
FakeWeb.register_uri(:get, "http://www.example.com/api/specializations.xml", :body => @response_body, :status => 200)
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'returns array with languages and codes' do
|
155
|
+
expected_array = [['IT','2'],['Architecture','3']]
|
156
|
+
Linguara.available_specializations.should eql(expected_array)
|
157
|
+
end
|
158
|
+
end
|
112
159
|
end
|
113
160
|
|
114
161
|
describe 'Linguara::ActiveRecord' do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linguara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 5
|
10
|
+
version: 0.0.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Aleksander Dabrowski
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-07-
|
19
|
+
date: 2010-07-30 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- lib/linguara.rb
|
56
56
|
- lib/linguara/active_record.rb
|
57
57
|
- lib/linguara/configuration.rb
|
58
|
+
- lib/linguara/request.rb
|
58
59
|
- lib/linguara/translation.rb
|
59
60
|
- lib/linguara/utils.rb
|
60
61
|
- linguara.gemspec
|