google-prediction 0.1.0 → 0.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.
Files changed (2) hide show
  1. data/lib/google-prediction.rb +32 -33
  2. metadata +37 -12
@@ -7,38 +7,37 @@
7
7
  $:.unshift(File.dirname(__FILE__)) unless
8
8
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
9
9
 
10
- require 'rubygems'
11
10
  require 'curb'
12
11
  require 'json'
13
12
 
14
13
  module GooglePrediction
15
- VERSION = '0.1.0'
14
+ VERSION = '0.1.1'
16
15
 
17
16
  # = Usage
18
17
  #
19
- # auth_token = GooglePrediction.client_login('foo@gmail.com', 'password')
18
+ # auth_token = GooglePrediction.get_auth_token('foo@gmail.com', 'password')
20
19
  # => long string of letters and numbers
21
20
  #
22
21
  # predictor = GooglePrediction.new(auth_token, 'bucket', 'object')
23
22
  #
24
- # predictor.#invoke_training
23
+ # predictor.#train
25
24
  # => {"data"=>{"data"=>"bucket/object"}}
26
25
  #
27
- # predictor.#get_training_status
26
+ # predictor.#check_training
28
27
  # => "Training has not completed"
29
28
  #
30
29
  # wait_some_time
31
30
  #
32
- # predictor.#get_training_status
31
+ # predictor.#check_training
33
32
  # => "no estimate available" or something between "0.0" and "1.0"
34
33
  #
35
- # predictor.#get_prediction "awesome company"
34
+ # predictor.#predict "awesome company"
36
35
  # => "Google"
37
- # predictor.#get_prediction "awesome nonprofit"
36
+ # predictor.#predict "awesome nonprofit"
38
37
  # => "InSTEDD"
39
- # predictor.#get_prediction 13
38
+ # predictor.#predict 13
40
39
  # => "lucky"
41
- # predictor.#get_prediction [3, 5, 7, 11]
40
+ # predictor.#predict [3, 5, 7, 11]
42
41
  # => "prime"
43
42
  class GooglePrediction
44
43
  PREDICTION_URL_PREFIX = 'https://www.googleapis.com/prediction/v1/training'
@@ -54,7 +53,7 @@ module GooglePrediction
54
53
  # instructions at
55
54
  # http://code.google.com/apis/predict/docs/getting-started.html
56
55
  # and pass in the new URL and new arguments using the optional parameters.
57
- def self.client_login(email, password, url='https://www.google.com/accounts/ClientLogin', args={})
56
+ def self.get_auth_token(email, password, url='https://www.google.com/accounts/ClientLogin', args={})
58
57
  curl = Curl::Easy.new(url)
