wit_ruby 1.0.1 → 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/.travis.yml +1 -1
- data/lib/wit_ruby/rest/client.rb +4 -2
- data/lib/wit_ruby/rest/session.rb +17 -2
- data/lib/wit_ruby/version.rb +1 -1
- data/spec/test_hello.wav +0 -0
- data/spec/wit_ruby/rest/session_spec.rb +28 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e040638ae931f07535588e9e1c12d684322fa5b9
|
4
|
+
data.tar.gz: bfaab5bddd0a95d47ee32f9f1aa63fddd8002b16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8706451d4e2fcc63f27f31d0cd73289fe2e839797c6383df98944fb19d1e2150af17a0603fa6c78f36a0f74ed72c8ac8dc03c94de78553a3b0dec0879a718aa
|
7
|
+
data.tar.gz: 2ebc0aa165a14e8bbe3280669b202b0f67d945c44d04bc13d4d6667593f089cfa38b351db4a73a5d636bbbfe7dedfb7ee5fa9f83cc4a49f91bdfc48a189224d8
|
data/.travis.yml
CHANGED
@@ -7,4 +7,4 @@ rvm:
|
|
7
7
|
script: bundle exec rake
|
8
8
|
env:
|
9
9
|
global:
|
10
|
-
secure:
|
10
|
+
secure: AALEF5biTduH6D0+o6SLFzIZuoypg92KV/08XdAnm0nvUFjdu/XU6qhY6b10x/coLQa6CJYTwZ6L5YVZHc90YJTf/N4mpYGUuEMXKg6Nr53I+072BaYshDjDh8IA/t2DtT53ZGr7t9VBf6FWqoDbGJXjdmvbOZZ/AcyQUnu6ksg=
|
data/lib/wit_ruby/rest/client.rb
CHANGED
@@ -64,12 +64,14 @@ module Wit
|
|
64
64
|
method_rest_class = Net::HTTP.const_get rest_method.to_s.capitalize
|
65
65
|
|
66
66
|
## Define the actual method for Wit::Session:Client
|
67
|
-
define_method rest_method do |path, params=nil|
|
67
|
+
define_method rest_method do |path, params=nil, content_overide=nil|
|
68
68
|
request = method_rest_class.new path, {"Authorization" => "Bearer #{@auth_token}"}
|
69
69
|
## If post or put, set content-type to be JSON
|
70
70
|
if [:post, :put].include?(rest_method)
|
71
71
|
request.body = params
|
72
|
-
|
72
|
+
## Will check if there is a Content-Type Header overide, and if not, default to
|
73
|
+
## JSON specific header.
|
74
|
+
request["Content-Type"] = content_overide || "application/json"
|
73
75
|
request["Accept"] = "application/vnd.wit.20160202+json"
|
74
76
|
end
|
75
77
|
return connect_send(request)
|
@@ -34,8 +34,23 @@ module Wit
|
|
34
34
|
## Do check the certain documentation of what the specific audio file
|
35
35
|
## should be.
|
36
36
|
##
|
37
|
-
## @param
|
38
|
-
def send_sound_message(
|
37
|
+
## @param sound_file_path [String] path to sound file.
|
38
|
+
def send_sound_message(sound_file_path)
|
39
|
+
## Given the path, we send the file and add proper headers
|
40
|
+
## Check if it is a specifc file type
|
41
|
+
## This seems dirty, look more into it.
|
42
|
+
sound_file_type = sound_file_path.split(".")[-1]
|
43
|
+
## Raise error if not accepted
|
44
|
+
unless ["wav", "mp3", "ulaw", "raw"].include?(sound_file_type)
|
45
|
+
raise NotCorrectSchema.new("The current sound file is not one of the supported types. The file types accepted are .wav, .mp3, .ulaw and .raw")
|
46
|
+
end
|
47
|
+
|
48
|
+
## Set Content-Type header by overiding it with the correct filetype.
|
49
|
+
## If it is raw, add the extra params to the end of it.
|
50
|
+
content_overide = "audio/#{sound_file_type}"
|
51
|
+
content_overide += ";encoding=unsigned-integer;bits=16;rate=8000;endian=big" if sound_file_type == "raw"
|
52
|
+
results = @client.post("/speech", File.read(sound_file_path), "audio/#{sound_file_type}")
|
53
|
+
return return_with_class(Wit::REST::Message, results)
|
39
54
|
end
|
40
55
|
|
41
56
|
## GET - returns stored message for specific id.
|
data/lib/wit_ruby/version.rb
CHANGED
data/spec/test_hello.wav
ADDED
Binary file
|
@@ -9,7 +9,14 @@ describe Wit::REST::Session do
|
|
9
9
|
let(:message) {"Hi"}
|
10
10
|
let(:rand_hash) {{"a" => "a", "b" => "b"}}
|
11
11
|
let(:randSession) {Wit::REST::Session.new(randClient)}
|
12
|
-
|
12
|
+
## Uses a testing specific developer instances so a generic testing platform is created.
|
13
|
+
## Don't do dirty stuff.
|
14
|
+
## If in Travis, use ENV["TRAVIS_WIT_TOKEN"]
|
15
|
+
if ENV["TRAVIS_WIT_TOKEN"]
|
16
|
+
let(:session) {Wit::REST::Client.new(token: ENV["TRAVIS_WIT_TOKEN"]).session}
|
17
|
+
else
|
18
|
+
let(:session) {Wit::REST::Client.new(token: "BRB7NEG4D2TCL6C5VUMD4UA5H376DPKU").session}
|
19
|
+
end
|
13
20
|
random_name = (0...10).map { ('a'..'z').to_a[rand(26)] }.join
|
14
21
|
|
15
22
|
|
@@ -23,7 +30,7 @@ describe Wit::REST::Session do
|
|
23
30
|
randSession.should respond_to(:send_message)
|
24
31
|
end
|
25
32
|
|
26
|
-
it ".send_sound_message(
|
33
|
+
it ".send_sound_message(sound_file)" do
|
27
34
|
randSession.should respond_to(:send_sound_message)
|
28
35
|
end
|
29
36
|
|
@@ -138,6 +145,25 @@ describe Wit::REST::Session do
|
|
138
145
|
end
|
139
146
|
|
140
147
|
|
148
|
+
describe "Sending sound file" do
|
149
|
+
let(:test_sound_file_hello_path) {File.dirname(__FILE__) + '/../../test_hello.wav'}
|
150
|
+
|
151
|
+
let(:sent_message_sound_result) {session.send_sound_message(test_sound_file_hello_path)}
|
152
|
+
before do
|
153
|
+
VCR.insert_cassette 'send_sound_message', record: :once, preserve_exact_body_bytes: true
|
154
|
+
end
|
155
|
+
after do
|
156
|
+
VCR.eject_cassette
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should return an object of class Message" do
|
160
|
+
expect(sent_message_sound_result.class).to eql(Wit::REST::Message)
|
161
|
+
end
|
162
|
+
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
|
141
167
|
describe "Geting message info" do
|
142
168
|
let(:sent_message_result) {session.send_message(message)}
|
143
169
|
let(:sent_message_id) {sent_message_result.msg_id}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wit_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Ching
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -220,6 +220,7 @@ files:
|
|
220
220
|
- lib/wit_ruby/rest/session.rb
|
221
221
|
- lib/wit_ruby/version.rb
|
222
222
|
- spec/spec_helper.rb
|
223
|
+
- spec/test_hello.wav
|
223
224
|
- spec/wit_ruby/rest/bodyjson_spec.rb
|
224
225
|
- spec/wit_ruby/rest/client_spec.rb
|
225
226
|
- spec/wit_ruby/rest/entity_spec.rb
|
@@ -255,6 +256,7 @@ specification_version: 4
|
|
255
256
|
summary: Provides a Ruby API wrapper with the Wit.ai API.
|
256
257
|
test_files:
|
257
258
|
- spec/spec_helper.rb
|
259
|
+
- spec/test_hello.wav
|
258
260
|
- spec/wit_ruby/rest/bodyjson_spec.rb
|
259
261
|
- spec/wit_ruby/rest/client_spec.rb
|
260
262
|
- spec/wit_ruby/rest/entity_spec.rb
|