wit_ruby 1.1.0 → 1.1.1

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: e040638ae931f07535588e9e1c12d684322fa5b9
4
- data.tar.gz: bfaab5bddd0a95d47ee32f9f1aa63fddd8002b16
3
+ metadata.gz: f7a37eae422e375b443cde450d797b067ad85051
4
+ data.tar.gz: 01d091048c24291e389334f0c22836c0837ff94a
5
5
  SHA512:
6
- metadata.gz: e8706451d4e2fcc63f27f31d0cd73289fe2e839797c6383df98944fb19d1e2150af17a0603fa6c78f36a0f74ed72c8ac8dc03c94de78553a3b0dec0879a718aa
7
- data.tar.gz: 2ebc0aa165a14e8bbe3280669b202b0f67d945c44d04bc13d4d6667593f089cfa38b351db4a73a5d636bbbfe7dedfb7ee5fa9f83cc4a49f91bdfc48a189224d8
6
+ metadata.gz: 66036ce9176e0fb631094f784565acb5dc632f3d9c0900919f4080133f4aba580ca44608f41d4e2d927cafd55b769e7b6e977393ffa4f56ab225d5f180935573
7
+ data.tar.gz: 239caed49b27506a3147821a744563ca0bb0daa3996fbe57333385d2048ed174ec0f31de7858bbbf4a246a5f23421d4c388d2b39b5fca3d15398d03362d718ac
@@ -0,0 +1,119 @@
1
+ # WitRuby Changelog
2
+ All changes to this API wrapper will be documented in this file. This file follows the guidelines explained over at http://keepachangelog.com/.
3
+
4
+ ## 1.1.1 - 2014-06-30
5
+ ### Added
6
+ - As the wrapper defaults to the newest Wit.AI API version, new additions make WitRuby compatible.
7
+ - Added instance method, `entities`, for class Message that returns entities in result of a query
8
+ - Added optional argument, index, for methods `confidence`, `entities`, `entity_names`, and `intent` that returns each value at the desired index. Defaults at 0 if no index is passed (this is in response to Wit returning more than one outcome).
9
+ - Added ability to pass queries with spaces.
10
+ - Default to RSpec 3.
11
+
12
+ ### Deprecated
13
+ - New Wit.AI version deprecates some specific methods as results has been changed.
14
+
15
+ ### Removed
16
+ - Nothing
17
+
18
+ ### Fixed
19
+ - Due to the new version of the API, functionalities break in 1.1.0. This is fixed from the new additions.
20
+ - Tests that fail due to defaulting to the newest RSpec (being RSpec 3). Now defaults to RSpec 3 and fixed accordingly.
21
+
22
+ ## 1.1.0 - 2014-06-15
23
+
24
+ ### Added
25
+ - Implemented API call to send a specific sound file containing a message over to wit.ai (GET).
26
+
27
+ ### Deprecated
28
+ - Nothing.
29
+
30
+ ### Removed
31
+ - Nothing.
32
+
33
+ ### Fixed
34
+ - Changed testing suites to use a general instance for testing over at wit.ai so all developers can get passing tests.
35
+
36
+ ## 1.0.1 - 2014-06-06
37
+
38
+ ### Added
39
+ - Raise an error if a sent message has a length that is not between 0 to 256.
40
+
41
+ ### Deprecated
42
+ - Nothing.
43
+
44
+ ### Removed
45
+ - Nothing.
46
+
47
+ ### Fixed
48
+ - Nothing.
49
+
50
+ ## 1.0.0 - 2014-06-03
51
+
52
+ ### Added
53
+ - Yay! 1.0.0 for no reason! (Kinda.)
54
+ - Error checking to make sure input parameters to the session are correct.
55
+
56
+ ### Deprecated
57
+ - Adding expressions does not use a given BodyJson parameter and instead, requires the use of just the name of the entity, value, and new expression.
58
+
59
+ ### Removed
60
+ - Nothing.
61
+
62
+ ### Fixed
63
+ - Nothing.
64
+
65
+ ## 0.0.3 - 2014-05-21
66
+
67
+ ### Added
68
+ - Implemented getting array of entities from instance (GET).
69
+ - Implemented getting a specific entity from its name/id (GET).
70
+ - Implemented creation of entities (POST).
71
+ - Implemented the ability to update entities given the ID (PUT).
72
+ - Implemented deletion of entities (DELETE).
73
+ - Implemented addition of values (POST).
74
+ - Implemented deletion of values (DELETE).
75
+ - Implemented addition of expressions (POST).
76
+ - Implemented deletion of expressions (DELETE).
77
+ - New class definition for post / put calls assistance called BodyJson. Helps with JSON generation.
78
+
79
+ ### Deprecated
80
+ - Changed required Ruby version from 1.8.7 to 1.9.3.
81
+
82
+ ### Removed
83
+ - Nothing.
84
+
85
+ ### Fixed
86
+ - Nothing.
87
+
88
+ ## 0.0.2 - 2014-05-15
89
+
90
+ ### Added
91
+ - Implemented API call to get specific information from a sent message from it's given ID (GET).
92
+ - Intent specific API calls functional (GET).
93
+ - Change results to be returned as specific objects that inherit from the original class Result. Message, Intent, Entity, Expression are the specific wrappers for results.
94
+ - Changed description in gemspec.
95
+ - Error check so that only specific results can be refreshed. Refreshable objects are ones that
96
+ are directly returned from session calls.
97
+
98
+ ### Deprecated
99
+ - Nothing.
100
+
101
+ ### Removed
102
+ - Nothing.
103
+
104
+ ### Fixed
105
+ - Nothing.
106
+
107
+ ## 0.0.1 - 2014-05-08
108
+
109
+ ### Added
110
+ - Implemented connection with wit.ai API and sending a text message (GET).
111
+
112
+ ### Deprecated
113
+ - Nothing.
114
+
115
+ ### Removed
116
+ - Nothing.
117
+
118
+ ### Fixed
119
+ - Nothing.
@@ -0,0 +1,4 @@
1
+ # WitRuby - Contributors
2
+ I am a beginner developer so whoever has helped me build this gem will definitely be recognized! Listed below are the amazing others who have assisted in making me a better developer and creating this gem.
3
+
4
+ - @PWehlin & @rohitahuja (Platform45)
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![Coverage Status](https://coveralls.io/repos/gching/wit_ruby/badge.png?branch=master)](https://coveralls.io/r/gching/wit_ruby?branch=master)
7
7
 
8
8
 
9
- Provides a unofficial and (seemingly) pleasant Ruby API Wrapper for the Wit.AI API (Natural Language Interface) As of 1.0.0, most functionalities have been implemented. Go over to https://rubygems.org/gems/wit_ruby for more information.
9
+ Provides an unofficial and (seemingly) pleasant Ruby API Wrapper for the Wit.AI API (Natural Language Interface) As of 1.0.0, most functionalities have been implemented. Go over to https://rubygems.org/gems/wit_ruby for more information.
10
10
 
11
11
  I want to first off mention big props to the Wit.AI team. They are the true wizards here in making this beauty and by no means did I contribute anything magical. Do go check them out at http://wit.ai/! THANK YOU Wit.AI!
12
12
 
@@ -97,6 +97,10 @@ To send a specific message, use the saved session to send a given string as a pa
97
97
 
98
98
  $ session.send_message("Your Message")
99
99
 
100
+ To send a specific message sound file, pass over the path of the file as a parameter.
101
+
102
+ $ session.send_sound_message("Path to sound file")
103
+
100
104
  To get a specific messages information from the wit.ai, pass in the message's ID and use the method below.
101
105
 
102
106
  $ session.get_message("Message ID")
@@ -105,10 +109,12 @@ To get a specific messages information from the wit.ai, pass in the message's ID
105
109
 
106
110
  ```ruby
107
111
  message_results = session.send_message("Your Message")
108
- message_results.confidence # Returns the confidence of the message results.
109
- message_results.entity_names # Generates array of names of each entity in this message.
110
- message_results.intent # Returns the intent that this message corresponded to.
112
+ message_results.confidence(index=0) # Returns the confidence of the message results at the specified index.
113
+ message_results.entities(index=0) # Returns the entities of the message results at the specified index.
114
+ message_results.entity_names(index=0) # Generates array of names of each entity in this message at the specified index.
115
+ message_results.intent(index=0) # Returns the intent that this message corresponded to at the specified index.
111
116
  ```
117
+ *Index is an optional argument of type integer that lets you select the outcome at the specified index. The default index is 0.*
112
118
 
113
119
  ### Intent
114
120
 
@@ -200,7 +206,7 @@ Same goes for the deletion of an expression.
200
206
 
201
207
  ## Contributing
202
208
 
203
- I am a beginner developer so do contribute or help as much as possible! I definitely need to learn a lot :). Whoever helps will also have there name put here below this line. Amazing!
209
+ I am a beginner developer so do contribute or help as much as possible! I definitely need to learn a lot :). Whoever helps will also have there name put in [CONTRIBUTORS.md](CONTRIBUTORS.md)
204
210
  _________________________________
