gxapi_rails 0.0.2 → 0.0.3
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 +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
|