wit-ruby2 0.0.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6664f7034fc0a92cf6aacee77a91b8ab6da495e1
4
+ data.tar.gz: 2df625719fbe488b0d03b692c49b89b6de99912d
5
+ SHA512:
6
+ metadata.gz: f9b0bd748340cd058f77382b1d423fc9d1b8d274fd723e44c6edd70248c554683493a624aec1f53c355d5c870fde3dd42232dd370fa27c26fddefa443a112244
7
+ data.tar.gz: 291690b012e58bd93d6a734360e2605e1fd1bef4ee5b0a1ea6892a4aab5e7386aa532676675da267c20aefa9825fd164e7b091d4cc04883958620172034a4621
@@ -0,0 +1,3 @@
1
+ .ruby-version
2
+ Gemfile.lock
3
+ pkg
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright 2012 Jeremy Jackson / ModeSet
2
+
3
+ https://github.com/modeset/wit-ruby
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,49 @@
1
+ wit-ruby2
2
+ ========
3
+
4
+ Easy interface for interacting with the [Wit.ai](http://wit.ai) natural language parsing API.
5
+
6
+ Initially a fork of: [wit-ruby](https://github.com/modeset/wit-ruby)
7
+
8
+ This project will expand as the Wit.ai API expands, but as it stands there's a single endpoint. You can hit this
9
+ endpoint easily with `Wit.message([your message])`, which uses Wit.ai to convert that phrase or sentence into an object
10
+ with an intent, and entities if any are available.
11
+
12
+ You will need to create a Wit.ai account and begin training it.
13
+
14
+ ## Installation
15
+
16
+ ```ruby
17
+ gem 'wit-ruby2', '>= 0.0.3'
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```ruby
23
+ require 'wit-ruby2'
24
+
25
+ client = Wit::Client.new("WIT_TOKEN")
26
+
27
+ result = client.classify_message('Hi')
28
+
29
+ result.intent # will be Hello with the default Wit instance.
30
+ result.confidence # the confidence score of the classification
31
+ result.entities # A hash of entity types
32
+ result.entities["location"].first.value # the value of the first location extracted
33
+ ```
34
+
35
+ ### Result properties/methods
36
+
37
+ * *id* The unique message id provided back from Wit.
38
+ * *text* The original message sent.
39
+ * *intent* The intent, as determined by Wit.
40
+ * *confidence* The confidence level that Wit determined.
41
+ * *entities* Hash of entities, which contains an array of n extracted entities
42
+
43
+ ### Entity properties/methods
44
+
45
+ * *value*: the value extracted by wit
46
+
47
+ ## License
48
+
49
+ Licensed under the [MIT License](http://creativecommons.org/licenses/MIT/)
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,4 @@
1
+ require 'wit/version'
2
+ require 'wit/wit'
3
+ require 'wit/result'
4
+ require 'wit/client'
@@ -0,0 +1,30 @@
1
+ module Wit
2
+ class Client
3
+ attr_accessor :token
4
+
5
+ def initialize(token)
6
+ @token = token
7
+ end
8
+
9
+ def classify_message(message = '')
10
+ response = connection.get do |req|
11
+ req.headers['Authorization'] = "Bearer #{token}"
12
+ req.url '/message', q: message
13
+ end
14
+
15
+ case response.status
16
+ when 200 then return Result.new JSON.parse(response.body)
17
+ when 401 then raise Unauthorized, "incorrect token"
18
+ else raise BadResponse, "response code: #{response.status}"
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def connection
25
+ @connection ||= Faraday.new url: 'https://api.wit.ai' do |faraday|
26
+ faraday.adapter Faraday.default_adapter
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,5 @@
1
+ class EntityCollection < OpenStruct
2
+ def [](name)
3
+ send(name.to_sym)
4
+ end
5
+ end
@@ -0,0 +1,21 @@
1
+ module Wit
2
+ class Result
3
+ attr_reader :id, :text, :intent, :confidence, :entities
4
+
5
+ def initialize(hash)
6
+ @id = hash['msg_id']
7
+ @text = hash['_text']
8
+ outcomes = hash['outcomes'].first
9
+ if outcomes
10
+ @intent = outcomes['intent']
11
+ @confidence = outcomes['confidence']
12
+ @entities = {}
13
+ outcomes['entities'].each do |name, entity|
14
+ @entities[name] = entity.map do |e|
15
+ OpenStruct.new(e)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module Wit
2
+ VERSION = '0.0.3'
3
+ end
@@ -0,0 +1,8 @@
1
+ require 'faraday'
2
+ require 'json'
3
+ require 'ostruct'
4
+
5
+ module Wit
6
+ class Unauthorized < Exception; end
7
+ class BadResponse < Exception; end
8
+ end
@@ -0,0 +1,36 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.wit.ai/message?q=test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.2
12
+ Authorization:
13
+ - Bearer 1234
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 400
21
+ message: Bad Request
22
+ headers:
23
+ Server:
24
+ - nginx/1.8.0
25
+ Date:
26
+ - Fri, 22 Jan 2016 18:43:17 GMT
27
+ Content-Length:
28
+ - '28'
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: UTF-8
33
+ string: Bad auth, check token/params
34
+ http_version:
35
+ recorded_at: Fri, 22 Jan 2016 18:43:17 GMT
36
+ recorded_with: VCR 3.0.1
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.wit.ai/message?q=non%20je%20n%27aime%20pas%20les%20pommes
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.2
12
+ Authorization:
13
+ - Bearer <WIT_TOKEN>
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx/1.8.0
25
+ Date:
26
+ - Fri, 22 Jan 2016 18:03:48 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Content-Length:
30
+ - '245'
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "msg_id" : "ed83fafe-62c5-43f7-9b29-fce46e8aef43",
38
+ "_text" : "non je n'aime pas les pommes",
39
+ "outcomes" : [ {
40
+ "_text" : "non je n'aime pas les pommes",
41
+ "confidence" : 0.575,
42
+ "intent" : "Location",
43
+ "entities" : { }
44
+ } ]
45
+ }
46
+ http_version:
47
+ recorded_at: Fri, 22 Jan 2016 18:03:48 GMT
48
+ recorded_with: VCR 3.0.1
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.wit.ai/message?q=test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.2
12
+ Authorization:
13
+ - Bearer <WIT_TOKEN>
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx/1.8.0
25
+ Date:
26
+ - Fri, 22 Jan 2016 18:43:17 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Content-Length:
30
+ - '197'
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "msg_id" : "b48beaf9-c4c2-4bcf-a467-d6947815d2a3",
38
+ "_text" : "test",
39
+ "outcomes" : [ {
40
+ "_text" : "test",
41
+ "confidence" : 0.575,
42
+ "intent" : "Location",
43
+ "entities" : { }
44
+ } ]
45
+ }
46
+ http_version:
47
+ recorded_at: Fri, 22 Jan 2016 18:43:17 GMT
48
+ recorded_with: VCR 3.0.1
@@ -0,0 +1,36 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.wit.ai/message?q=test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.2
12
+ Authorization:
13
+ - Bearer
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 400
21
+ message: Bad Request
22
+ headers:
23
+ Server:
24
+ - nginx/1.8.0
25
+ Date:
26
+ - Fri, 22 Jan 2016 18:43:18 GMT
27
+ Content-Length:
28
+ - '28'
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: UTF-8
33
+ string: Bad auth, check token/params
34
+ http_version:
35
+ recorded_at: Fri, 22 Jan 2016 18:43:18 GMT
36
+ recorded_with: VCR 3.0.1
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.wit.ai/message?q=un%20bar%20pr%C3%A8s%20de%20paris?
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.2
12
+ Authorization:
13
+ - Bearer <WIT_TOKEN>
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx/1.8.0
25
+ Date:
26
+ - Fri, 22 Jan 2016 18:03:48 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Content-Length:
30
+ - '350'
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: ASCII-8BIT
35
+ string: !binary |-
36
+ ewogICJtc2dfaWQiIDogImFiODI5MDYyLTU3MWUtNGI5ZS1hOTQxLTg4YzEx
37
+ MjI4MjRmMSIsCiAgIl90ZXh0IiA6ICJ1biBiYXIgcHLDqHMgZGUgcGFyaXM/
38
+ IiwKICAib3V0Y29tZXMiIDogWyB7CiAgICAiX3RleHQiIDogInVuIGJhciBw
39
+ csOocyBkZSBwYXJpcz8iLAogICAgImNvbmZpZGVuY2UiIDogMC41NzUsCiAg
40
+ ICAiaW50ZW50IiA6ICJMb2NhdGlvbiIsCiAgICAiZW50aXRpZXMiIDogewog
41
+ ICAgICAibG9jYXRpb24iIDogWyB7CiAgICAgICAgInR5cGUiIDogInZhbHVl
42
+ IiwKICAgICAgICAidmFsdWUiIDogInBhcmlzIiwKICAgICAgICAic3VnZ2Vz
43
+ dGVkIiA6IHRydWUKICAgICAgfSBdCiAgICB9CiAgfSBdCn0=
44
+ http_version:
45
+ recorded_at: Fri, 22 Jan 2016 18:03:48 GMT
46
+ recorded_with: VCR 3.0.1
@@ -0,0 +1,18 @@
1
+ require 'wit-ruby2'
2
+
3
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
4
+ require 'vcr'
5
+ require 'webmock/rspec'
6
+
7
+ RSpec.configure do |config|
8
+ config.before(:suite) do
9
+ $token = ENV['WIT_TOKEN']
10
+ end
11
+ end
12
+
13
+ VCR.configure do |config|
14
+ config.cassette_library_dir = "spec/fixtures/vcr"
15
+ config.hook_into :webmock
16
+ config.configure_rspec_metadata!
17
+ config.filter_sensitive_data("<WIT_TOKEN>") { $token }
18
+ end
@@ -0,0 +1,29 @@
1
+ describe Wit::Client do
2
+
3
+ subject do
4
+ Wit::Client.new(token).classify_message("test")
5
+ end
6
+
7
+ let(:token) {$token}
8
+
9
+ context "happy path", vcr: {cassette_name: 'happy_path'} do
10
+ it "initializes a result" do
11
+ expect(Wit::Result).to receive(:new)
12
+ subject
13
+ end
14
+ end
15
+
16
+ context "bad token", vcr: {cassette_name: 'bad_token'} do
17
+ let(:token) {'1234'}
18
+ it "raises Unauthorized" do
19
+ expect{subject}.to raise_exception(Wit::BadResponse, "response code: 400")
20
+ end
21
+ end
22
+
23
+ context "other error", vcr: {cassette_name: 'no_token'} do
24
+ let(:token) {nil}
25
+ it "raises a BadResponse with its code" do
26
+ expect{subject}.to raise_exception(Wit::BadResponse, "response code: 400")
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,45 @@
1
+ describe Wit::Result do
2
+ let(:text) {'un bar près de paris?'}
3
+
4
+ subject do
5
+ Wit::Client.new($token).classify_message(text)
6
+ end
7
+
8
+ context "standard request with all the type of contents", vcr: {cassette_name: 'standard_request'} do
9
+ it "sets the id" do
10
+ expect(subject.id).not_to be_nil
11
+ end
12
+
13
+ it "sets the text" do
14
+ expect(subject.text).to eq text
15
+ end
16
+
17
+ it "sets the intent" do
18
+ expect(subject.intent).to eq "Location"
19
+ end
20
+
21
+ it "sets the confidence" do
22
+ expect(subject.confidence).to be > 0
23
+ end
24
+
25
+ context "for each entities" do
26
+ let (:entities) {subject.entities}
27
+
28
+ it "contains a value" do
29
+ expect(entities["location"].first.value).to eq "paris"
30
+ end
31
+ end
32
+ end
33
+
34
+ context "request without entities", vcr: {cassette_name: 'empty_entities_request'} do
35
+ let(:text) {"non je n'aime pas les pommes"}
36
+
37
+ it "doesn't fail" do
38
+ subject
39
+ end
40
+
41
+ it "has an empty entities array" do
42
+ expect(subject.entities).to be_truthy
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,8 @@
1
+ describe Wit do
2
+ it "defines 2 exceptions classes" do
3
+ expect do
4
+ Wit::Unauthorized.new
5
+ Wit::BadResponse.new
6
+ end.not_to raise_exception
7
+ end
8
+ end
@@ -0,0 +1,28 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'wit/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'wit-ruby2'
8
+ spec.version = Wit::VERSION
9
+ spec.authors = ['Jeremy Jackson', 'Zaratan']
10
+ spec.email = ['tech@hellojam.fr']
11
+ spec.license = 'MIT'
12
+ spec.homepage = 'https://github.com/blackbirdco/wit-ruby2'
13
+ spec.summary = %Q{wit-ruby: Easy interface for wit.ai}
14
+ spec.description = %Q{A simple library for interacting with wit.ai -- will expand as the api does}
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "faraday", ">= 0.8.8"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.6"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "vcr"
27
+ spec.add_development_dependency "webmock"
28
+ end
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wit-ruby2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Jackson
8
+ - Zaratan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-01-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 0.8.8
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 0.8.8
28
+ - !ruby/object:Gem::Dependency
29
+ name: bundler
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.6'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.6'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: vcr
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: webmock
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ description: A simple library for interacting with wit.ai -- will expand as the api
99
+ does
100
+ email:
101
+ - tech@hellojam.fr
102
+ executables: []
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".gitignore"
107
+ - ".rspec"
108
+ - Gemfile
109
+ - MIT.LICENSE
110
+ - README.md
111
+ - Rakefile
112
+ - lib/wit-ruby2.rb
113
+ - lib/wit/client.rb
114
+ - lib/wit/entity.rb
115
+ - lib/wit/result.rb
116
+ - lib/wit/version.rb
117
+ - lib/wit/wit.rb
118
+ - spec/fixtures/vcr/bad_token.yml
119
+ - spec/fixtures/vcr/empty_entities_request.yml
120
+ - spec/fixtures/vcr/happy_path.yml
121
+ - spec/fixtures/vcr/no_token.yml
122
+ - spec/fixtures/vcr/standard_request.yml
123
+ - spec/spec_helper.rb
124
+ - spec/wit/client_spec.rb
125
+ - spec/wit/result_spec.rb
126
+ - spec/wit/wit_spec.rb
127
+ - wit-ruby2.gemspec
128
+ homepage: https://github.com/blackbirdco/wit-ruby2
129
+ licenses:
130
+ - MIT
131
+ metadata: {}
132
+ post_install_message:
133
+ rdoc_options: []
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ requirements: []
147
+ rubyforge_project:
148
+ rubygems_version: 2.4.8
149
+ signing_key:
150
+ specification_version: 4
151
+ summary: 'wit-ruby: Easy interface for wit.ai'
152
+ test_files:
153
+ - spec/fixtures/vcr/bad_token.yml
154
+ - spec/fixtures/vcr/empty_entities_request.yml
155
+ - spec/fixtures/vcr/happy_path.yml
156
+ - spec/fixtures/vcr/no_token.yml
157
+ - spec/fixtures/vcr/standard_request.yml
158
+ - spec/spec_helper.rb
159
+ - spec/wit/client_spec.rb
160
+ - spec/wit/result_spec.rb
161
+ - spec/wit/wit_spec.rb