al_papi 0.0.14 → 0.0.15

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.md CHANGED
@@ -7,111 +7,111 @@ A wrapper around the Partner API calls. Allows post, priority post and get calls
7
7
 
8
8
  ## Install
9
9
 
10
- gem install 'al_papi'
10
+ gem install 'al_papi'
11
11
 
12
12
  ## Usage
13
-
13
+
14
14
  Make a request object using your api key:
15
15
 
16
- require 'al_papi'
16
+ require 'al_papi'
17
17
 
18
- req = AlPapi::Request.new(api_key: 'yR43BtBDjadfavMy6a6aK0')
18
+ req = AlPapi::Request.new(api_key: 'yR43BtBDjadfavMy6a6aK0')
19
19
 
20
20
  ### POST
21
-
21
+
22
22
  Post your keyword-engine-locale combination to the API:
23
23
 
24
- res = req.post keyword: "Centaur Love'n", engine: 'google', locale: 'en-us'
25
-
26
- if res.success?
27
- p 'Centaur High Hoof'
28
- else
29
- p 'PAPI Fail'
30
- end
24
+ res = req.post keyword: "Centaur Love'n", engine: 'google', locale: 'en-us'
25
+
26
+ if res.success?
27
+ p 'Centaur High Hoof'
28
+ else
29
+ p 'PAPI Fail'
30
+ end
31
31
 
32
32
  ### Priority POST
33
-
33
+
34
34
  Post your keyword to the priority queue if you need results in a more timely manner:
35
35
 
36
- res = req.priority_post keyword: "Mad Scientist", engine: 'bing', locale: 'en-ca'
37
-
38
- if res.success?
39
- p 'Canadian Bing Scientist Time'
40
- else
41
- p 'PAPI Fail'
42
- end
36
+ res = req.priority_post keyword: "Mad Scientist", engine: 'bing', locale: 'en-ca'
37
+
38
+ if res.success?
39
+ p 'Canadian Bing Scientist Time'
40
+ else
41
+ p 'PAPI Fail'
42
+ end
43
43
 
44
44
  ### GET
45
45
 
46
46
  When you are ready to get your results you can do a GET request for your keyword-engine-locale combo:
47
-
48
- res = req.get keyword: "Mad Scientist", engine: 'bing', locale: 'en-ca'
49
-
50
- if res.success?
51
- p 'Canadian Bing Scientist Time'
52
- res.body # Hash of your results for that keyword-engine-locale
53
- else
54
- p 'PAPI Fail'
55
- end
47
+
48
+ res = req.get keyword: "Mad Scientist", engine: 'bing', locale: 'en-ca'
49
+
50
+ if res.success?
51
+ p 'Canadian Bing Scientist Time'
52
+ res.body # Hash of your results for that keyword-engine-locale
53
+ else
54
+ p 'PAPI Fail'
55
+ end
56
56
 
57
57
  ### Response
58
58
 
59
59
  When making an API request a response object is returned with any errors, http response code and http reponse body.
60
60
 
61
- res = req.get keyword: "Mad Scientist", engine: 'bing', locale: 'en-ca'
62
-
63
- # Errors:
64
- # Returns an array of error objects.
65
- res.errors
66
-
67
- if res.errors.present?
68
- res.errors.each do |error|
69
- p error.code # http repsonse code
70
- p error.message # error message
71
- p error.params # params of request
72
- p error.path # path of request
73
- end
74
- end
75
-
76
- # Success:
77
- # Returns true or false if request was successful or not.
78
- res.success?
79
-
80
- # Body:
81
- # Returns body of response.
82
- # On GET requests the body will be a hash of your results if successful.
83
- res.body
84
-
85
- # Code:
86
- # Returns http response code.
87
- # 204: On GET requests when no data is available yet
88
- # 200: Successful
89
- # 401: Invalid api key
90
- # 500: Server Error
91
- res.code
92
-
93
- # Over Limit:
94
- # Returns true or false if over hourly limit
95
- res.over_limit?
96
-
97
- # Suspended:
98
- # Returns true or false if your account has been suspended
99
- res.over_limit?
100
-
61
+ res = req.get keyword: "Mad Scientist", engine: 'bing', locale: 'en-ca'
62
+
63
+ # Errors:
64
+ # Returns an array of error objects.
65
+ res.errors
66
+
67
+ if res.errors.present?
68
+ res.errors.each do |error|
69
+ p error.code # http repsonse code
70
+ p error.message # error message
71
+ p error.params # params of request
72
+ p error.path # path of request
73
+ end
74
+ end
75
+
76
+ # Success:
77
+ # Returns true or false if request was successful or not.
78
+ res.success?
79
+
80
+ # Body:
81
+ # Returns body of response.
82
+ # On GET requests the body will be a hash of your results if successful.
83
+ res.body
84
+
85
+ # Code:
86
+ # Returns http response code.
87
+ # 204: On GET requests when no data is available yet
88
+ # 200: Successful
89
+ # 401: Invalid api key
90
+ # 500: Server Error
91
+ res.code
92
+
93
+ # Over Limit:
94
+ # Returns true or false if over hourly limit
95
+ res.over_limit?
96
+
97
+ # Suspended:
98
+ # Returns true or false if your account has been suspended
99
+ res.suspended?
100
+
101
101
  ### Engines