205
211
 
206
212
 
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'bundler/gem_tasks'
4
4
  # Default directory to look in is `/specs`
5
5
  # Run with `rake spec`
6
6
  RSpec::Core::RakeTask.new(:spec) do |task|
7
- task.rspec_opts = ['--color', '--format=nested']
7
+ task.rspec_opts = ['--color', '--format=documentation']
8
8
  end
9
9
 
10
10
  task :default => :spec
@@ -10,23 +10,30 @@ module Wit
10
10
  ## Returns the confidence of the message results.
11
11
  ##
12
12
  ## @return [Float] confidence in the message for the intent.
13
- def confidence
14
- outcome["confidence"]
13
+ def confidence(index=0)
14
+ self.raw_data["outcomes"][index]["confidence"]
15
15
  end
16
16
 
17
17
  ## Returns the intent that this message corresponded to.
18
18
  ##
19
19
  ## @return [String] intent name that this message corrsponded to.
20
- def intent
21
- outcome["intent"]
20
+ def intent(index=0)
21
+ self.raw_data["outcomes"][index]["intent"]
22
+ end
23
+
24
+ ## Returns the entities that this message corresponded to.
25
+ ##
26
+ ## @return Hash of entities that this message corrsponded to.
27
+ def entities(index=0)
28
+ self.raw_data["outcomes"][index]["entities"]
22
29
  end
