gxapi_rails 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +37 -3
- data/lib/generators/gxapi/install_generator.rb +51 -0
- data/lib/generators/gxapi/templates/gxapi.yml +18 -0
- data/lib/gxapi/engine.rb +1 -0
- data/lib/gxapi/version.rb +2 -2
- data/lib/tasks/gxapi.rake +10 -0
- data/spec/dummy/config/gxapi.yml +2 -1
- data/spec/dummy/log/development.log +34 -0
- data/spec/dummy/log/test.log +34 -0
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efba21c20db71461cbb594bc8badac87cf118af7
|
4
|
+
data.tar.gz: 49f2b785bb1c346f393a412037404775dea51b21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37c48aeb9aaf0e64656646711b378db8f7b36250e181337887f73e2c649fb58f5681c4d7463180301c8496b7722748744677b43fafef70c98556ea63eaee317f
|
7
|
+
data.tar.gz: 03b939ae5c7ff5d5747e43aa5d067c150c98d066700fcf3bcc6bc439898f987d3b96c6531339e3a87f6d23b182fe9eedc7d079b7e03d9aa4ba670269b6fabfb6
|
data/README.md
CHANGED
@@ -7,15 +7,22 @@ its API and determine which variant should be presented to a given user
|
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
% gem install gxapi_rails
|
10
|
-
% rails g
|
10
|
+
% rails g gxapi:install
|
11
11
|
|
12
12
|
## Configuration
|
13
13
|
|
14
14
|
First, you must create a Google Analytics Service Account.
|
15
15
|
Information can be found here https://developers.google.com/accounts/docs/OAuth2ServiceAccount
|
16
16
|
|
17
|
-
Gxapi uses `#{Rails.root}/config/gxapi.yml` to configure variables.
|
18
|
-
use different configurations per environment
|
17
|
+
Gxapi uses `#{Rails.root}/config/gxapi.yml` to configure variables.
|
18
|
+
You can use different configurations per environment
|
19
|
+
(development/test/production)
|
20
|
+
|
21
|
+
### Service Account Private Key
|
22
|
+
|
23
|
+
Gxapi looks for a Service Account Private Key in `config/google.p12`
|
24
|
+
by default. It is best to not include the key in source control and
|
25
|
+
to either drop it off where necessary with a script or symlink it.
|
19
26
|
|
20
27
|
### Example Configuration
|
21
28
|
development:
|
@@ -27,6 +34,14 @@ use different configurations per environment (development/test/production)
|
|
27
34
|
email: SERVICE_ACCOUNT_EMAIL
|
28
35
|
private_key_path: 'PATH_TO_SERVICE_ACCOUNT_PRIVATE_KEY'
|
29
36
|
|
37
|
+
These values can be specified in the installer if you have them ahead
|
38
|
+
of time
|
39
|
+
|
40
|
+
% rails g gxapi:install --account-id=ACCOUNT_ID \
|
41
|
+
--profile-id=PROFILE_ID --web-property-id=WEB_PROPERTY_ID \
|
42
|
+
--email=EMAIL
|
43
|
+
|
44
|
+
|
30
45
|
### Where the F do I find all this stuff?
|
31
46
|
|
32
47
|
<a href="https://developers.google.com/accounts/docs/OAuth2ServiceAccount"
|
@@ -40,6 +55,25 @@ Google Analytics settings
|
|
40
55
|
|
41
56
|
## Usage
|
42
57
|
|
58
|
+
### Loading Experiments
|
59
|
+
|
60
|
+
We load experiment data either
|
61
|
+
1. As needed if it's not in cache
|
62
|
+
2. On demand if it is in cache
|
63
|
+
|
64
|
+
Once the data for the experiment is loaded, its variant weights
|
65
|
+
(the percentage each variant is shown) will *not change* until the
|
66
|
+
data is reloaded explicitly. This is so we do not need to make an
|
67
|
+
API call to Google each time a page loads.
|
68
|
+
|
69
|
+
To refresh the experiment data, you can call a rake task either
|
70
|
+
manually or at some interval on a schedular (such as cron)
|
71
|
+
|
72
|
+
% bundle exec rake gxapi:reload_experiments
|
73
|
+
|
74
|
+
# /etc/cron.d/gxapi
|
75
|
+
0 * * * * USER bundle exec rake gxapi:reload_experiments
|
76
|
+
|
43
77
|
### Layout
|
44
78
|
|
45
79
|
First, add the experiment Javascript in your layout
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Gxapi
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
|
6
|
+
# Description
|
7
|
+
desc <<DESC
|
8
|
+
Description:
|
9
|
+
Set up config files for Gxapi
|
10
|
+
|
11
|
+
DESC
|
12
|
+
|
13
|
+
class_option :account_id,
|
14
|
+
type: :string,
|
15
|
+
default: nil,
|
16
|
+
desc: "Google Analytics Account ID"
|
17
|
+
|
18
|
+
class_option :profile_id,
|
19
|
+
type: :string,
|
20
|
+
default: nil,
|
21
|
+
desc: "Google Analytics Profile ID"
|
22
|
+
|
23
|
+
class_option :web_property_id,
|
24
|
+
type: :string,
|
25
|
+
default: nil,
|
26
|
+
desc: "Google Analytics Web Property ID"
|
27
|
+
|
28
|
+
class_option :email,
|
29
|
+
type: :string,
|
30
|
+
default: nil,
|
31
|
+
desc: "Google Analytics Service Account Email"
|
32
|
+
|
33
|
+
|
34
|
+
#
|
35
|
+
# Our root for template files
|
36
|
+
#
|
37
|
+
# @return [String]
|
38
|
+
def self.source_root
|
39
|
+
@source_root ||= File.join(File.dirname(__FILE__), 'templates')
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# Copy our config file over
|
44
|
+
#
|
45
|
+
# @return [type] [description]
|
46
|
+
def copy_config_file
|
47
|
+
template "gxapi.yml", "config/gxapi.yml"
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
defaults: &defaults
|
2
|
+
google_analytics:
|
3
|
+
account_id: <%= options[:account_id] || '1234567' %>
|
4
|
+
profile_id: <%= options[:profile_id] || '12345678' %>
|
5
|
+
web_property_id: <%= options[:web_property_id] || 'UA-XXXXXXX-1' %>
|
6
|
+
google:
|
7
|
+
email: <%= options[:email] || 'YOUREMAIL@developer.gserviceaccount.com' %>
|
8
|
+
private_key_path: '<%%= Rails.root.join("config", "google.p12").to_s %>'
|
9
|
+
|
10
|
+
|
11
|
+
development:
|
12
|
+
<<: *defaults
|
13
|
+
|
14
|
+
test:
|
15
|
+
<<: *defaults
|
16
|
+
|
17
|
+
production:
|
18
|
+
<<: *defaults
|
data/lib/gxapi/engine.rb
CHANGED
data/lib/gxapi/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Gxapi
|
2
|
-
VERSION = '0.0.
|
3
|
-
end
|
2
|
+
VERSION = '0.0.3'
|
3
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
namespace :gxapi do
|
2
|
+
|
3
|
+
desc "Reload the Google Analytics Experiment data"
|
4
|
+
task reload_experiments: :environment do
|
5
|
+
Rails.logger.info { "Reloading Gxapi Experiments" }
|
6
|
+
Gxapi.reload_experiments
|
7
|
+
Rails.logger.info { "Reloading Gxapi Experiments Complete!" }
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
data/spec/dummy/config/gxapi.yml
CHANGED
@@ -14,4 +14,5 @@ test:
|
|
14
14
|
web_property_id: UA-2633140-6
|
15
15
|
google:
|
16
16
|
email: 211964556496-8mbenq3f33ectl10v6sq9druaphhu7q6@developer.gserviceaccount.com
|
17
|
-
private_key_path: '<%= Rails.root.join("config", "test.p12").to_s %>'
|
17
|
+
private_key_path: '<%= Rails.root.join("config", "test.p12").to_s %>'
|
18
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
Connecting to database specified by database.yml
|
2
|
+
Connecting to database specified by database.yml
|
3
|
+
Connecting to database specified by database.yml
|
4
|
+
Connecting to database specified by database.yml
|
5
|
+
Connecting to database specified by database.yml
|
6
|
+
Connecting to database specified by database.yml
|
7
|
+
Connecting to database specified by database.yml
|
8
|
+
Connecting to database specified by database.yml
|
9
|
+
Connecting to database specified by database.yml
|
10
|
+
Connecting to database specified by database.yml
|
11
|
+
Connecting to database specified by database.yml
|
12
|
+
Connecting to database specified by database.yml
|
13
|
+
Connecting to database specified by database.yml
|
14
|
+
Connecting to database specified by database.yml
|
15
|
+
Connecting to database specified by database.yml
|
16
|
+
Connecting to database specified by database.yml
|
17
|
+
Google::APIClient - Initializing client with options {}
|
18
|
+
Google::APIClient - Please provide :application_name and :application_version when initializing the client
|
19
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/analytics/v3/rest {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5"}
|
20
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:39:41 GMT", "date"=>"Sun, 03 Nov 2013 16:34:41 GMT", "etag"=>"\"DGgqtFnjgu83tuwvvVNNUhOiHWk/IpWtXM-SYuOWKLGlpsQELRW73lI\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "age"=>"55", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
21
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/analytics/v3/management/accounts/2633140/webproperties/UA-2633140-6/profiles/73788770/experiments {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5", "Authorization"=>"Bearer ya29.AHES6ZQLcmyA0dMoq6cCFbV3Abx5LovZZzmTwXtFQGzkneME0A", "Cache-Control"=>"no-store"}
|
22
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:35:37 GMT", "date"=>"Sun, 03 Nov 2013 16:35:37 GMT", "cache-control"=>"private, max-age=0, must-revalidate, no-transform", "etag"=>"\"yw9_eWYH7O9SphOYdTrh7l9T458/AY1ok-SnzMKmiDcm5ZadMNt1hQU\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
23
|
+
Connecting to database specified by database.yml
|
24
|
+
Reloading Gxapi Experiments
|
25
|
+
Google::APIClient - Initializing client with options {}
|
26
|
+
Google::APIClient - Please provide :application_name and :application_version when initializing the client
|
27
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/analytics/v3/rest {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5"}
|
28
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:39:41 GMT", "date"=>"Sun, 03 Nov 2013 16:34:41 GMT", "etag"=>"\"DGgqtFnjgu83tuwvvVNNUhOiHWk/IpWtXM-SYuOWKLGlpsQELRW73lI\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "age"=>"88", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
29
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/analytics/v3/management/accounts/2633140/webproperties/UA-2633140-6/profiles/73788770/experiments {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5", "Authorization"=>"Bearer ya29.AHES6ZQ0fSa3-ELUJpVlwv2AvbFMXTcDD7sqlP4qB0XuZtDeJA", "Cache-Control"=>"no-store"}
|
30
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:36:09 GMT", "date"=>"Sun, 03 Nov 2013 16:36:09 GMT", "cache-control"=>"private, max-age=0, must-revalidate, no-transform", "etag"=>"\"yw9_eWYH7O9SphOYdTrh7l9T458/AY1ok-SnzMKmiDcm5ZadMNt1hQU\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
31
|
+
Reloading Gxapi Experiments Complete!
|
32
|
+
Connecting to database specified by database.yml
|
33
|
+
Connecting to database specified by database.yml
|
34
|
+
Connecting to database specified by database.yml
|
data/spec/dummy/log/test.log
CHANGED
@@ -1441,3 +1441,37 @@ Google::APIClient::Request Sending API request get https://www.googleapis.com/di
|
|
1441
1441
|
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 15:39:40 GMT", "date"=>"Sun, 03 Nov 2013 15:34:40 GMT", "etag"=>"\"DGgqtFnjgu83tuwvvVNNUhOiHWk/IpWtXM-SYuOWKLGlpsQELRW73lI\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "age"=>"83", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1442
1442
|
Google::APIClient::Request Sending API request get https://www.googleapis.com/analytics/v3/management/accounts/2633140/webproperties/UA-2633140-6/profiles/73788770/experiments {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5", "Authorization"=>"Bearer ya29.AHES6ZSOTXwQSqo14mraxOfUn1g-TPemACaNOi6qgZSHxZyj-Q", "Cache-Control"=>"no-store"}
|
1443
1443
|
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 15:36:04 GMT", "date"=>"Sun, 03 Nov 2013 15:36:04 GMT", "cache-control"=>"private, max-age=0, must-revalidate, no-transform", "etag"=>"\"yw9_eWYH7O9SphOYdTrh7l9T458/AY1ok-SnzMKmiDcm5ZadMNt1hQU\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1444
|
+
Connecting to database specified by database.yml
|
1445
|
+
Google::APIClient - Initializing client with options {}
|
1446
|
+
Google::APIClient - Please provide :application_name and :application_version when initializing the client
|
1447
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/analytics/v3/rest {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5"}
|
1448
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:39:41 GMT", "date"=>"Sun, 03 Nov 2013 16:34:41 GMT", "etag"=>"\"DGgqtFnjgu83tuwvvVNNUhOiHWk/IpWtXM-SYuOWKLGlpsQELRW73lI\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "age"=>"193", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1449
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/analytics/v3/management/accounts/2633140/webproperties/UA-2633140-6/profiles/73788770/experiments {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5", "Authorization"=>"Bearer ya29.AHES6ZScUP4B1mmUE4mzC0NzvqlX4TICc3iPAAmtX8SvF6121A", "Cache-Control"=>"no-store"}
|
1450
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:37:54 GMT", "date"=>"Sun, 03 Nov 2013 16:37:54 GMT", "cache-control"=>"private, max-age=0, must-revalidate, no-transform", "etag"=>"\"yw9_eWYH7O9SphOYdTrh7l9T458/AY1ok-SnzMKmiDcm5ZadMNt1hQU\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1451
|
+
Started GET "/posts" for 127.0.0.1 at 2013-11-03 11:37:59 -0500
|
1452
|
+
Processing by PostsController#index as HTML
|
1453
|
+
Rendered posts/index.html.erb within layouts/application (2.4ms)
|
1454
|
+
Completed 200 OK in 60ms (Views: 59.9ms | ActiveRecord: 0.0ms)
|
1455
|
+
Started GET "/posts?variant=fake_var" for 127.0.0.1 at 2013-11-03 11:37:59 -0500
|
1456
|
+
Processing by PostsController#index as HTML
|
1457
|
+
Parameters: {"variant"=>"fake_var"}
|
1458
|
+
Rendered posts/index.html.erb within layouts/application (0.3ms)
|
1459
|
+
Completed 200 OK in 1ms (Views: 1.2ms | ActiveRecord: 0.0ms)
|
1460
|
+
Google::APIClient - Initializing client with options {}
|
1461
|
+
Google::APIClient - Please provide :application_name and :application_version when initializing the client
|
1462
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/analytics/v3/rest {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5"}
|
1463
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:39:41 GMT", "date"=>"Sun, 03 Nov 2013 16:34:41 GMT", "etag"=>"\"DGgqtFnjgu83tuwvvVNNUhOiHWk/IpWtXM-SYuOWKLGlpsQELRW73lI\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "age"=>"194", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1464
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/analytics/v3/management/accounts/2633140/webproperties/UA-2633140-6/profiles/73788770/experiments {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5", "Authorization"=>"Bearer ya29.AHES6ZTDMXomaIKacIpr46MBoxTgqrQfnNKioBw3J2xMUqXVpg", "Cache-Control"=>"no-store"}
|
1465
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:37:55 GMT", "date"=>"Sun, 03 Nov 2013 16:37:55 GMT", "cache-control"=>"private, max-age=0, must-revalidate, no-transform", "etag"=>"\"yw9_eWYH7O9SphOYdTrh7l9T458/AY1ok-SnzMKmiDcm5ZadMNt1hQU\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1466
|
+
Google::APIClient - Initializing client with options {}
|
1467
|
+
Google::APIClient - Please provide :application_name and :application_version when initializing the client
|
1468
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/analytics/v3/rest {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5"}
|
1469
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:39:41 GMT", "date"=>"Sun, 03 Nov 2013 16:34:41 GMT", "etag"=>"\"DGgqtFnjgu83tuwvvVNNUhOiHWk/IpWtXM-SYuOWKLGlpsQELRW73lI\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "age"=>"194", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1470
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/analytics/v3/management/accounts/2633140/webproperties/UA-2633140-6/profiles/73788770/experiments {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5", "Authorization"=>"Bearer ya29.AHES6ZTDMXomaIKacIpr46MBoxTgqrQfnNKioBw3J2xMUqXVpg", "Cache-Control"=>"no-store"}
|
1471
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:37:56 GMT", "date"=>"Sun, 03 Nov 2013 16:37:56 GMT", "cache-control"=>"private, max-age=0, must-revalidate, no-transform", "etag"=>"\"yw9_eWYH7O9SphOYdTrh7l9T458/AY1ok-SnzMKmiDcm5ZadMNt1hQU\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1472
|
+
Google::APIClient - Initializing client with options {}
|
1473
|
+
Google::APIClient - Please provide :application_name and :application_version when initializing the client
|
1474
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/analytics/v3/rest {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5"}
|
1475
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:39:41 GMT", "date"=>"Sun, 03 Nov 2013 16:34:41 GMT", "etag"=>"\"DGgqtFnjgu83tuwvvVNNUhOiHWk/IpWtXM-SYuOWKLGlpsQELRW73lI\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "age"=>"195", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
1476
|
+
Google::APIClient::Request Sending API request get https://www.googleapis.com/analytics/v3/management/accounts/2633140/webproperties/UA-2633140-6/profiles/73788770/experiments {"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS X/10.8.5", "Authorization"=>"Bearer ya29.AHES6ZTxINQf2S34DJCAzkRWl6LOFajNFu-GlDtvcotEopxfew", "Cache-Control"=>"no-store"}
|
1477
|
+
Google::APIClient::Request Result: 200 {"expires"=>"Sun, 03 Nov 2013 16:37:57 GMT", "date"=>"Sun, 03 Nov 2013 16:37:57 GMT", "cache-control"=>"private, max-age=0, must-revalidate, no-transform", "etag"=>"\"yw9_eWYH7O9SphOYdTrh7l9T458/AY1ok-SnzMKmiDcm5ZadMNt1hQU\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gxapi_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Langevin
|
@@ -87,6 +87,8 @@ extensions: []
|
|
87
87
|
extra_rdoc_files: []
|
88
88
|
files:
|
89
89
|
- app/helpers/gxapi_helper.rb
|
90
|
+
- lib/generators/gxapi/install_generator.rb
|
91
|
+
- lib/generators/gxapi/templates/gxapi.yml
|
90
92
|
- lib/gxapi/base.rb
|
91
93
|
- lib/gxapi/controller_methods.rb
|
92
94
|
- lib/gxapi/engine.rb
|
@@ -94,6 +96,7 @@ files:
|
|
94
96
|
- lib/gxapi/ostruct.rb
|
95
97
|
- lib/gxapi/version.rb
|
96
98
|
- lib/gxapi.rb
|
99
|
+
- lib/tasks/gxapi.rake
|
97
100
|
- LICENSE.txt
|
98
101
|
- Rakefile
|
99
102
|
- README.md
|
@@ -138,6 +141,7 @@ files:
|
|
138
141
|
- spec/dummy/data/log/dummy/test.log
|
139
142
|
- spec/dummy/db/development.sqlite3
|
140
143
|
- spec/dummy/db/test.sqlite3
|
144
|
+
- spec/dummy/log/development.log
|
141
145
|
- spec/dummy/log/test.log
|
142
146
|
- spec/dummy/public/404.html
|
143
147
|
- spec/dummy/public/422.html
|
@@ -217,6 +221,7 @@ test_files:
|
|
217
221
|
- spec/dummy/data/log/dummy/test.log
|
218
222
|
- spec/dummy/db/development.sqlite3
|
219
223
|
- spec/dummy/db/test.sqlite3
|
224
|
+
- spec/dummy/log/development.log
|
220
225
|
- spec/dummy/log/test.log
|
221
226
|
- spec/dummy/public/404.html
|
222
227
|
- spec/dummy/public/422.html
|