watson-api-client 0.0.3 → 0.0.4
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 +9 -3
- data/lib/watson-api-client.rb +13 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2853333b50372507056bf65468d99248c3c8fc02
|
4
|
+
data.tar.gz: 37206172f43a2f9d38d5e121ea697d3fba10edda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7111a654d49c0314c20ce32f541613a8db16bd6fd1ca4a51628cfe55ac247dece5903cf34bc95827de58b6afa82028581976ac9c8c4fe5aa8f3d5eba9b99800
|
7
|
+
data.tar.gz: 4d6dfe01b59a98402a86e65d98671f4135a08e69c58cae13275a492dc59381842731fa4e2a31dcc2055948a6ba13c1d10fd184f20212ca0fff26d1fec94fa115
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
watson-api-client - An IBM Watson™ API client
|
1
|
+
watson-api-client - An IBM Watson™ API client
|
2
2
|
================================================================
|
3
3
|
|
4
4
|
[](http://badge.fury.io/rb/watson-api-client)
|
@@ -24,8 +24,14 @@ Documentation
|
|
24
24
|
The simple API documentation for the watson-api-client is available on [RubyDoc.info](http://rubydoc.info/gems/watson-api-client).
|
25
25
|
|
26
26
|
However, most of the classes and methods of this gem are not described in the above document because they are dynamically defined.
|
27
|
-
Instead, you can output to the standard output the actual those list of classes and methods when you run the lib/watson-api-client.rb directly
|
27
|
+
Instead, you can output to the standard output the actual those list of classes and methods when you run the lib/watson-api-client.rb directly, or
|
28
|
+
you can also use the following method to view a list of known APIs:
|
28
29
|
|
30
|
+
```
|
31
|
+
require 'watson-api-client'
|
32
|
+
|
33
|
+
puts WatsonAPIClient::AvailableAPIs
|
34
|
+
```
|
29
35
|
|
30
36
|
Source Code
|
31
37
|
-----------
|
@@ -102,7 +108,7 @@ Next, let's use 'Personality Insights'.
|
|
102
108
|
The class name, the method name, and the argument setting rules are the same as that of the case of 'Relationship Extraction' almost.
|
103
109
|
The rest-client and the watson-api-client judge which of path, query, header, body each argument is used for automatically.
|
104
110
|
|
105
|
-
|
111
|
+
Additional note at the release of the version 0.0.3
|
106
112
|
-------
|
107
113
|
The documents which 'watson-api-client' referred to have changed in [February 2016](https://github.com/suchowan/watson-api-client/issues/1).
|
108
114
|
|
data/lib/watson-api-client.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'json'
|
1
|
+
require 'json'
|
2
2
|
require 'openssl'
|
3
3
|
require 'open-uri'
|
4
4
|
require 'rest-client'
|
@@ -6,7 +6,7 @@ require 'pp' if __FILE__ == $PROGRAM_NAME
|
|
6
6
|
|
7
7
|
class WatsonAPIClient
|
8
8
|
|
9
|
-
VERSION = '0.0.
|
9
|
+
VERSION = '0.0.4'
|
10
10
|
|
11
11
|
class << self
|
12
12
|
|
@@ -17,17 +17,17 @@ class WatsonAPIClient
|
|
17
17
|
|
18
18
|
# Watson API Explorer
|
19
19
|
host1 = doc_urls[:doc_base1][/^https?:\/\/[^\/]+/]
|
20
|
-
open(doc_urls[:doc_base1], Options, &:read).scan(/<
|
20
|
+
open(doc_urls[:doc_base1], Options, &:read).scan(/<a class="swagger-list--item-link" href="\/(.+?)".*?>\s*(.+?)\s*<\/a>/i) do
|
21
21
|
api = {'path'=>doc_urls[:doc_base1] + $1, 'title'=>$2.sub(/\s*\(.+?\)$/,'')}
|
22
22
|
open(api['path'], Options, &:read).scan(/url:\s*'(.+?)'/) do
|
23
23
|
api['path'] = host1 + $1
|
24
24
|
end
|
25
25
|
apis[api['title']] = api
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
# Watson Developercloud
|
29
29
|
host2 = doc_urls[:doc_base2][/^https?:\/\/[^\/]+/]
|
30
|
-
open(doc_urls[:doc_base2], Options, &:read).scan(/<li>\s*<img
|
30
|
+
open(doc_urls[:doc_base2], Options, &:read).scan(/<li>\s*<img.+data-src=.+?>\s*<h2><a href="(.+?)".*?>\s*(.+?)\s*<\/a><\/h2>\s*<p>(.+?)<\/p>\s*<\/li>/) do
|
31
31
|
api = {'path'=>$1, 'title'=>$2, 'description'=>$3}
|
32
32
|
next if api['path'] =~ /\.\./
|
33
33
|
if apis.key?(api['title'])
|
@@ -59,7 +59,11 @@ class WatsonAPIClient
|
|
59
59
|
body = parameter['name']
|
60
60
|
break
|
61
61
|
end
|
62
|
-
|
62
|
+
if operation['operationId'].nil?
|
63
|
+
nickname = path
|
64
|
+
else
|
65
|
+
nickname = operation['operationId'].sub(/(.)/) {$1.downcase}
|
66
|
+
end
|
63
67
|
methods[nickname] = {'method'=>method, 'path'=>path, 'operation'=>operation, 'body'=>body}
|
64
68
|
digest[nickname] = {'method'=>method, 'path'=>path, 'summary'=>operation['summary']}
|
65
69
|
end
|
@@ -71,7 +75,7 @@ class WatsonAPIClient
|
|
71
75
|
api_docs = {
|
72
76
|
:gateway => 'https://gateway.watsonplatform.net',
|
73
77
|
:doc_base1 => 'https://watson-api-explorer.mybluemix.net/',
|
74
|
-
:doc_base2 => '
|
78
|
+
:doc_base2 => 'http://www.ibm.com/watson/developercloud/doc/',
|
75
79
|
:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE
|
76
80
|
}
|
77
81
|
JSON.parse(ENV['WATSON_API_DOCS'] || '{}').each_pair do |key, value|
|
@@ -85,8 +89,10 @@ class WatsonAPIClient
|
|
85
89
|
Gateway = api_docs.delete(:gateway)
|
86
90
|
Options = api_docs
|
87
91
|
Services = JSON.parse(ENV['VCAP_SERVICES'] || '{}')
|
92
|
+
AvailableAPIs = []
|
88
93
|
|
89
94
|
retrieve_doc(doc_urls).each_value do |list|
|
95
|
+
AvailableAPIs << list['title'].gsub(/\s+(.)/) {$1.upcase}
|
90
96
|
module_eval %Q{
|
91
97
|
class #{list['title'].gsub(/\s+(.)/) {$1.upcase}} < self
|
92
98
|
Service = superclass::Services['#{list['title'].sub(/\s+/,'_').downcase}']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watson-api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takashi SUGA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|