23
30
 
24
31
  ## Generates Array of the names of each entity in this message.
25
32
  ##
26
33
  ## @return [Array] names of each entity
27
- def entity_names
34
+ def entity_names(index=0)
28
35
  entity_arr = Array.new
29
- outcome["entities"].each_key do |key|
36
+ self.raw_data["outcomes"][index]["entities"].each_key do |key|
30
37
  entity_arr << key
31
38
  end
32
39
  return entity_arr
@@ -40,8 +47,8 @@ module Wit
40
47
  ## @param possible_key [Symbol] possible method or key in the hash or entity.
41
48
  ## @return [Class] depending on the given results in the data.
42
49
  def method_missing(possible_key, *args, &block)
43
- if @rawdata["outcome"]["entities"].has_key?(possible_key.to_s)
44
- entity_value = @rawdata["outcome"]["entities"][possible_key.to_s]
50
+ if @rawdata["outcomes"][0]["entities"].has_key?(possible_key.to_s)
51
+ entity_value = @rawdata["outcomes"][0]["entities"][possible_key.to_s]
45
52
  entity_value.class == Hash ? Entity.new(entity_value) : EntityArray.new(entity_value)
46
53
  else
47
54
  super
@@ -104,7 +104,7 @@ module Wit
104
104
  ## @return [Array] entities in this current result object.
105
105
  def setup_entities
106
106
  ## Get the current entities hash