59
58
  post_args = {
60
59
  "accountType" => "HOSTED_OR_GOOGLE",
@@ -69,7 +68,7 @@ module GooglePrediction
69
68
  curl.body_str.match('Auth.*')[0][5..-1]
70
69
  end
71
70
 
72
- # auth_code: the login code generated from self.client_login
71
+ # auth_code: the login code generated from self.get_auth_token
73
72
  #
74
73
  # bucket: the name of the bucket in Google Storage
75
74
  #
@@ -80,24 +79,6 @@ module GooglePrediction
80
79
  @object=object
81
80
  end
82
81
 
83
- # Wrapper. Creates a new object and runs invoke_training on it.
84
- def self.invoke_training(auth_code, bucket, object)
85
- predictor = GooglePrediction.new(auth_code, bucket, object)
86
- predictor.invoke_training
87
- end
88
-
89
- # Wrapper. Creates a new object and runs get_training_status on it.
90
- def self.get_training_status(auth_code, bucket, object)
91
- predictor = GooglePrediction.new(auth_code, bucket, object)
92
- predictor.get_training_status
93
- end
94
-
95
- # Wrapper. Creates a new object and runs get_prediction on it.
96
- def self.get_prediction(auth_code, bucket, object, submission)
97
- predictor = GooglePrediction.new(auth_code, bucket, object)
98
- predictor.get_prediction(submission)
99
- end
100
-
101
82
  # Starts training on the specified object.
102
83
  #
103
84
  # Returns
@@ -105,7 +86,7 @@ module GooglePrediction
105
86
  # on success, and
106
87
  # {"errors"=>{"errors"=>[{all of your errors}], "code"=>code, "message"=>message}}
107
88
  # on error.
108
- def invoke_training
89
+ def train
109
90
  url = PREDICTION_URL_PREFIX + "?data=" + @bucket + "%2F" + @object
110
91
  curl = Curl::Easy.new(url)
111
92
  curl.post_body = JSON.generate({:data => {}})
@@ -126,7 +107,7 @@ module GooglePrediction
126
107
  # Returns
127
108
  # {"errors"=>{"errors"=>[{all of your errors}], "code"=>code, "message"=>message}}
128
109
  # on error.
129
- def get_training_status
110
+ def check_training
130
111
  url = PREDICTION_URL_PREFIX + "/" + @bucket + "%2F" + @object
131
112
  curl = Curl::Easy.new(url)
132
113
  curl.headers = {"Authorization" => "GoogleLogin auth=#{@auth_code}"}
@@ -148,7 +129,7 @@ module GooglePrediction
148
129
  # Returns the prediction on success and
149
130
  # {"errors"=>{"errors"=>[{all of your errors}], "code"=>code, "message"=>message}}
150
131
  # on error.
151
- def get_prediction(submission)
132
+ def predict(submission)
152
133
  url = PREDICTION_URL_PREFIX + "/" + @bucket + "%2F" + @object + "/predict"
153
134
  curl = Curl::Easy.new(url)
154
135
  post_body = {:data => {:input => {}}}
@@ -174,6 +155,24 @@ module GooglePrediction
174
155
  return response
175
156
  end
176
157
 
158
+ # Wrapper. Creates a new object and runs #train on it.
159
+ def self.train(auth_code, bucket, object)
160
+ predictor = GooglePrediction.new(auth_code, bucket, object)
161
+ predictor.train
162
+ end
163
+
164
+ # Wrapper. Creates a new object and runs #check_training on it.
165
+ def self.check_training(auth_code, bucket, object)
166
+ predictor = GooglePrediction.new(auth_code, bucket, object)
167
+ predictor.check_training
168
+ end
169
+
170
+ # Wrapper. Creates a new object and runs #predict on it.
171
+ def self.predict(auth_code, bucket, object, submission)
172
+ predictor = GooglePrediction.new(auth_code, bucket, object)
173
+ predictor.predict(submission)
174
+ end
175
+
177
176
  end
178
177
 
179
178
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-prediction
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ hash: 25
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
5
11
  platform: ruby
6
12
  authors:
7
13
  - Sam King
@@ -14,24 +20,37 @@ default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: curb
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 105
30
+ segments:
31
+ - 0
32
+ - 7
33
+ - 7
34
+ - 1
23
35
  version: 0.7.7.1
24
- version:
36
+ type: :runtime
37
+ version_requirements: *id001
25
38
  - !ruby/object:Gem::Dependency
26
39
  name: json
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
30
43
  requirements:
31
44
  - - ">="
32
45
  - !ruby/object:Gem::Version
46
+ hash: 1
47
+ segments:
48
+ - 1
49
+ - 4
50
+ - 3
33
51
  version: 1.4.3
34
- version:
52
+ type: :runtime
53
+ version_requirements: *id002
35
54
  description: |-
36
55
  Generates an auth token from a google account
37
56
  Trains using the auth token and data uploaded to Google Storage for Developers
@@ -56,21 +75,27 @@ rdoc_options: []
56
75
  require_paths:
57
76
  - lib
58
77
  required_ruby_version: !ruby/object:Gem::Requirement
78
+ none: false
59
79
  requirements:
60
80
  - - ">="
61
81
  - !ruby/object:Gem::Version
82
+ hash: 3
83
+ segments:
84
+ - 0
62
85
  version: "0"
63
- version:
64
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
+ none: false
65
88
  requirements:
66
89
  - - ">="
67
90
  - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
68
94
  version: "0"
69
- version:
70
95
  requirements: []
71
96
 
72
97
  rubyforge_project:
73
- rubygems_version: 1.3.5
98
+ rubygems_version: 1.3.7
74
99
  signing_key:
75
100
  specification_version: 3
76
101
  summary: Google Prediction API interface for Ruby.