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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1fc14fc4272595a73becebfd7d22821d6c0f90af
4
- data.tar.gz: cb8ec33f3f319d597e91666bf3a14301374d07d3
3
+ metadata.gz: efba21c20db71461cbb594bc8badac87cf118af7
4
+ data.tar.gz: 49f2b785bb1c346f393a412037404775dea51b21
5
5
  SHA512:
6
- metadata.gz: 1d787804b60b6a832378ba4ad5cfeccdda4126a49cac129c26986abb98a6fcad44fe46d2c98ae22a47be8e9f6c118cb4e5bf26625df99a50fad9612ec35e34a1
7
- data.tar.gz: 061edc4dadaf492b59137b5660df80aaa828a75db68c4f633a7a8c74a72c1168f4847b5355718842b352ea556081fc9fb5b0d93165b14c738f368988ae32e929
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 gxapi_rails
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. You can
18
- use different configurations per environment (development/test/production)
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
@@ -1,6 +1,7 @@
1
1
  if Rails::VERSION::MAJOR >= 3
2
2
  module Gxapi
3
3
  class Engine < Rails::Engine
4
+
4
5
  config.after_initialize do
5
6
  Gxapi.cache = Rails.cache
6
7
  # add our helper
@@ -1,3 +1,3 @@
1
1
  module Gxapi
2
- VERSION = '0.0.2'
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
@@ -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
@@ -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.2
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