107
- entities_raw = @rawdata["entities"] || @rawdata["outcome"]["entities"]
107
+ entities_raw = @rawdata["entities"] || @rawdata["outcomes"]["entities"]
108
108
  ## Set the intance variable to be an array containing these entities.
109
109
  ## If its empty, then set the instance variable to nil
110
110
  unless entities_raw.empty?
@@ -25,6 +25,8 @@ module Wit
25
25
  if length <= 0 || length > 256
26
26
  raise NotCorrectSchema.new("The given message, \"#{message}\" is either too short or too long. Message length needs to be between 0 and 256.")
27
27
  end
28
+ # Replace spaces with "%20" for usage in URL
29
+ message.gsub!(" ", "%20")
28
30
  ## Recieve unwrapped results
29
31
  results = @client.get("/message?q=#{message}")
30
32
  return return_with_class(Wit::REST::Message, results)
@@ -61,7 +63,6 @@ module Wit
61
63
  ## @todo Notify Wit.ai as there documentation does not include the stats parameter
62
64
  def get_message(message_id)
63
65
  results = @client.get("/messages/#{message_id}")
64
-
65
66
  return return_with_class(Wit::REST::Message, results)
66
67
  end
67
68
 
@@ -1,3 +1,3 @@
1
1
  module Wit
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
@@ -11,19 +11,31 @@ require 'timeout'
11
11
 
12
12
  #VCR config
13
13
  VCR.configure do |c|
14
- c.cassette_library_dir = 'spec/fixtures/wit_cassettes'
15
- c.hook_into :webmock
16
- allow_next_request_at = nil
17
- filters = [:real?, lambda { |r| URI(r.uri).host == 'api.wit.ai' }]
18
14
 
19
- c.after_http_request(*filters) do |request, response|
20
- allow_next_request_at = Time.now + 1
21
- end
15
+ ## Used to see if were in the Travis CI environment.
16
+ ## Kinda dirty as were expecting ENV["TRAVIS"] is not declared.
17
+ ## We could use ENV["TRAVIS_WIT_TOKEN"], but that is the same dirtiness as
18
+ ## we assume one does not have it.
19
+ ## If it is the Travis CI environment, turn off VCR entirely and ignore cassettes.
20
+
21
+ if ENV["TRAVIS"] == true
22
+ puts("[WitRuby] Currently in Travis CI environment, VCR turned off.")
23
+ VCR.turn_off!(:ignore_cassettes => true)
24
+ else
25
+ puts("[WitRuby] Not in Travis CI environment, VCR on and recording cassettes.")
26
+ c.cassette_library_dir = 'spec/fixtures/wit_cassettes'
27
+ c.hook_into :webmock
28
+ allow_next_request_at = nil
29
+ filters = [:real?, lambda { |r| URI(r.uri).host == 'api.wit.ai' }]
22
30
 
23
- c.before_http_request(*filters) do |request|
24
- if allow_next_request_at && Time.now < allow_next_request_at
25
- sleep(allow_next_request_at - Time.now)
31
+ c.after_http_request(*filters) do |request, response|
32
+ allow_next_request_at = Time.now + 1
26
33
  end
27
- end
28
34
 
35
+ c.before_http_request(*filters) do |request|
36
+ if allow_next_request_at && Time.now < allow_next_request_at
37
+ sleep(allow_next_request_at - Time.now)
38
+ end
39
+ end
40
+ end
29
41
  end
@@ -23,7 +23,7 @@ describe Wit::REST::Client do
23
23
  @client = Wit::REST::Client.new(token: rand_auth)
24
24
  @conn = @client.instance_variable_get("@conn")
25
25
  expect(@conn.address).to eql("api.wit.ai")
26
- expect(@conn.use_ssl?).to be_true
26
+ expect(@conn.use_ssl?).to be_truthy
27
27
 
28
28
  end
29
29
 
@@ -41,7 +41,7 @@ describe Wit::REST::Client do
41
41
  @conn = @client.instance_variable_get("@conn")
42
42
  expect(@conn.address).to eql(new_host)
43
43
  expect(@conn.port).to eql(new_port)
