rosette_api 1.2.0 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4104193d91e0db035f76f3b5662d6d0d96ba6094
4
- data.tar.gz: eedfda26a8b17f548159297e2ec8e40ec5b921d9
3
+ metadata.gz: 043eec6c3ad8b685d39a800f0ac35e3cc4eed855
4
+ data.tar.gz: cae1f598d5dcc1d8a3253af1479aa9f2c180ebdf
5
5
  SHA512:
6
- metadata.gz: 34165ed9c5648635851d61fd922e6fb5cb512371e5bc85ef430f48f7a199f7b445d3fba0c3c02d931971a3c401e66c0ca008d2086686edc382477bfc55e2b8b9
7
- data.tar.gz: 677d79b77789d0463fad837d1407f0561c537fa784e71e0183020b2e6b28f3534d310bcef99d1030c1df441a2149ed8ba4feb299e707bfa2e097c026a2767780
6
+ metadata.gz: 7772af70981b1b2d49ecd0249a587ecbaeb800696f66527c0efb7b4d34ece71eaf56281a7e92ab75bb2c6ca936d5cfcaa328712eb45ce0fdea7738e30e5daf7d
7
+ data.tar.gz: d30c2a814a7dcfedb1e6aacfd720fa0e16925707cc537e68ada5b4c69a572353ba6a2f640ecd0c610d16f765923222862925b26963b7a3ae44e07f28b97f5ce8
@@ -9,6 +9,8 @@ require_relative 'rosette_api_error'
9
9
  class RequestBuilder
10
10
  # Alternate Rosette API URL
11
11
  attr_reader :alternate_url
12
+ # Rosette API HTTP client
13
+ attr_reader :http_client
12
14
  # Parameters to build the body of the request from
13
15
  attr_accessor :params
14
16
  # Rosette API key
@@ -16,12 +18,15 @@ class RequestBuilder
16
18
  # Rosette API binding version
17
19
  attr_accessor :binding_version
18
20
 
19
- def initialize(user_key, alternate_url, params = {}, binding_version) #:notnew:
21
+
22
+ def initialize(user_key, alternate_url, http_client, params = {}, binding_version) #:notnew:
20
23
  @user_key = user_key
21
24
  @alternate_url = alternate_url
25
+ @http_client = http_client
22
26
  @params = params
23
27
  @retries = 5
24
28
  @binding_version = binding_version
29
+
25
30
  end
26
31
 
27
32
  # Prepares a plain POST request for Rosette API.
@@ -34,8 +39,6 @@ class RequestBuilder
34
39
  def prepare_plain_request(params)
35
40
  begin
36
41
  uri = URI.parse @alternate_url
37
- http = Net::HTTP.new uri.host, uri.port
38
- http.use_ssl = uri.scheme == 'https'
39
42
  request = Net::HTTP::Post.new uri.request_uri
40
43
  rescue
41
44
  raise RosetteAPIError.new 'connectionError', 'Failed to establish connection with Rosette API server.'
@@ -60,7 +63,7 @@ class RequestBuilder
60
63
  request['X-RosetteAPI-Binding-Version'] = @binding_version
61
64
  request.body = params.to_json
62
65
 
63
- [http, request]
66
+ [@http_client, request]
64
67
  end
65
68
 
66
69
  # Prepares a multipart/form-data POST request for Rosette API.
@@ -99,8 +102,6 @@ class RequestBuilder
99
102
  # Create the HTTP objects
100
103
  begin
101
104
  uri = URI.parse @alternate_url
102
- http = Net::HTTP.new uri.host, uri.port
103
- http.use_ssl = uri.scheme == 'https'
104
105
  request = Net::HTTP::Post.new uri.request_uri
105
106
  rescue
106
107
  raise RosetteAPIError.new 'connectionError', 'Failed to establish connection with Rosette API server.'
@@ -125,7 +126,7 @@ class RequestBuilder
125
126
  request.add_field 'X-RosetteAPI-Binding-Version', @binding_version
126
127
  request.body = post_body.join
127
128
 
128
- [http, request]
129
+ [@http_client, request]
129
130
  end
130
131
 
131
132
  # Sends a GET request to Rosette API.
@@ -134,8 +135,6 @@ class RequestBuilder
134
135
  def send_get_request
135
136
  begin
136
137
  uri = URI.parse @alternate_url
137
- http = Net::HTTP.new uri.host, uri.port
138
- http.use_ssl = uri.scheme == 'https'
139
138
 
140
139
  request = Net::HTTP::Get.new uri.request_uri
141
140
  rescue
