openamplify 0.2.1 → 0.2.2
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.
- data/README.rdoc +3 -0
- data/VERSION.yml +1 -1
- data/lib/openamplify.rb +36 -29
- data/lib/openamplify/validations.rb +14 -21
- data/openamplify.gemspec +2 -2
- data/test/test_openamplify.rb +8 -1
- metadata +4 -4
data/README.rdoc
CHANGED
data/VERSION.yml
CHANGED
data/lib/openamplify.rb
CHANGED
@@ -12,9 +12,8 @@ module OpenAmplify
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def analyze_text(text)
|
15
|
-
|
16
|
-
Response.new(
|
17
|
-
:method => @options[:method])
|
15
|
+
OpenAmplify.validate_client!(self)
|
16
|
+
Response.new(self, :query => query.merge(:inputText => text), :method => @options[:method])
|
18
17
|
end
|
19
18
|
|
20
19
|
%w(api_key analysis api_url method).each do |attr|
|
@@ -28,27 +27,54 @@ module OpenAmplify
|
|
28
27
|
end
|
29
28
|
EOS
|
30
29
|
end
|
30
|
+
|
31
|
+
def fetch(params, method)
|
32
|
+
raise OpenAmplify::NotSupported unless [:get, :post].include?(method.to_sym)
|
33
|
+
Client::send(method, self.api_url, params)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.compose_url(path, params)
|
37
|
+
path + '?' + URI.escape(params.collect{ |k,v| "#{k}=#{v}" }.join('&'))
|
38
|
+
end
|
39
|
+
|
31
40
|
|
32
41
|
private
|
33
42
|
|
43
|
+
|
34
44
|
def query
|
35
45
|
q = { :apiKey => @options[:api_key] }
|
36
46
|
q.merge!(:analysis => @options[:analysis]) if @options[:analysis]
|
37
47
|
q
|
38
48
|
end
|
39
49
|
|
50
|
+
def self.get(path, params)
|
51
|
+
uri = URI.parse(compose_url(path, params))
|
52
|
+
response = Net::HTTP.get_response(uri)
|
53
|
+
OpenAmplify.validate_response!(response)
|
54
|
+
response.body
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.post(path, params)
|
58
|
+
uri = URI::parse(path)
|
59
|
+
response = Net::HTTP.post_form(uri, params)
|
60
|
+
OpenAmplify.validate_response!(response)
|
61
|
+
response.body
|
62
|
+
end
|
63
|
+
|
40
64
|
end # OpenAmplify::Client
|
41
65
|
|
66
|
+
|
42
67
|
# Contains the response from OpenAmplify
|
43
68
|
class Response
|
44
69
|
include Enumerable
|
45
70
|
|
46
|
-
def initialize(options)
|
71
|
+
def initialize(client, options)
|
72
|
+
@client = client
|
47
73
|
@options = options
|
48
74
|
end
|
49
75
|
|
50
76
|
def request_url
|
51
|
-
@request_url ||= compose_url(@
|
77
|
+
@request_url ||= Client.compose_url(@client.api_url, @options[:query])
|
52
78
|
end
|
53
79
|
|
54
80
|
def reload
|
@@ -100,12 +126,12 @@ module OpenAmplify
|
|
100
126
|
response && response['Topics']['Domains']
|
101
127
|
end
|
102
128
|
|
103
|
-
|
104
|
-
|
105
|
-
def compose_url(path, params)
|
106
|
-
path + '?' + URI.escape(params.collect{ |k, v| "#{k}=#{v}" }.join('&'))
|
129
|
+
def styles
|
130
|
+
response && response['Styles']
|
107
131
|
end
|
108
132
|
|
133
|
+
private
|
134
|
+
|
109
135
|
def response
|
110
136
|
@response ||= fetch_response
|
111
137
|
end
|
@@ -123,26 +149,7 @@ module OpenAmplify
|
|
123
149
|
end
|
124
150
|
|
125
151
|
def fetch_as_format(format)
|
126
|
-
fetch(@options[:
|
127
|
-
end
|
128
|
-
|
129
|
-
def fetch(path, params, method)
|
130
|
-
raise OpenAmplify::NotSupported unless [:get, :post].include?(method.to_sym)
|
131
|
-
self.send(method, path, params)
|
132
|
-
end
|
133
|
-
|
134
|
-
def get(path, params)
|
135
|
-
uri = URI.parse(compose_url(path, params))
|
136
|
-
response = Net::HTTP.get_response(uri)
|
137
|
-
self.class.validate(response)
|
138
|
-
response.body
|
139
|
-
end
|
140
|
-
|
141
|
-
def post(path, params)
|
142
|
-
uri = URI::parse(path)
|
143
|
-
response = Net::HTTP.post_form(uri, params)
|
144
|
-
self.class.validate(response)
|
145
|
-
response.body
|
152
|
+
@client.fetch(@options[:query].merge(:outputFormat => format), @options[:method])
|
146
153
|
end
|
147
154
|
|
148
155
|
end # OpenAmplify::Response
|
@@ -1,34 +1,27 @@
|
|
1
1
|
module OpenAmplify
|
2
2
|
|
3
|
-
class Client
|
4
|
-
|
5
|
-
private
|
6
|
-
|
7
|
-
def validate
|
8
|
-
raise ArgumentError, "missing api key" if self.api_key.blank?
|
9
|
-
raise ArgumentError, "missing api url" if self.api_url.blank?
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
3
|
class NotAcceptable < StandardError; end
|
15
4
|
class NotSupported < StandardError; end
|
16
5
|
class Forbidden < StandardError; end
|
17
6
|
|
18
7
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
8
|
+
def self.validate_client!(client)
|
9
|
+
raise ArgumentError, "missing api key" if client.api_key.blank?
|
10
|
+
raise ArgumentError, "missing api url" if client.api_url.blank?
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.validate_response!(response)
|
14
|
+
case response.code.to_i
|
15
|
+
when 403
|
16
|
+
raise Forbidden, "(#{response.code}: #{response.message}) #{response.body}"
|
17
|
+
when 405
|
18
|
+
raise NotSupported, "(#{response.code}: #{response.message}) #{response.body}"
|
19
|
+
when 406
|
20
|
+
raise NotAcceptable, "(#{response.code}: #{response.message}) #{response.body}"
|
29
21
|
end
|
30
22
|
end
|
31
23
|
|
24
|
+
|
32
25
|
end
|
33
26
|
|
34
27
|
class String
|
data/openamplify.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{openamplify}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Greg Moreno"]
|
12
|
-
s.date = %q{2010-06-
|
12
|
+
s.date = %q{2010-06-14}
|
13
13
|
s.description = %q{The OpenAmplify API reads text you supply and returns linguistic data explaining and classifying the content.}
|
14
14
|
s.email = %q{rubyoncloud@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/test/test_openamplify.rb
CHANGED
@@ -62,9 +62,12 @@ class OpenAmplifyTest < Test::Unit::TestCase
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
+
#pending "show the request url"
|
66
|
+
|
65
67
|
end # Response
|
66
68
|
|
67
69
|
context "Request methods" do
|
70
|
+
|
68
71
|
|
69
72
|
should "raise an error if not supported" do
|
70
73
|
assert_raises OpenAmplify::NotSupported do
|
@@ -85,7 +88,11 @@ class OpenAmplifyTest < Test::Unit::TestCase
|
|
85
88
|
end # Request methods
|
86
89
|
|
87
90
|
def client
|
88
|
-
@client ||= OpenAmplify::Client.new(:api_key =>
|
91
|
+
@client ||= OpenAmplify::Client.new(:api_key => api_key)
|
92
|
+
end
|
93
|
+
|
94
|
+
def api_key
|
95
|
+
ENV['OPEN_AMPLIFY_KEY']
|
89
96
|
end
|
90
97
|
|
91
98
|
end # OpenAmplifyTest
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openamplify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Greg Moreno
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-06-
|
18
|
+
date: 2010-06-14 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|