44
- expect(@conn.proxy?).to be_true
44
+ expect(@conn.proxy?).to be_truthy
45
45
  expect(@conn.proxy_address).to eql(new_proxy)
46
46
  expect(@conn.proxy_port).to eql(new_proxy_port)
47
47
  expect(@conn.open_timeout).to eql(new_timeout)
@@ -52,7 +52,7 @@ describe Wit::REST::Client do
52
52
 
53
53
  it "should setup a session parameter to properly wrap API with commands" do
54
54
  @client = Wit::REST::Client.new(token: rand_auth)
55
- expect(@client.instance_variable_get("@session")).to be_true
55
+ expect(@client.instance_variable_get("@session")).to be_truthy
56
56
  end
57
57
 
58
58
 
@@ -5,37 +5,35 @@
5
5
  require 'spec_helper'
6
6
 
7
7
  describe Wit::REST::Message do
8
- let(:json) {%({
9
- "msg_id": "ba0fcf60-44d3-4499-877e-c8d65c239730",
10
- "msg_body": "how many people between Tuesday and Friday",
11
- "outcome": {
12
- "intent": "query_metrics",
13
- "entities": {
14
- "metric": {
15
- "value": "metric_visitors",
16
- "body": "people",
17
- "metadata": "{'code' : 324}"
8
+ let(:json) {%(
9
+
10
+ {
11
+ "msg_id" : "c20ad081-2cb9-4c63-8dd6-6667409514fa",
12
+ "outcomes" : [ {
13
+ "_text" : "how many people between Tuesday and Friday",
14
+ "intent" : "query_metrics",
15
+ "entities" : {
16
+ "metric" : [ {
17
+ "metadata" : "{'code' : 324}",
18
+ "value" : "metric_visitor"
19
+ } ],
20
+ "datetime" : [ {
21
+ "value" : {
22
+ "from" : "2014-06-24T00:00:00.000+02:00",
23
+ "to" : "2014-06-25T00:00:00.000+02:00"
24
+ }
25
+ }, {
26
+ "value" : {
27
+ "from" : "2014-06-27T00:00:00.000+02:00",
28
+ "to" : "2014-06-28T00:00:00.000+02:00"
29
+ }
30
+ } ]
18
31
  },
19
- "datetime": [
20
- {
21
- "value": {
22
- "from": "2013-10-21T00:00:00.000Z",
23
- "to": "2013-10-22T00:00:00.000Z"
24
- },
25
- "body": "Tuesday"
26
- },
27
- {
28
- "value": {
29
- "from": "2013-10-24T00:00:00.000Z",
30
- "to": "2013-10-25T00:00:00.000Z"
31
- },
32
- "body": "Friday"
33
- }
34
- ]
35
- },
36
- "confidence": 0.979
32
+ "confidence" : 0.986
33
+ } ]
37
34
  }
38
- })}
35
+
36
+ )}
39
37
  let(:rand_path) {"rand_path"}
40
38
  let(:rand_body) {"rand_body"}
41
39
  let(:rest_code) {"get"}
@@ -43,15 +41,15 @@ describe Wit::REST::Message do
43
41
 
44
42
 
45
43
  it "should have the following parameters, confidence and intent and entities" do
46
- expect(message_results.confidence).to eql(0.979)
44
+ expect(message_results.confidence).to eql(0.986)
47
45
  expect(message_results.intent).to eql("query_metrics")
48
- expect(message_results.metric.class).to eql(Wit::REST::Entity)
46
+ expect(message_results.metric.class).to eql(Wit::REST::EntityArray)
49
47
  expect(message_results.datetime.class).to eql(Wit::REST::EntityArray)
50
48
  end
51
49
 
52
50
  it "should have the right values in the entities" do
53
- expect(message_results.metric.value).to eql("metric_visitors")
54
- expect(message_results.datetime[0].body).to eql("Tuesday")
51
+ expect(message_results.metric[0].value).to eql("metric_visitor")
52
+ expect(message_results.datetime[0].value["from"]).to eql("2014-06-24T00:00:00.000+02:00")
55
53
  end
56
54
 
57
55
  it "should be able to return back an array of strings of the names of each entity" do
@@ -38,14 +38,14 @@ describe Wit::REST::Result do
38
38
  end
39
39
 
40
40
  it "should be refereshable if rest parameters and path/body are given and not if it isn't given" do
41
- expect(result.refreshable?).to be_true
42
- expect(not_refresh_result.refreshable?).to be_false
41
+ expect(result.refreshable?).to be_truthy
42
+ expect(not_refresh_result.refreshable?).to be_falsey
43
43
  end
44
44
 
45
45
  it "should have an empty method to check if the data is empty and return true if it is" do
46
- expect(result.empty?).to be_false
47
- expect(empty_hash.empty?).to be_true
48
- expect(empty_array.empty?).to be_true
46
+ expect(result.empty?).to be_falsey
47
+ expect(empty_hash.empty?).to be_truthy
48
+ expect(empty_array.empty?).to be_truthy
49
49
  end
50
50
 
51
51
  end
@@ -181,7 +181,7 @@ describe Wit::REST::Session do
181
181
 
182
182
  it "should get back the same message and have the same has as the sent message results" do
183
183
  expect(@resulting_message.msg_id).to eql(sent_message_id)
184
- expect(@resulting_message.msg_body).to eql(sent_message_result.msg_body)
184
+ expect(@resulting_message.outcomes[0]["_text"]).to eql(sent_message_result.outcomes[0]["_text"])
185
185
  end
186
186
  end
187
187
  end
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "rspec", "~> 3.0.0"
27
27
  spec.add_development_dependency "rspec-nc"
28
28
  spec.add_development_dependency "guard"
29
29
  spec.add_development_dependency "guard-rspec"
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.1.0
4
+ version: 1.1.1
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-16 00:00:00.000000000 Z
11
+ date: 2014-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 3.0.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 3.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec-nc
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -202,7 +202,8 @@ files:
202
202
  - ".coveralls.yml"
203
203
  - ".gitignore"
204
204
  - ".travis.yml"
205
- - CHANGELOG
205
+ - CHANGELOG.md
206
+ - CONTRIBUTORS.md
206
207
  - Gemfile
207
208
  - Guardfile
208
209
  - LICENSE.txt
data/CHANGELOG DELETED
@@ -1,32 +0,0 @@
1
- == 1.0.1
2
- * Added fix to raise an error if a sent message has a length that is not between 0 to 256.
3
-
4
- == 1.0.0
5
- * Yay! 1.0.0 for no reason! (Kinda.)
6
- * Added error checking to make sure input parameters to the session are correct.
7
- * Changed adding expression to not use the given BodyJson and instead, requires the use of just the name of the entity, value, and new expression.
8
-
9
- == 0.0.3
10
- * Implemented getting array of entities from instance (GET).
11
- * Implemented getting a specific entity from its name/id (GET).
12
- * Implemented creation of entities (POST).
13
- * Implemented the ability to update entities given the ID (PUT).
14
- * Implemented deletion of entities (DELETE).
15
- * Implemented addition of values (POST).
16
- * Implemented deletion of values (DELETE).
17
- * Implemented addition of expressions (POST).
18
- * Implemented deletion of expressions (DELETE).
19
- * Changed required Ruby version from 1.8.7 to 1.9.3
20
- * Added new class definition for post / put calls assistance. Helps with JSON generation.
21
-
22
- == 0.0.2
23
- * Implemented API call to get specific information from a sent message from it's given ID (GET).
24
- * Intent specific API calls functional (GET).
25
- * Changed description in gemspec.
26
- * Change results to be returned as specific objects that inherit from the original class Result.
27
- Message, Intent, Entity, Expression are the specific wrappers for results.
28
- * Made error check so that only specific results can be refreshed. Refreshable objects are ones that
29
- are directly returned from session calls.
30
-
31
- == 0.0.1
32
- * Implemented connection with wit.ai API and sending a text message (GET).