api-ai-ruby 1.2.3 → 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 +4 -4
- data/README.md +47 -4
- data/lib/api-ai-ruby.rb +2 -0
- data/lib/api-ai-ruby/client.rb +22 -6
- data/lib/api-ai-ruby/constants.rb +1 -1
- data/lib/api-ai-ruby/crud/contexts_request.rb +54 -0
- data/lib/api-ai-ruby/crud/user_entity_request.rb +2 -1
- data/lib/api-ai-ruby/models/context.rb +23 -0
- data/lib/api-ai-ruby/models/entity.rb +2 -2
- data/lib/api-ai-ruby/request/request_query.rb +5 -5
- data/spec/api-ai-ruby/api_spec.rb +43 -5
- data/spec/api-ai-ruby/context_request_spec.rb +1 -0
- data/spec/api-ai-ruby/voice_request_spec.rb +1 -0
- metadata +17 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00c4d8ce3cf45b523509982821303403e1dc26c4
|
4
|
+
data.tar.gz: 18107f16fe11ea0477c3b0b9797fe2c5164630b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3ce511381bc5c787c68dcd87da8ae0fa5eb65c6a0b64cf822a54218810c818a8fab23ba6bbf8a66bc2993085f2faee649f3ce7bb20a02b5d6dce1a5f9d3268b
|
7
|
+
data.tar.gz: b5ec12321765aaf92ebb7f764a4c737ae92fb916f20a6d52e15736aaf3b225fc028d1159b223b35dd01d295dd21e99e48df037ad131d905acef55f15545fec17
|
data/README.md
CHANGED
@@ -79,15 +79,15 @@ client.text_request 'call Mozart', entities: [
|
|
79
79
|
{
|
80
80
|
name: 'contacts',
|
81
81
|
entries: [
|
82
|
-
{value: 'Mozart', synonyms: %w(Mozart Wolfgang)
|
83
|
-
{value: 'Salieri', synonyms: %w(Salieri Antonio)
|
82
|
+
{value: 'Mozart', synonyms: %w(Mozart Wolfgang)},
|
83
|
+
{value: 'Salieri', synonyms: %w(Salieri Antonio)}
|
84
84
|
]
|
85
85
|
}
|
86
86
|
]
|
87
87
|
|
88
88
|
```
|
89
89
|
|
90
|
-
Or with separate **
|
90
|
+
Or with separate **create_user_entities_request** object with full CRUD support:
|
91
91
|
|
92
92
|
```ruby
|
93
93
|
|
@@ -105,7 +105,7 @@ entries_unknown = [
|
|
105
105
|
entity_contacts = ApiAiRuby::Entity.new('contacts', [entries_composers])
|
106
106
|
|
107
107
|
# let's go
|
108
|
-
uer = client.
|
108
|
+
uer = client.create_user_entities_request
|
109
109
|
uer.create(contacts) # or uer.create([entity1, entity2...])
|
110
110
|
|
111
111
|
client.text_request 'call Mozart' # will work
|
@@ -119,6 +119,40 @@ uer.retrieve('contacts') # will return current state of user entity
|
|
119
119
|
uer.delete('contacts') # will remove user entities for given session
|
120
120
|
|
121
121
|
```
|
122
|
+
## Context
|
123
|
+
Also SDK has full support of [contexts](https://docs.api.ai/docs/contexts) API.AI endpoint with special object, called ```contexts_request```
|
124
|
+
Usage is simple:
|
125
|
+
```ruby
|
126
|
+
|
127
|
+
# some preparations
|
128
|
+
lifespan = 5
|
129
|
+
parameters = {
|
130
|
+
:param_name => 'param_value'
|
131
|
+
}
|
132
|
+
name = 'test_context'
|
133
|
+
|
134
|
+
# you can create context using built-in model ApiAiRuby::Context
|
135
|
+
test_context = ApiAiRuby::Context.new(name, lifespan, parameters)
|
136
|
+
another_test_context = ApiAiRuby::Context.new('another_test_context')
|
137
|
+
one_more_test_context = ApiAiRuby::Context.new('one_more_test_context', 4)
|
138
|
+
|
139
|
+
# ok, we are ready
|
140
|
+
|
141
|
+
context_request = @client.create_contexts_request
|
142
|
+
|
143
|
+
# there are different options to be used with .create
|
144
|
+
|
145
|
+
context_request.create(test_context)
|
146
|
+
context_request.create([another_test_context, one_more_test_context])
|
147
|
+
context_request.create('one_more_super_final_mega_context')
|
148
|
+
|
149
|
+
context_request.retrieve('test_context') # will return you single context or nothing
|
150
|
+
context_request.list() # will return you list of all contexts used in current session
|
151
|
+
context_request.delete('test_context') # will remove single context
|
152
|
+
context_request.delete() # will remove all context in session
|
153
|
+
|
154
|
+
```
|
155
|
+
|
122
156
|
#Timeouts
|
123
157
|
**ApiAiRuby::Client** uses the [http gem](https://github.com/httprb/http) under the hood. You can use ```timeout_options``` on the client to set these.
|
124
158
|
```ruby
|
@@ -141,6 +175,15 @@ Please see the [httprb wiki on timeouts](https://github.com/httprb/http/wiki/Tim
|
|
141
175
|
|
142
176
|
#Changelog
|
143
177
|
|
178
|
+
##1.3.0
|
179
|
+
###Non-breaking
|
180
|
+
- contexts endpoint support (https://docs.api.ai/docs/contexts)
|
181
|
+
- better RDoc
|
182
|
+
###Breaking
|
183
|
+
- ApiAiRuby::Client::user_entities_request renamed to ApiAiRuby::Client::create_user_entities_request
|
184
|
+
- ApiAiRuby::Entity::addEntry renamed to ApiAiRuby::Entity::add_entry
|
185
|
+
|
186
|
+
##Previous
|
144
187
|
* 1.2.3 - events support
|
145
188
|
* 1.2.2 - added configurable timeouts for requests (thanks [bramski](https://github.com/bramski))
|
146
189
|
* 1.2.1 - fixed UTF-8 in text-requests
|
data/lib/api-ai-ruby.rb
CHANGED
@@ -6,6 +6,8 @@ require 'api-ai-ruby/request/request_query'
|
|
6
6
|
require 'api-ai-ruby/request/text_request'
|
7
7
|
require 'api-ai-ruby/request/event_request'
|
8
8
|
require 'api-ai-ruby/request/voice_request'
|
9
|
+
require 'api-ai-ruby/models/context'
|
9
10
|
require 'api-ai-ruby/models/entry'
|
10
11
|
require 'api-ai-ruby/models/entity'
|
12
|
+
require 'api-ai-ruby/crud/contexts_request'
|
11
13
|
require 'api-ai-ruby/crud/user_entity_request'
|
data/lib/api-ai-ruby/client.rb
CHANGED
@@ -2,6 +2,7 @@ require 'securerandom'
|
|
2
2
|
|
3
3
|
module ApiAiRuby
|
4
4
|
class Client
|
5
|
+
|
5
6
|
attr_accessor :client_access_token, :timeout_options
|
6
7
|
attr_writer :user_agent, :api_version, :api_lang, :api_base_url, :api_session_id
|
7
8
|
|
@@ -25,18 +26,22 @@ module ApiAiRuby
|
|
25
26
|
@user_agent ||= "ApiAiRubyGem/#{ApiAiRuby::Constants::VERSION}"
|
26
27
|
end
|
27
28
|
|
29
|
+
# @return [String]
|
28
30
|
def api_base_url
|
29
31
|
@api_base_url ||= ApiAiRuby::Constants::DEFAULT_BASE_URL
|
30
32
|
end
|
31
33
|
|
34
|
+
# @return [String]
|
32
35
|
def api_lang
|
33
36
|
@api_lang ||= ApiAiRuby::Constants::DEFAULT_CLIENT_LANG
|
34
37
|
end
|
35
38
|
|
39
|
+
# @return [String]
|
36
40
|
def api_version
|
37
41
|
@api_version ||= ApiAiRuby::Constants::DEFAULT_API_VERSION
|
38
42
|
end
|
39
43
|
|
44
|
+
# @return [String]
|
40
45
|
def api_session_id
|
41
46
|
@api_session_id
|
42
47
|
end
|
@@ -59,27 +64,38 @@ module ApiAiRuby
|
|
59
64
|
ApiAiRuby::TextRequest.new(self, options).perform
|
60
65
|
end
|
61
66
|
|
62
|
-
# @param
|
63
|
-
# @param data [
|
64
|
-
# @param options [
|
65
|
-
|
67
|
+
# @param event_name [String]
|
68
|
+
# @param data [Hash]
|
69
|
+
# @param options [Hash]
|
70
|
+
# @return [Hash]
|
71
|
+
def event_request (event_name = '', data = {}, options = {})
|
66
72
|
raise ApiAiRuby::ClientError.new('Credentials missing') if !credentials?
|
67
73
|
options[:event] = {
|
68
|
-
name:
|
74
|
+
name: event_name,
|
69
75
|
data: data
|
70
76
|
}
|
71
77
|
ApiAiRuby::EventRequest.new(self, options).perform
|
72
78
|
end
|
73
79
|
|
80
|
+
# @deprecated
|
81
|
+
# @param file_stream [File]
|
82
|
+
# @param options [Object]
|
83
|
+
# @return [Array, Hash]
|
74
84
|
def voice_request(file_stream, options = {})
|
75
85
|
raise ApiAiRuby::ClientError.new('Credentials missing') if !credentials?
|
76
86
|
options[:file] = file_stream
|
77
87
|
ApiAiRuby::VoiceRequest.new(self, options).perform
|
78
88
|
end
|
79
89
|
|
80
|
-
|
90
|
+
# @return [ApiAiRuby::UserEntitiesRequest]
|
91
|
+
def create_user_entities_request
|
81
92
|
ApiAiRuby::UserEntitiesRequest.new(self);
|
82
93
|
end
|
83
94
|
|
95
|
+
# @return [ApiAiRuby::ContextsRequest]
|
96
|
+
def create_contexts_request
|
97
|
+
ApiAiRuby::ContextsRequest.new(self)
|
98
|
+
end
|
99
|
+
|
84
100
|
end
|
85
101
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module ApiAiRuby
|
2
|
+
class ContextsRequest < ApiAiRuby::RequestQuery
|
3
|
+
|
4
|
+
def initialize(client, options = {})
|
5
|
+
super client, options
|
6
|
+
@headers['Content-Type'] = 'application/json; charset=UTF-8'
|
7
|
+
@crud_base_uri = client.api_base_url + 'contexts'
|
8
|
+
@uri = @crud_base_uri
|
9
|
+
end
|
10
|
+
|
11
|
+
# @param name [String]
|
12
|
+
# @return [ApiAiRuby::Context]
|
13
|
+
def retrieve(name)
|
14
|
+
raise ApiAiRuby::ClientError.new('context name required') if !name
|
15
|
+
@request_method = :get
|
16
|
+
@options = nil
|
17
|
+
@uri = @crud_base_uri + '/' + name + '?sessionId=' + self.client.api_session_id
|
18
|
+
self.perform
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [Array<ApiAiRuby::Context>]
|
22
|
+
def list
|
23
|
+
@request_method = :get
|
24
|
+
@uri = @crud_base_uri + '?sessionId=' + self.client.api_session_id
|
25
|
+
@options = nil
|
26
|
+
self.perform
|
27
|
+
end
|
28
|
+
|
29
|
+
# @param context [Array<ApiAiRuby::Context>, ApiAiRuby::Context, String]
|
30
|
+
def create(contexts)
|
31
|
+
|
32
|
+
@request_method = :post
|
33
|
+
@uri = @crud_base_uri + '?sessionId=' + self.client.api_session_id
|
34
|
+
|
35
|
+
@options = nil
|
36
|
+
@options = contexts if contexts.is_a? Array
|
37
|
+
@options = [contexts] if contexts.is_a? ApiAiRuby::Context
|
38
|
+
@options = [{:name => contexts}] if contexts.is_a? String
|
39
|
+
raise ApiAiRuby::ClientError.new(
|
40
|
+
'You should pass instance of ApiAiRuby::Context, Array<ApiAiRuby::Context> or String to ContextsRequest::create ') if @options == nil
|
41
|
+
self.perform
|
42
|
+
end
|
43
|
+
|
44
|
+
def delete(name = nil)
|
45
|
+
@request_method = :delete
|
46
|
+
@options = nil
|
47
|
+
@uri = @crud_base_uri + '?sessionId=' + self.client.api_session_id
|
48
|
+
@uri = @crud_base_uri + '/' + name + '?sessionId=' + self.client.api_session_id if name != nil
|
49
|
+
# @options[:sessionId] = self.client.api_session_id
|
50
|
+
self.perform
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -8,7 +8,8 @@ module ApiAiRuby
|
|
8
8
|
@uri = @crud_base_uri
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
# @param argument [Array<ApiAiRuby::Entity, Hash>, ApiAiRuby::Entity, Hash]
|
12
|
+
# @return [Hash]
|
12
13
|
def create(argument)
|
13
14
|
if !(argument && (argument.is_a?(Array) || argument.is_a?(Hash) || argument.is_a?(ApiAiRuby::Entity)))
|
14
15
|
raise ApiAiRuby::ClientError.new('Argument should be array of Entities or single Entity object')
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ApiAiRuby
|
2
|
+
class Context
|
3
|
+
attr_accessor :name, :lifespan, :parameters
|
4
|
+
|
5
|
+
# @param name [String]
|
6
|
+
# @param lifespan [Numeric]
|
7
|
+
# @param parameters [Hash]
|
8
|
+
def initialize (name, lifespan = 5, parameters = {})
|
9
|
+
@name = name
|
10
|
+
@lifespan = lifespan
|
11
|
+
@parameters = parameters
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_json(*args)
|
15
|
+
{
|
16
|
+
:name => name,
|
17
|
+
:lifespan => lifespan,
|
18
|
+
:parameters => parameters
|
19
|
+
}.to_json(*args)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -3,7 +3,7 @@ module ApiAiRuby
|
|
3
3
|
attr_accessor :name, :entries
|
4
4
|
|
5
5
|
# @param name [String]
|
6
|
-
# @param entries [Array]
|
6
|
+
# @param entries [Array<ApiAiRuby::Entry, Hash>]
|
7
7
|
def initialize (name, entries)
|
8
8
|
@name = name
|
9
9
|
@entries = entries
|
@@ -16,7 +16,7 @@ module ApiAiRuby
|
|
16
16
|
}.to_json(*args)
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
19
|
+
def add_entry(value, synonyms)
|
20
20
|
@entries.push new ApiAiRuby::Entry(value, synonyms)
|
21
21
|
end
|
22
22
|
|
@@ -21,9 +21,9 @@ module ApiAiRuby
|
|
21
21
|
@timeout_options = client.timeout_options || options[:timeout_options]
|
22
22
|
end
|
23
23
|
|
24
|
-
# @return [
|
24
|
+
# @return [Hash]
|
25
25
|
def perform
|
26
|
-
if @options.has_key?(:voiceData)
|
26
|
+
if @options && @options.is_a?(Hash) && @options.has_key?(:voiceData)
|
27
27
|
options_key = :form
|
28
28
|
else
|
29
29
|
options_key = (@request_method === :get) ? :params : :json
|
@@ -31,17 +31,17 @@ module ApiAiRuby
|
|
31
31
|
|
32
32
|
request = HTTP.with(@headers)
|
33
33
|
request = request.timeout(*@timeout_options) if @timeout_options
|
34
|
-
response = request.public_send(@request_method, @uri.to_s, options_key => @options)
|
34
|
+
response = request.public_send(@request_method, @uri.to_s, options_key => @options) if @options
|
35
|
+
response = request.public_send(@request_method, @uri.to_s) if @options == nil
|
35
36
|
response_body = symbolize_keys!(response.parse)
|
36
37
|
fail_or_return_response_body(response.code, response_body)
|
37
38
|
end
|
38
39
|
|
39
40
|
private
|
40
41
|
|
41
|
-
|
42
42
|
def fail_or_return_response_body(code, body)
|
43
43
|
error = false
|
44
|
-
if code != 200 || (body[:status] && body[:status][:code] && body[:status][:code] != 200)
|
44
|
+
if code != 200 || (body.is_a?(Hash) && body[:status] && body[:status][:code] && body[:status][:code] != 200)
|
45
45
|
error = ApiAiRuby::RequestError.new body[:status][:errorDetails], body[:status][:code]
|
46
46
|
end
|
47
47
|
fail(error) if error
|
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
describe 'api' do
|
4
|
-
before(:all) {
|
4
|
+
before(:all) {
|
5
|
+
@client = ApiAiRuby::Client.new(
|
5
6
|
:client_access_token => '3485a96fb27744db83e78b8c4bc9e7b7',
|
6
7
|
:api_session_id => 'testsession'
|
7
|
-
|
8
|
+
)
|
9
|
+
}
|
8
10
|
|
9
11
|
it 'should return response' do
|
10
12
|
response = @client.text_request 'Hello'
|
@@ -40,9 +42,9 @@ describe 'api' do
|
|
40
42
|
end
|
41
43
|
|
42
44
|
it 'should send voiceData to API' do
|
43
|
-
|
45
|
+
expect(@client.voice_request(File.new(fixture_path + '/hello.wav'))[:result][:resolvedQuery]).to eq 'hello'
|
44
46
|
# asr was disabled for non-premium users
|
45
|
-
expect {@client.voice_request(File.new(fixture_path + '/hello.wav'))}.to raise_error(ApiAiRuby::RequestError)
|
47
|
+
# expect {@client.voice_request(File.new(fixture_path + '/hello.wav'))}.to raise_error(ApiAiRuby::RequestError)
|
46
48
|
end
|
47
49
|
|
48
50
|
it 'should correctly set contexts with parameters' do
|
@@ -70,7 +72,7 @@ describe 'api' do
|
|
70
72
|
|
71
73
|
describe 'userEntities endpoint' do
|
72
74
|
|
73
|
-
before(:all) { @uer = @client.
|
75
|
+
before(:all) { @uer = @client.create_user_entities_request}
|
74
76
|
|
75
77
|
let(:entity1) {
|
76
78
|
ApiAiRuby::Entity.new 'dwarfs', [ApiAiRuby::Entry.new('giur', %w(Giur Amaldur))]
|
@@ -115,4 +117,40 @@ describe 'api' do
|
|
115
117
|
# end
|
116
118
|
|
117
119
|
end
|
120
|
+
|
121
|
+
describe 'contexts endpoint' do
|
122
|
+
|
123
|
+
before(:all) { @context_request = @client.create_contexts_request}
|
124
|
+
|
125
|
+
it 'should retrieve contexts' do
|
126
|
+
@client.text_request 'Hello', :contexts => %w(firstContext secondContext), :resetContexts => true
|
127
|
+
response = @context_request.list
|
128
|
+
expect(response[0][:name]).to eq 'secondcontext'
|
129
|
+
expect(response[1][:name]).to eq 'firstcontext'
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'should retrieve contexts by name' do
|
133
|
+
response = @context_request.retrieve 'secondContext'
|
134
|
+
expect(response[:name]).to eq 'secondcontext'
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'should delete all curret contexts' do
|
138
|
+
@context_request.delete
|
139
|
+
expect(@context_request.list.length).to be 0
|
140
|
+
end
|
141
|
+
|
142
|
+
it 'should create context via crud' do
|
143
|
+
@context_request.create('test')
|
144
|
+
@context_request.create(ApiAiRuby::Context.new('test1'))
|
145
|
+
@context_request.create([ApiAiRuby::Context.new('test2'), ApiAiRuby::Context.new('test3',)])
|
146
|
+
expect(@context_request.list.length).to be 4
|
147
|
+
end
|
148
|
+
|
149
|
+
it 'should delete context by name' do
|
150
|
+
@context_request.delete('test3')
|
151
|
+
expect(@context_request.list.length).to be 3
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
118
156
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# @todo: write unit-tests
|
@@ -0,0 +1 @@
|
|
1
|
+
# @todo: write unit-tests
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api-ai-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- api.ai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.7'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: http
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.9.4
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.9.4
|
55
55
|
description: Plugin makes it easy to integrate your Ruby application with https://api.ai
|
@@ -60,7 +60,7 @@ executables: []
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
-
-
|
63
|
+
- .gitignore
|
64
64
|
- Gemfile
|
65
65
|
- LICENSE
|
66
66
|
- README.md
|
@@ -70,7 +70,9 @@ files:
|
|
70
70
|
- lib/api-ai-ruby/client.rb
|
71
71
|
- lib/api-ai-ruby/client_error.rb
|
72
72
|
- lib/api-ai-ruby/constants.rb
|
73
|
+
- lib/api-ai-ruby/crud/contexts_request.rb
|
73
74
|
- lib/api-ai-ruby/crud/user_entity_request.rb
|
75
|
+
- lib/api-ai-ruby/models/context.rb
|
74
76
|
- lib/api-ai-ruby/models/entity.rb
|
75
77
|
- lib/api-ai-ruby/models/entry.rb
|
76
78
|
- lib/api-ai-ruby/request/event_request.rb
|
@@ -80,6 +82,7 @@ files:
|
|
80
82
|
- lib/api-ai-ruby/request_error.rb
|
81
83
|
- spec/api-ai-ruby/api_spec.rb
|
82
84
|
- spec/api-ai-ruby/client_spec.rb
|
85
|
+
- spec/api-ai-ruby/context_request_spec.rb
|
83
86
|
- spec/api-ai-ruby/error_spec.rb
|
84
87
|
- spec/api-ai-ruby/text_request_spec.rb
|
85
88
|
- spec/api-ai-ruby/user_entities_request_spec.rb
|
@@ -96,26 +99,28 @@ require_paths:
|
|
96
99
|
- lib
|
97
100
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
101
|
requirements:
|
99
|
-
- -
|
102
|
+
- - ~>
|
100
103
|
- !ruby/object:Gem::Version
|
101
104
|
version: '2.0'
|
102
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
106
|
requirements:
|
104
|
-
- -
|
107
|
+
- - '>='
|
105
108
|
- !ruby/object:Gem::Version
|
106
109
|
version: '0'
|
107
110
|
requirements: []
|
108
111
|
rubyforge_project:
|
109
|
-
rubygems_version: 2.
|
112
|
+
rubygems_version: 2.0.14.1
|
110
113
|
signing_key:
|
111
114
|
specification_version: 4
|
112
115
|
summary: ruby SDK for https://api.ai
|
113
116
|
test_files:
|
114
117
|
- spec/api-ai-ruby/api_spec.rb
|
115
118
|
- spec/api-ai-ruby/client_spec.rb
|
119
|
+
- spec/api-ai-ruby/context_request_spec.rb
|
116
120
|
- spec/api-ai-ruby/error_spec.rb
|
117
121
|
- spec/api-ai-ruby/text_request_spec.rb
|
118
122
|
- spec/api-ai-ruby/user_entities_request_spec.rb
|
119
123
|
- spec/api-ai-ruby/voice_request_spec.rb
|
120
124
|
- spec/fixtures/hello.wav
|
121
125
|
- spec/helper.rb
|
126
|
+
has_rdoc:
|