102
102
 
103
103
  Supported engines are Google, Yahoo and Bing. To get a list of supported engines run the following:
104
104
 
105
- AlPapi::Engines.all
106
-
105
+ AlPapi::Engines.all
106
+
107
107
  ### Locales
108
108
 
109
109
  Supported locales differ by the engine being used. In order to make sure you are using a supported locale
110
110
  for the engine you are posting a keyword to there is a locales class to help you:
111
111
 
112
- AlPapi::Locales.supported # returns an array of locales for the default engine Google
113
- AlPapi::Locales.supported 'bing' # for other engines pass in the engine name
114
- AlPapi::Locales.supported 'yahoo'
112
+ AlPapi::Locales.supported # returns an array of locales for the default engine Google
113
+ AlPapi::Locales.supported 'bing' # for other engines pass in the engine name
114
+ AlPapi::Locales.supported 'yahoo'
115
115
 
116
116
  ## License
117
117
 
@@ -0,0 +1,65 @@
1
+ module AlPapi
2
+
3
+ class WebInsight
4
+
5
+ attr_reader :config
6
+
7
+ ##
8
+ #
9
+ # [config] * Hash { auth_key: 'your_auth_token' }
10
+ # * OR AlPapi::Config
11
+
12
+ def initialize(config)
13
+ @config = config.is_a?(AlPapi::Config) ? config : Config.new(config)
14
+ @success, @errors = false, []
15
+ end
16
+
17
+ def http # @private
18
+ Http.new(@config)
19
+ end
20
+
21
+ ##
22
+ # == Params
23
+ #
24
+ # URL for the page you want insight into and the callback url you have implemented to know
25
+ # when results are ready to get.
26
+ #
27
+ # [url] <b>Required</b> -
28
+ # The web page you want to gain insight on.
29
+ # [callback] <em>Required</em> -
30
+ # Default is set on your account through the website.
31
+ # Set specific callbacks here for each request. Callback a url that
32
+ # is sent a POST when results are returned.
33
+
34
+ def post(params = {}, priority = false)
35
+ check_params Hashie::Mash.new(params), *%w[url callback]
36
+ http.post '/web/insight', params
37
+ end
38
+
39
+ ##
40
+ # == Params
41
+ #
42
+ # Parameters should be the same url as what was posted to the Partner API and the
43
+ # date_created and time_created values passed back to you via the callback posted.
44
+ #
45
+ # [url] <b>Required</b> -
46
+ # The URL originally posted to Partner API
47
+ # [date_created] <em>Required</em> -
48
+ # The date_created that was returned in the callback.
49
+ # [time_created] <em>Required</em> -
50
+ # The time_created that was returned in the callback.
51
+
52
+ def get(params = {})
53
+ check_params Hashie::Mash.new(params), *%w[date_created time_created]
54
+ http.get '/web/insight', params
55
+ end
56
+
57
+ def check_params(params, *param)
58
+ param.each do |p|
59
+ raise "#{p} parameter is required." if params[p].nil? || params[p.to_s].empty?
60
+ end
61
+ end
62
+
63
+ end
64
+
65
+ end
data/lib/al_papi.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'json'
2
2
  require 'rest-client'
3
3
  require 'net/http'
4
+ require 'hashie'
4
5
 
5
6
  module AlPapi
6
7
 
@@ -13,3 +14,4 @@ require File.dirname(__FILE__) + '/al_papi/request_error'
13
14
  require File.dirname(__FILE__) + '/al_papi/response'
14
15
  require File.dirname(__FILE__) + '/al_papi/locales'
15
16
  require File.dirname(__FILE__) + '/al_papi/engines'
17
+ require File.dirname(__FILE__) + '/al_papi/web_insight'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: al_papi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &70208320860320 !ruby/object:Gem::Requirement
16
+ requirement: &70322796432540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.6.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70208320860320
24
+ version_requirements: *70322796432540
25
25
  - !ruby/object:Gem::Dependency
26
- name: rspec
27
- requirement: &70208320859520 !ruby/object:Gem::Requirement
26
+ name: hashie
27
+ requirement: &70322796431940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,18 @@ dependencies:
32
32
  version: '2.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70208320859520
35
+ version_requirements: *70322796431940
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &70322796431440 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '2.0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70322796431440
36
47
  description: Wraps AuthorityLabs Partner API calls in a gem.
37
48
  email: ''
38
49
  executables: []
@@ -48,6 +59,7 @@ files:
48
59
  - lib/al_papi/request_error.rb
49
60
  - lib/al_papi/request.rb
50
61
  - lib/al_papi/response.rb
62
+ - lib/al_papi/web_insight.rb
51
63
  - README.md
52
64
  homepage: http://github.com/mtchavez/al_papi
53
65
  licenses: []
@@ -70,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
70
82
  version: '0'
71
83
  requirements: []
72
84
  rubyforge_project:
73
- rubygems_version: 1.8.10
85
+ rubygems_version: 1.8.17
74
86
  signing_key:
75
87
  specification_version: 3
76
88
  summary: AuthorityLabs Partner API Wrapper