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 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