@@ -143,7 +142,7 @@ class RequestBuilder
143
142
  end
144
143
  request['X-RosetteAPI-Key'] = @user_key
145
144
 
146
- self.get_response http, request
145
+ self.get_response @http_client, request
147
146
  end
148
147
 
149
148
  # Sends a POST request to Rosette API.
data/lib/rosette_api.rb CHANGED
@@ -9,7 +9,7 @@ require_relative 'bad_request_format_error'
9
9
  # This class allows you to access all Rosette API endpoints.
10
10
  class RosetteAPI
11
11
  # Version of Ruby binding
12
- BINDING_VERSION = '1.2.0'
12
+ BINDING_VERSION = '1.3.0'
13
13
  # Rosette API language endpoint
14
14
  LANGUAGE_ENDPOINT = '/language'
15
15
  # Rosette API morphology endpoint
@@ -34,6 +34,8 @@ class RosetteAPI
34
34
  INFO = '/info'
35
35
  # Rosette API ping endpoint
36
36
  PING = '/ping'
37
+ # Text Embedding endpoint
38
+ TEXT_EMBEDDING = '/text-embedding'
37
39
 
38
40
  # Rosette API key
39
41
  attr_accessor :user_key
@@ -49,6 +51,10 @@ class RosetteAPI
49
51
  if @alternate_url.to_s.end_with?('/')
50
52
  @alternate_url = alternate_url.to_s.slice(0..-2)
51
53
  end
54
+
55
+ uri = URI.parse alternate_url
56
+ @http_client = Net::HTTP.new uri.host, uri.port
57
+ @http_client.use_ssl = uri.scheme == 'https'
52
58
  end
53
59
 
54
60
  # Identifies in which language(s) the input is written.
@@ -63,7 +69,7 @@ class RosetteAPI
63
69
 
64
70
  params = params.load_params
65
71
 
66
- RequestBuilder.new(@user_key, @alternate_url + LANGUAGE_ENDPOINT, params, BINDING_VERSION)
72
+ RequestBuilder.new(@user_key, @alternate_url + LANGUAGE_ENDPOINT, @http_client, params, BINDING_VERSION)
67
73
  .send_post_request
68
74
  end
69
75
 
@@ -81,7 +87,7 @@ class RosetteAPI
81
87
 
82
88
  params = params.load_params
83
89
 
84
- RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/complete', params, BINDING_VERSION)
90
+ RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/complete', @http_client, params, BINDING_VERSION)
85
91
  .send_post_request
86
92
  end
87
93
 
@@ -98,7 +104,7 @@ class RosetteAPI
98
104
 
99
105
  params = params.load_params
100
106
 
101
- RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/compound-components', params, BINDING_VERSION)
107
+ RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/compound-components', @http_client, params, BINDING_VERSION)
102
108
  .send_post_request
103
109
  end
104
110
 
@@ -115,7 +121,7 @@ class RosetteAPI
115
121
 
116
122
  params = params.load_params
117
123
 
118
- RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/han-readings', params, BINDING_VERSION)
124
+ RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/han-readings', @http_client, params, BINDING_VERSION)
119
125
  .send_post_request
120
126
  end
121
127
 
@@ -131,7 +137,7 @@ class RosetteAPI
131
137
 
132
138
  params = params.load_params
133
139
 
134
- RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/lemmas', params, BINDING_VERSION)
140
+ RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/lemmas', @http_client, params, BINDING_VERSION)
135
141
  .send_post_request
136
142
  end
137
143
 
@@ -148,7 +154,7 @@ class RosetteAPI
148
154
 
149
155
  params = params.load_params
150
156
 
151
- RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/parts-of-speech', params, BINDING_VERSION)
157
+ RequestBuilder.new(@user_key, @alternate_url + MORPHOLOGY_ENDPOINT + '/parts-of-speech', @http_client, params, BINDING_VERSION)
152
158
  .send_post_request
153
159
  end
154
160
 
@@ -168,7 +174,7 @@ class RosetteAPI
168
174
  params = params.load_params
169
175
 
170
176
  endpoint = resolve_entities ? (ENTITIES_ENDPOINT + '/linked') : ENTITIES_ENDPOINT
171
- RequestBuilder.new(@user_key, @alternate_url + endpoint, params, BINDING_VERSION)
177
+ RequestBuilder.new(@user_key, @alternate_url + endpoint, @http_client, params, BINDING_VERSION)
172
178
  .send_post_request
173
179
  end
174
180
 
@@ -200,7 +206,7 @@ class RosetteAPI
200
206
 
201
207
  params = params.load_params
202
208
 
203
- RequestBuilder.new(@user_key, @alternate_url + CATEGORIES_ENDPOINT, params, BINDING_VERSION)
209
+ RequestBuilder.new(@user_key, @alternate_url + CATEGORIES_ENDPOINT, @http_client, params, BINDING_VERSION)
204
210
  .send_post_request
205
211
  end
206
212
 
@@ -216,7 +222,7 @@ class RosetteAPI
216
222
 
217
223
  params = params.load_params
218
224
 
219
- RequestBuilder.new(@user_key, @alternate_url + RELATIONSHIPS_ENDPOINT, params, BINDING_VERSION)
225
+ RequestBuilder.new(@user_key, @alternate_url + RELATIONSHIPS_ENDPOINT, @http_client, params, BINDING_VERSION)
220
226
  .send_post_request
221
227
  end
222
228
 
@@ -232,7 +238,7 @@ class RosetteAPI
232
238
 
233
239
  params = params.load_params
234
240
 
235
- RequestBuilder.new(@user_key, @alternate_url + SENTIMENT_ENDPOINT, params, BINDING_VERSION)
241
+ RequestBuilder.new(@user_key, @alternate_url + SENTIMENT_ENDPOINT, @http_client, params, BINDING_VERSION)
236
242
  .send_post_request
237
243
  end
238
244
 
@@ -248,7 +254,7 @@ class RosetteAPI
248
254
 
249
255
  params = params.load_params
250
256
 
251
- RequestBuilder.new(@user_key, @alternate_url + NAME_TRANSLATION_ENDPOINT, params, BINDING_VERSION)
257
+ RequestBuilder.new(@user_key, @alternate_url + NAME_TRANSLATION_ENDPOINT, @http_client, params, BINDING_VERSION)
252
258
  .send_post_request
253
259
  end
254
260
 
@@ -265,7 +271,7 @@ class RosetteAPI
265
271
 
266
272
  params = params.load_params
267
273
 
268
- RequestBuilder.new(@user_key, @alternate_url + NAME_SIMILARITY_ENDPOINT, params, BINDING_VERSION)
274
+ RequestBuilder.new(@user_key, @alternate_url + NAME_SIMILARITY_ENDPOINT, @http_client, params, BINDING_VERSION)
269
275
  .send_post_request
270
276
  end
271
277
 
@@ -281,7 +287,7 @@ class RosetteAPI
281
287
 
282
288
  params = params.load_params
283
289
 
284
- RequestBuilder.new(@user_key, @alternate_url + TOKENS_ENDPOINT, params, BINDING_VERSION)
290
+ RequestBuilder.new(@user_key, @alternate_url + TOKENS_ENDPOINT, @http_client, params, BINDING_VERSION)
285
291
  .send_post_request
286
292
  end
287
293
 
@@ -297,21 +303,37 @@ class RosetteAPI
297
303
 
298
304
  params = params.load_params
299
305
 
300
- RequestBuilder.new(@user_key, @alternate_url + SENTENCES_ENDPOINT, params, BINDING_VERSION)
306
+ RequestBuilder.new(@user_key, @alternate_url + SENTENCES_ENDPOINT, @http_client, params, BINDING_VERSION)
307
+ .send_post_request
308
+ end
309
+ #
310
+ # Returns the vectors associated with the text
311
+ #
312
+ # ==== Attributes
313
+ #
314
+ # * +params+ - DocumentParameters helps to build the request body in RequestBuilder.
315
+ #
316
+ # Returns list of linguistic sentences of the input.
317
+ def get_text_embedding(params)
318
+ check_params params
319
+
320
+ params = params.load_params
321
+
322
+ RequestBuilder.new(@user_key, @alternate_url + TEXT_EMBEDDING, @http_client, params, BINDING_VERSION)
301
323
  .send_post_request
302
324
  end
303
325
 
304
326
  # Gets information about the Rosette API, returns name, build number
305
327
  # and build time.
306
328
  def info
307
- RequestBuilder.new(@user_key, @alternate_url + INFO, BINDING_VERSION)
329
+ RequestBuilder.new(@user_key, @alternate_url + INFO, @http_client, BINDING_VERSION)
308
330
  .send_get_request
309
331
  end
310
332
 
311
333
  # Pings the Rosette API for a response indicting that the service is
312
334
  # available.
313
335
  def ping
314
- RequestBuilder.new(@user_key, @alternate_url + PING, BINDING_VERSION)
336
+ RequestBuilder.new(@user_key, @alternate_url + PING, @http_client, BINDING_VERSION)
315
337
  .send_get_request
316
338
  end
317
339
 
data/tests/tests_spec.rb CHANGED
@@ -6,24 +6,27 @@ require 'json'
6
6
  WebMock.disable_net_connect!(allow_localhost: true)
7
7
 
8
8
  describe RosetteAPI do
9
+ RSpec.configure do |config|
10
+ config.before(:example) { @content = 'Sample Content' }
11
+ config.before(:example) { @json = {:content => "Sample Content"}.to_json }
12
+ end
9
13
 
10
14
  describe '.get_language' do
11
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/language.json'))
12
15
  before do
13
16
  stub_request(:post, 'https://api.rosette.com/rest/v1/language').
14
- with(body: request_file,
15
- headers: {'Accept' => 'application/json',
17
+ with(:body => @json,
18
+ :headers => {'Accept' => 'application/json',
16
19
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
17
20
  'Content-Type' => 'application/json',
18
21
  'User-Agent' => 'Ruby',
19
22
  'X-Rosetteapi-Key' => '0123456789',
20
23
  'X-Rosetteapi-Binding' => 'ruby',
21
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
22
- to_return(status: 200, body: {'test': 'language'}.to_json, headers: {})
24
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
25
+ to_return(:status => 200, :body => "{\"test\": \"language\"}", :headers => {})
23
26
  end
24
27
  it 'test language' do
25
28
  params = DocumentParameters.new
26
- params.content = 'Por favor Senorita, says the man.?'
29
+ params.content = @content
27
30
  response = RosetteAPI.new('0123456789').get_language(params)
28
31
  expect(response).instance_of? Hash
29
32
  end
@@ -45,156 +48,148 @@ describe RosetteAPI do
45
48
  end
46
49
 
47
50
  describe '.get_morphology_complete' do
48
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/morphology_complete.json'))
49
51
  before do
50
52
  stub_request(:post, 'https://api.rosette.com/rest/v1/morphology/complete').
51
- with(body: request_file,
53
+ with(:body => @json,
52
54
  headers: {'Accept' => 'application/json',
53
55
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
54
56
  'Content-Type' => 'application/json',
55
57
  'User-Agent' => 'Ruby',
56
58
  'X-Rosetteapi-Key' => '0123456789',
57
59
  'X-Rosetteapi-Binding' => 'ruby',
58
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
59
- to_return(status: 200, body: {'test': 'morphology/complete'}.to_json, headers: {})
60
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
61
+ to_return(:status => 200, :body => "{\"test\": \"morphology/complete\"}", :headers => {})
60
62
  end
61
63
  it 'test morphology complete' do
62
64
  params = DocumentParameters.new
63
- params.content = 'The quick brown fox jumped over the lazy dog. Yes he did.'
65
+ params.content = @content
64
66
  response = RosetteAPI.new('0123456789').get_morphology_complete(params)
65
67
  expect(response).instance_of? Hash
66
68
  end
67
69
  end
68
70
 
69
71
  describe '.get_compound_components' do
70
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/morphology_compound_components.json'))
71
72
  before do
72
73
  stub_request(:post, 'https://api.rosette.com/rest/v1/morphology/compound-components').
73
- with(body: request_file,
74
+ with(:body => @json,
74
75
  headers: {'Accept' => 'application/json',
75
76
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
76
77
  'Content-Type' => 'application/json',
77
78
  'User-Agent' => 'Ruby',
78
79
  'X-Rosetteapi-Key' => '0123456789',
79
80
  'X-Rosetteapi-Binding' => 'ruby',
80
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
81
- to_return(status: 200, body: {'test': 'morphology/compound-components'}.to_json, headers: {})
81
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
82
+ to_return(:status => 200, :body => "{\"test\": \"morphology/compound-components\"}", :headers => {})
82
83
  end
83
84
  it 'test morphology compound components' do
84
85
  params = DocumentParameters.new
85
- params.content = 'Rechtsschutzversicherungsgesellschaften'
86
+ params.content = @content
86
87
  response = RosetteAPI.new('0123456789').get_compound_components(params)
87
88
  expect(response).instance_of? Hash
88
89
  end
89
90
  end
90
91
 
91
92
  describe '.get_han_readings' do
92
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/morphology_han_readings.json')), encoding: 'utf-8'
93
93
  before do
94
94
  stub_request(:post, 'https://api.rosette.com/rest/v1/morphology/han-readings').
95
- with(body: request_file,
95
+ with(:body => @json,
96
96
  headers: {'Accept' => 'application/json',
97
97
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
98
98
  'Content-Type' => 'application/json',
99
99
  'User-Agent' => 'Ruby',
100
100
  'X-Rosetteapi-Key' => '0123456789',
101
101
  'X-Rosetteapi-Binding' => 'ruby',
102
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
103
- to_return(status: 200, body: {'test': 'morphology/han-readings'}.to_json, headers: {})
102
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
103
+ to_return(:status => 200, :body => "{\"test\": \"morphology/han-readings\"}", :headers => {})
104
104
  end
105
105
  it 'test morphology han readings' do
106
106
  params = DocumentParameters.new
107
- params.content = '北京大学生物系主任办公室内部会议'
107
+ params.content = @content
108
108
  response = RosetteAPI.new('0123456789').get_han_readings(params)
109
109
  expect(response).instance_of? Hash
110
110
  end
111
111
  end
112
112
 
113
113
  describe '.get_parts_of_speech' do
114
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/morphology_parts_of_speech.json'))
115
114
  before do
116
115
  stub_request(:post, 'https://api.rosette.com/rest/v1/morphology/parts-of-speech').
117
- with(body: request_file,
116
+ with(:body => @json,
118
117
  headers: {'Accept' => 'application/json',
119
118
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
120
119
  'Content-Type' => 'application/json',
121
120
  'User-Agent' => 'Ruby',
122
121
  'X-Rosetteapi-Key' => '0123456789',
123
122
  'X-Rosetteapi-Binding' => 'ruby',
124
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
125
- to_return(status: 200, body: {'test': 'morphology/parts-of-speech'}.to_json, headers: {})
123
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
124
+ to_return(:status => 200, :body => "{\"test\": \"morphology/parts-of-speech\"}", :headers => {})
126
125
  end
127
126
  it 'test morphology parts of speech' do
128
127
  params = DocumentParameters.new
129
- params.content = "The fact is that the geese just went back to get a rest and I'm not banking on their return soon"
128
+ params.content = @content
130
129
  response = RosetteAPI.new('0123456789').get_parts_of_speech(params)
131
130
  expect(response).instance_of? Hash
132
131
  end
133
132
  end
134
133
 
135
134
  describe '.get_lemmas' do
136
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/morphology_lemmas.json'))
137
135
  before do
138
136
  stub_request(:post, 'https://api.rosette.com/rest/v1/morphology/lemmas').
139
- with(body: request_file,
137
+ with(:body => @json,
140
138
  headers: {'Accept' => 'application/json',
141
139
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
142
140
  'Content-Type' => 'application/json',
143
141
  'User-Agent' => 'Ruby',
144
142
  'X-Rosetteapi-Key' => '0123456789',
145
143
  'X-Rosetteapi-Binding' => 'ruby',
146
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
147
- to_return(status: 200, body: {'test': 'morphology/lemmas'}.to_json, headers: {})
144
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
145
+ to_return(:status => 200, :body => "{\"test\": \"morphology/lemmas\"}", :headers => {})
148
146
  end
149
147
  it 'test morphology lemmas' do
150
148
  params = DocumentParameters.new
151
- params.content = "The fact is that the geese just went back to get a rest and I'm not banking on their return soon"
149
+ params.content = @content
152
150
  response = RosetteAPI.new('0123456789').get_lemmas(params)
153
151
  expect(response).instance_of? Hash
154
152
  end
155
153
  end
156
154
 
157
155
  describe '.get_entities' do
158
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/entities.json')), encoding: 'utf-8'
159
156
  before do
160
157
  stub_request(:post, 'https://api.rosette.com/rest/v1/entities').
161
- with(body: request_file,
158
+ with(:body => @json,
162
159
  headers: {'Accept' => 'application/json',
163
160
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
164
161
  'Content-Type' => 'application/json',
165
162
  'User-Agent' => 'Ruby',
166
163
  'X-Rosetteapi-Key' => '0123456789',
167
164
  'X-Rosetteapi-Binding' => 'ruby',
168
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
169
- to_return(status: 200, body: {'test': 'entities'}.to_json, headers: {})
165
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
166
+ to_return(:status => 200, :body => "{\"test\": \"entities\"}", :headers => {})
170
167
  end
171
168
  it 'test entities' do
172
169
  params = DocumentParameters.new
173
- params.content = 'Bill Murray will appear in new Ghostbusters film: Dr. Peter Venkman was spotted filming a' \
174
- ' cameo in Boston this… http://dlvr.it/BnsFfS'
170
+ params.content = @content
175
171
  response = RosetteAPI.new('0123456789').get_entities(params)
176
172
  expect(response).instance_of? Hash
177
173
  end
178
174
  end
179
175
 
180
176
  describe '.get_entities_no_qids' do
181
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/entities_no_qids.json'))
182
177
  before do
178
+ no_qids_json = {:content => "Sample Content", :options => {:linkEntities => false}}.to_json
183
179
  stub_request(:post, 'https://api.rosette.com/rest/v1/entities').
184
- with(body: request_file,
180
+ with(:body => no_qids_json,
185
181
  headers: {'Accept' => 'application/json',
186
182
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
187
183
  'Content-Type' => 'application/json',
188
184
  'User-Agent' => 'Ruby',
189
185
  'X-Rosetteapi-Key' => '0123456789',
190
186
  'X-Rosetteapi-Binding' => 'ruby',
191
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
192
- to_return(status: 200, body: {'test': 'entities'}.to_json, headers: {})
187
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
188
+ to_return(:status => 200, :body => "{\"test\": \"entities\"}", :headers => {})
193
189
  end
194
190
  it 'test entities without qids' do
195
191
  params = DocumentParameters.new
196
- params.content = 'Last month director Paul Feig announced the movie will have an all-star female cast including' \
197
- ' Kristen Wiig, Melissa McCarthy, Leslie Jones and Kate McKinnon.'
192
+ params.content = @content
198
193
  params.rosette_options = { linkEntities: false}
199
194
  response = RosetteAPI.new('0123456789').get_entities(params)
200
195
  expect(response).instance_of? Hash
@@ -210,62 +205,61 @@ describe RosetteAPI do
210
205
  end
211
206
 
212
207
  describe '.get_categories' do
213
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/categories.json'))
214
208
  before do
209
+ categories_json = {:contentUri => "http://google.com"}.to_json
215
210
  stub_request(:post, 'https://api.rosette.com/rest/v1/categories').
216
- with(body: request_file,
211
+ with(:body => categories_json,
217
212
  headers: {'Accept' => 'application/json',
218
213
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
219
214
  'Content-Type' => 'application/json',
220
215
  'User-Agent' => 'Ruby',
221
216
  'X-Rosetteapi-Key' => '0123456789',
222
217
  'X-Rosetteapi-Binding' => 'ruby',
223
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
224
- to_return(status: 200, body: {'test': 'categories'}.to_json, headers: {})
218
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
219
+ to_return(:status => 200, :body => "{\"test\": \"categories\"}", :headers => {})
225
220
  end
226
221
  it 'test categories' do
227
222
  params = DocumentParameters.new
228
- params.content_uri = 'http://www.onlocationvacations.com/2015/03/05/the-new-ghostbusters-movie-begins-filming-in-boston-in-june/'
223
+ params.content_uri = "http://google.com"
229
224
  response = RosetteAPI.new('0123456789').get_categories(params)
230
225
  expect(response).instance_of? Hash
231
226
  end
232
227
  end
233
228
 
234
229
  describe '.get_relationships' do
235
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/relationships.json'))
236
230
  before do
237
231
  stub_request(:post, 'https://api.rosette.com/rest/v1/relationships').
238
- with(body: request_file,
232
+ with(:body => @json,
239
233
  headers: {'Accept' => 'application/json',
240
234
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
241
235
  'Content-Type' => 'application/json',
242
236
  'User-Agent' => 'Ruby',
243
237
  'X-Rosetteapi-Key' => '0123456789',
244
238
  'X-Rosetteapi-Binding' => 'ruby',
245
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
246
- to_return(status: 200, body: {'test': 'relationships'}.to_json, headers: {})
239
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
240
+ to_return(:status => 200, :body => "{\"test\": \"relationships\"}", :headers => {})
247
241
  end
248
242
  it 'test relationships' do
249
243
  params = DocumentParameters.new
250
- params.content = 'The Ghostbusters movie was filmed in Boston.'
244
+ params.content = @content
251
245
  response = RosetteAPI.new('0123456789').get_relationships(params)
252
246
  expect(response).instance_of? Hash
253
247
  end
254
248
  end
255
249
 
256
250
  describe '.name_translation' do
257
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/name_translation.json')), encoding: 'utf-8'
258
251
  before do
252
+ name_translation_json = {:name => "معمر محمد أبو منيار القذاف", :targetLanguage => "eng", :targetScript => "Latn"}.to_json
259
253
  stub_request(:post, 'https://api.rosette.com/rest/v1/name-translation').
260
- with(body: request_file,
254
+ with(:body => name_translation_json,
261
255
  headers: {'Accept' => 'application/json',
262
256
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
263
257
  'Content-Type' => 'application/json',
264
258
  'User-Agent' => 'Ruby',
265
259
  'X-Rosetteapi-Key' => '0123456789',
266
260
  'X-Rosetteapi-Binding' => 'ruby',
267
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
268
- to_return(status: 200, body: {'test': 'name-translation'}.to_json, headers: {})
261
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
262
+ to_return(:status => 200, :body => "{\"test\": \"name-translation\"}", :headers => {})
269
263
  end
270
264
  it 'test name translation' do
271
265
  params = NameTranslationParameters.new('معمر محمد أبو منيار القذاف'.encode('UTF-8'), 'eng')
@@ -281,18 +275,18 @@ describe RosetteAPI do
281
275
  end
282
276
 
283
277
  describe '.name_similarity' do
284
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/name_similarity.json')), encoding: 'utf-8'
285
278
  before do
279
+ name_similarity_json = {:name1 => "Michael Jackson", :name2 => "迈克尔·杰克逊"}.to_json
286
280
  stub_request(:post, 'https://api.rosette.com/rest/v1/name-similarity').
287
- with(body: request_file,
281
+ with(:body => name_similarity_json,
288
282
  headers: {'Accept' => 'application/json',
289
283
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
290
284
  'Content-Type' => 'application/json',
291
285
  'User-Agent' => 'Ruby',
292
286
  'X-Rosetteapi-Key' => '0123456789',
293
287
  'X-Rosetteapi-Binding' => 'ruby',
294
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
295
- to_return(status: 200, body: {'test': 'name-similarity'}.to_json, headers: {})
288
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
289
+ to_return(:status => 200, :body => "{\"test\": \"name-similarity\"}", :headers => {})
296
290
  end
297
291
  it 'test name similarity' do
298
292
  params = NameSimilarityParameters.new('Michael Jackson', '迈克尔·杰克逊')
@@ -317,47 +311,42 @@ describe RosetteAPI do
317
311
  end
318
312
 
319
313
  describe '.get_tokens' do
320
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/tokens.json')), encoding: 'utf-8'
321
314
  before do
322
315
  stub_request(:post, 'https://api.rosette.com/rest/v1/tokens').
323
- with(body: request_file,
316
+ with(:body => @json,
324
317
  headers: {'Accept' => 'application/json',
325
318
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
326
319
  'Content-Type' => 'application/json',
327
320
  'User-Agent' => 'Ruby',
328
321
  'X-Rosetteapi-Key' => '0123456789',
329
322
  'X-Rosetteapi-Binding' => 'ruby',
330
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
331
- to_return(status: 200, body: {'test': 'tokens'}.to_json, headers: {})
323
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
324
+ to_return(:status => 200, :body => "{\"test\": \"tokens\"}", :headers => {})
332
325
  end
333
326
  it 'test tokens' do
334
327
  params = DocumentParameters.new
335
- params.content = '北京大学生物系主任办公室内部会议'
328
+ params.content = @content
336
329
  response = RosetteAPI.new('0123456789').get_tokens(params)
337
330
  expect(response).instance_of? Hash
338
331
  end
339
332
  end
340
333
 
341
334
  describe '.get_sentences' do
342
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/sentences.json'))
343
335
  before do
344
336
  stub_request(:post, 'https://api.rosette.com/rest/v1/sentences').
345
- with(body: request_file,
337
+ with(:body => @json,
346
338
  headers: {'Accept' => 'application/json',
347
339
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
348
340
  'Content-Type' => 'application/json',
349
341
  'User-Agent' => 'Ruby',
350
342
  'X-Rosetteapi-Key' => '0123456789',
351
343
  'X-Rosetteapi-Binding' => 'ruby',
352
- 'X-Rosetteapi-Binding-Version' => '1.1.1'}).
353
- to_return(status: 200, body: {'test': 'sentences'}.to_json, headers: {})
344
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
345
+ to_return(:status => 200, :body => "{\"test\": \"sentences\"}", :headers => {})
354
346
  end
355
347
  it 'test sentences' do
356
348
  params = DocumentParameters.new
357
- params.content = 'This land is your land. This land is my land\nFrom California to the New York island;\nFrom' \
358
- ' the wood forest to the Gulf Stream waters\n\nThis land was made for you and Me.\n\nAs I was' \
359
- ' walking that ribbon of highway,\nI saw above me that endless skyway:\nI saw below me that' \
360
- ' golden valley:\nThis land was made for you and me.'
349
+ params.content = @content
361
350
  response = RosetteAPI.new('0123456789').get_sentences(params)
362
351
  expect(response).instance_of? Hash
363
352
  end
@@ -370,7 +359,7 @@ describe RosetteAPI do
370
359
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
371
360
  'User-Agent' => 'Ruby',
372
361
  'X-Rosetteapi-Key' => '0123456789'}).
373
- to_return(status: 200, body: {'test': 'info'}.to_json, headers: {})
362
+ to_return(:status => 200, :body => "{\"test\": \"info\"}", :headers => {})
374
363
  end
375
364
  it 'test info' do
376
365
  response = RosetteAPI.new('0123456789').info
@@ -385,7 +374,7 @@ describe RosetteAPI do
385
374
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
386
375
  'User-Agent' => 'Ruby',
387
376
  'X-Rosetteapi-Key' => '0123456789'}).
388
- to_return(status: 200, body: {'test': 'ping'}.to_json, headers: {})
377
+ to_return(:status => 200, :body => "{\"test\": \"ping\"}", :headers => {})
389
378
  end
390
379
  it 'test ping' do
391
380
  response = RosetteAPI.new('0123456789').ping
@@ -394,25 +383,24 @@ describe RosetteAPI do
394
383
  end
395
384
 
396
385
  describe '.get_language_custom_header' do
397
- request_file = File.read File.expand_path(File.join(File.dirname(__FILE__), '../mock-data/request/language.json'))
398
386
  before do
399
387
  stub_request(:post, 'https://api.rosette.com/rest/v1/language').
400
- with(body: request_file,
388
+ with(:body => @json,
401
389
  headers: {'Accept' => 'application/json',
402
390
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
403
391
  'Content-Type' => 'application/json',
404
392
  'User-Agent' => 'Ruby',
405
393
  'X-Rosetteapi-Key' => '0123456789',
406
394
  'X-Rosetteapi-Binding' => 'ruby',
407
- 'X-Rosetteapi-Binding-Version' => '1.1.1',
395
+ 'X-Rosetteapi-Binding-Version' => '1.3.0',
408
396
  'X-RosetteApi-App' => 'ruby-app'}).
409
- to_return(status: 200, body: {'test': 'language'}.to_json, headers: {})
397
+ to_return(:status => 200, :body => "{\"test\": \"language\"}", :headers => {})
410
398
  end
411
399
 
412
400
  it 'test custom_headers is invalid' do
413
401
  params = DocumentParameters.new
414
402
  params.content = 'Por favor Senorita, says the man.?'
415
- params.custom_headers = { 'test': 'ruby-app'}
403
+ params.custom_headers = {"test" => "ruby-app"}
416
404
  expect { RosetteAPI.new('0123456789').get_language(params) }.to raise_error(RosetteAPIError)
417
405
  end
418
406
  end
@@ -424,12 +412,33 @@ describe RosetteAPI do
424
412
  'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
425
413
  'User-Agent' => 'Ruby',
426
414
  'X-Rosetteapi-Key' => '0123456789'}).
427
- to_return(status: 409, body: {'code': 'incompatibleClientVersion'}.to_json, headers: {})
415
+ to_return(:status => 409, :body => "{\"code\": \"incompatibleClientVersion\"}", :headers => {})
428
416
  end
429
417
  it 'test error 409 properly handled' do
430
418
  expect { RosetteAPI.new('0123456789').info }.to raise_error(RosetteAPIError)
431
419
  end
432
420
  end
433
421
 
422
+ describe '.get_text_embedding' do
423
+ before do
424
+ stub_request(:post, 'https://api.rosette.com/rest/v1/text-embedding').
425
+ with(:body => @json,
426
+ :headers => {'Accept' => 'application/json',
427
+ 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
428
+ 'Content-Type' => 'application/json',
429
+ 'User-Agent' => 'Ruby',
430
+ 'X-Rosetteapi-Key' => '0123456789',
431
+ 'X-Rosetteapi-Binding' => 'ruby',
432
+ 'X-Rosetteapi-Binding-Version' => '1.3.0'}).
433
+ to_return(:status => 200, :body => "{\"test\": \"language\"}", :headers => {})
434
+ end
435
+ it 'test text_embedding' do
436
+ params = DocumentParameters.new
437
+ params.content = @content
438
+ response = RosetteAPI.new('0123456789').get_text_embedding(params)
439
+ expect(response).instance_of? Hash
440
+ end
441
+ end
442
+
434
443
 
435
444
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rosette_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Basis Technology Corp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-22 00:00:00.000000000 Z
11
+ date: 2016-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubysl-securerandom