shopify_app 7.0.11 → 7.1.0

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: 01fd54b8c417c343000ff7831af46518aae171ea
4
- data.tar.gz: e090401fe863bdef0f70cb41fd2c184332565439
3
+ metadata.gz: 95666ea2f773fc1abdccd1dd9fbe7b9a2d52763e
4
+ data.tar.gz: 997acff43235b5ab32e218f78754f0600c1ab88e
5
5
  SHA512:
6
- metadata.gz: a857bf574d74edcf5820f253404ce863c3ca4b50d92026780e32060aedfe7b658865c86a92df0062f63f0894e21dd82f7d10a8f99987ad66ba06b1f5d62b4106
7
- data.tar.gz: bdf917823af652bc3b6f340fd0c3a26c01320e12ae097f2b11e81031f606c54fc91b34a6918211e2c9027adaca11c027ac99e1d0ce306fdb2b5f6a552e30c0f0
6
+ metadata.gz: 41a95e72af79a9128c34f740294eb49901342ff179a1651332712ac151ece83b2b20ea84fd87861eb681ee8b0b627212abc3c57c8795b8f7618ade804f6a72a1
7
+ data.tar.gz: d5d05dc80096af9ed3d3219ea7ddd8547aef315885eff4b81f51b01b6c2fbcb18356131223a98100dc511ae6245a8a6d9736dbf0a86c0506cf7b7fda8879912a
data/.travis.yml CHANGED
@@ -3,9 +3,15 @@ cache: bundler
3
3
  sudo: false
4
4
 
5
5
  rvm:
6
- - 2.2.4
7
6
  - 2.3.1
8
7
 
9
8
  gemfile:
10
9
  - Gemfile
11
10
  - Gemfile.rails50
11
+
12
+ matrix:
13
+ include:
14
+ - rvm: 2.2.4
15
+ gemfile: Gemfile.ruby22
16
+ - rvm: 2.2.4
17
+ gemfile: Gemfile.ruby22.rails50
@@ -1,9 +1,19 @@
1
+ 7.1.0
2
+ -----
3
+ * Update login page copy
4
+ * Add application_name configuration option
5
+ * Add new optional App Proxy Controller Generator to the Engine. Refer README for details.
6
+ * Include ShopifyApp::LoginProtection in Authenticated and Session Controller directly instead of Application Controller.
7
+ * Loosen ShopifyAPI dependency requirements to `>= 4.2.2` and allow ShopifyAPI 4.3.0 and above.
8
+ * Move application.js to inside HEAD in Embedded App Template.
9
+ * Add ability to override the ActiveJob queue names in initializer file.
10
+
1
11
  7.0.11
2
12
  ------
3
13
  * Pass configured resources (like webhooks or scripttags) into the job rather than reading the config again. This allows for dynamically setting ShopifyApp config in a web request and having the job handle it correctly. This change does not affect the usage of webhooks or scripttags
4
14
 
5
15
  7.0.10
6
- -----
16
+ ------
7
17
  * Loosen Rails dependency requirements to `>= 4.2.6` and allow Rails 5.0
8
18
  * Add support for App Proxies
9
19
 
@@ -25,7 +35,7 @@
25
35
  7.0.3
26
36
  -----
27
37
 
28
- * Bump required Rails version to >= 4.2.6 since we are now using ActiveSupport::SecurityUtils:Module
38
+ * Bump required Rails version to `>= 4.2.6` since we are now using `ActiveSupport::SecurityUtils:Module`
29
39
 
30
40
  7.0.2
31
41
  -----
data/Gemfile.ruby22 ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in shopify_app.gemspec
4
+ gemspec
5
+
6
+ gem 'shopify_api', '< 4.3'
@@ -0,0 +1,9 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in shopify_app.gemspec
4
+ gemspec
5
+
6
+ gem 'rails', '~> 5.0'
7
+ gem 'activeresource', github: 'rails/activeresource'
8
+
9
+ gem 'shopify_api', '< 4.3'
data/README.md CHANGED
@@ -1,9 +1,42 @@
1
- Shopify App [![Build Status](https://travis-ci.org/Shopify/shopify_app.png)](https://travis-ci.org/Shopify/shopify_app)
1
+ Shopify App
2
2
  ===========
3
+ [![Version][gem]][gem_url] [![Build Status](https://travis-ci.org/Shopify/shopify_app.png)](https://travis-ci.org/Shopify/shopify_app)
4
+
5
+ [gem]: https://img.shields.io/gem/v/shopify_app.svg
6
+ [gem_url]: https://rubygems.org/gems/shopify_app
7
+
3
8
 
4
9
  Shopify Application Rails engine and generator
5
10
 
6
11
 
12
+ Table of Contents
13
+ -----------------
14
+ * [**Description**](#description)
15
+ * [**Quickstart**](#quickstart)
16
+ * [**Becoming a Shopify App Developer**](#becoming-a-shopify-app-developer)
17
+ * [**Installation**](#installation)
18
+ * [Rails 5](#rails-5)
19
+ * [**Generators**](#generators)
20
+ * [Default Generator](#default-generator)
21
+ * [Install Generator](#install-generator)
22
+ * [Shop Model Generator](#shop-model-generator)
23
+ * [Home Controller Generator](#home-controller-generator)
24
+ * [App Proxy Controller Generator](#app-proxy-controller-generator)
25
+ * [Controllers, Routes and Views](#controllers-routes-and-views)
26
+ * [**Managing Api Keys**](#managing-api-keys)
27
+ * [**WebhooksManager**](#webhooksmanager)
28
+ * [**ScripttagsManager**](#scripttagsmanager)
29
+ * [**ShopifyApp::SessionRepository**](#shopifyappsessionrepository)
30
+ * [**AuthenticatedController**](#authenticatedcontroller)
31
+ * [**AppProxyVerification**](#appproxyverification)
32
+ * [Recommended Usage](#recommended-usage)
33
+ * [**Troubleshooting**](#troubleshooting)
34
+ * [Generator shopify_app:install hangs](#generator-shopify_appinstall-hangs)
35
+ * [**Testing an embedded app outside the Shopify admin**](#testing-an-embedded-app-outside-the-shopify-admin)
36
+ * [**App Tunneling**](#app-tunneling)
37
+ * [**Questions or problems?**](#questions-or-problems)
38
+
39
+
7
40
  Description
8
41
  -----------
9
42
  This gem includes a Rails Engine and generators for writing Rails applications using the Shopify API. The Engine provides a SessionsController and all the required code for authenticating with a shop via Oauth (other authentication methods are not supported).
@@ -60,6 +93,16 @@ $ bundle install
60
93
  Now we are ready to run any of the shopify_app generators. The following section explains the generators and what they can do.
61
94
 
62
95
 
96
+ #### Rails 5
97
+
98
+ shopify_app is compatible with Rails 5 but since the latest ActiveResource release (4.1) is locked on Rails 4.x, you'll need to use the unreleased master version:
99
+
100
+ ```ruby
101
+ gem 'shopify_app'
102
+ gem 'activeresource', github: 'rails/activeresource'
103
+ ```
104
+
105
+
63
106
  Generators
64
107
  ----------
65
108
 
@@ -83,6 +126,7 @@ $ rails generate shopify_app:install --api_key <your_api_key> --secret <your_app
83
126
  ```
84
127
 
85
128
  Other options include:
129
+ * `application_name` - the name of your app
86
130
  * `scope` - the Oauth access scope required for your app, eg 'read_products, write_orders'. For more information read the [docs](http://docs.shopify.com/api/tutorials/oauth)
87
131
  * `embedded` - the default is to generate an [embedded app](http://docs.shopify.com/embedded-app-sdk), if you want a legacy non-embedded app then set this to false, `--embedded false`
88
132
 
@@ -113,6 +157,15 @@ $ rails generate shopify_app:home_controller
113
157
  This generator creates an example home controller and view which fetches and displays products using the ShopifyAPI
114
158
 
115
159
 
160
+ ### App Proxy Controller Generator
161
+
162
+ ```sh
163
+ $ rails generate shopify_app:app_proxy_controller
164
+ ```
165
+
166
+ This optional generator, not included with the default generator, creates the app proxy controller to handle proxy requests to the app from your shop storefront, modifies 'config/routes.rb' with a namespace route, and an example view which displays current shop information using the LiquidAPI
167
+
168
+
116
169
  ### Controllers, Routes and Views
117
170
 
118
171
  The last group of generators are for your convenience if you want to start overriding code included as part of the Rails engine. For example by default the engine provides a simple SessionController, if you run the `rails generate shopify_app:controllers` generator then this code gets copied out into your app so you can start adding to it. Routes and views follow the exact same pattern.
@@ -125,6 +178,7 @@ The `install` generator places your Api credentials directly into the shopify_ap
125
178
 
126
179
  ```ruby
127
180
  ShopifyApp.configure do |config|
181
+ config.application_name = 'Your app name' # Optional
128
182
  config.api_key = ENV['SHOPIFY_CLIENT_API_KEY']
129
183
  config.secret = ENV['SHOPIFY_CLIENT_API_SECRET']
130
184
  config.scope = 'read_customers, read_orders, write_products'
@@ -209,43 +263,18 @@ The engine provides a mixin for verifying incoming HTTP requests sent via an App
209
263
 
210
264
  ### Recommended Usage
211
265
 
212
- 1. Use the `namespace` method to create app proxy routes
213
- ```ruby
214
- # config/routes.rb
215
- namespace :app_proxy do
216
- # simple routes without a specified controller will go to AppProxyController
217
- # GET '/app_proxy/basic' will be routed to AppProxyController#basic
218
- get :basic
219
-
220
- # this will route GET /app_proxy to AppProxyController#main
221
- root action: :main
222
-
223
- # more complex routes will go to controllers in the AppProxy namespace
224
- resources :reviews
225
- # GET /app_proxy/reviews will now be routed to
226
- # AppProxy::ReviewsController#index, for example
227
- end
228
- ```
229
-
230
- 2. `include` the mixin in your app proxy controllers
231
- ```ruby
232
- # app/controllers/app_proxy_controller.rb
233
- class AppProxyController < ApplicationController
234
- include ShopifyApp::AppProxyVerification
235
-
236
- def basic
237
- render text: 'Signature verification passed!'
238
- end
239
- end
240
-
241
- # app/controllers/app_proxy/reviews_controller.rb
242
- class ReviewsController < ApplicationController
243
- include ShopifyApp::AppProxyVerification
244
- # ...
245
- end
246
- ```
247
-
248
- 3. Create your app proxy url in the [Shopify Partners' Dashboard](https://app.shopify.com/services/partners/api_clients), making sure to point it to `https://your_app_website.com/app_proxy`.
266
+ The App Proxy Controller Generator automatically adds the mixin to the generated app_proxy_controller.rb
267
+ Additional controllers for resources within the App_Proxy namespace, will need to include the mixin like so:
268
+
269
+ ```ruby
270
+ # app/controllers/app_proxy/reviews_controller.rb
271
+ class ReviewsController < ApplicationController
272
+ include ShopifyApp::AppProxyVerification
273
+ # ...
274
+ end
275
+ ```
276
+
277
+ Create your app proxy url in the [Shopify Partners' Dashboard](https://app.shopify.com/services/partners/api_clients), making sure to point it to `https://your_app_website.com/app_proxy`.
249
278
  ![Creating an App Proxy](/images/app-proxy-screenshot.png)
250
279
 
251
280
  Troubleshooting
@@ -270,6 +299,13 @@ By default, loading your embedded app will redirect to the Shopify admin, with t
270
299
  forceRedirect: <%= Rails.env.development? || Rails.env.test? ? 'false' : 'true' %>
271
300
  ```
272
301
 
302
+ App Tunneling
303
+ -------------
304
+
305
+ For certain features like Application Proxy or Webhooks to receive requests from Shopify, your app needs to be on a publicly visible URL. This can be a hurdle during development or testing on a local machine. Fortunately, this can be overcome by employing a tunneling service like [Forward](https://forwardhq.com/), [RequestBin](requestb.in/), [ngrok](https://ngrok.com/) etc. These tools allow you to create a secure tunnel from the public Internet to your local machine.
306
+
307
+ Tunneling is also useful for working the the embedded app sdk to solve mixed content issues since most tunnles provide ssl.
308
+
273
309
  Questions or problems?
274
310
  ----------------------
275
311
  http://api.shopify.com <= Read up on the possible API calls!
@@ -1,5 +1,6 @@
1
1
  module ShopifyApp
2
2
  class AuthenticatedController < ApplicationController
3
+ include ShopifyApp::LoginProtection
3
4
  before_action :login_again_if_different_shop
4
5
  around_action :shopify_session
5
6
  layout ShopifyApp.configuration.embedded_app? ? 'embedded_app' : 'application'
@@ -76,15 +76,16 @@
76
76
 
77
77
  <main class="container" role="main">
78
78
  <header>
79
- <h1>Shopify App Installation</h1>
79
+ <% application_name = ShopifyApp.configuration.application_name %>
80
+ <h1><%= application_name.presence || 'Shopify App – Installation' %></h1>
80
81
  <p class="subhead">
81
- <label for="shop">Please enter the “myshopify” domain of your store</label>
82
+ <label for="shop">Enter your shop domain to log in or install this app.</label>
82
83
  </p>
83
84
  </header>
84
85
 
85
86
  <div class="container__form">
86
87
  <form method="GET" action="login">
87
- <input type="text" name="shop" id="shop" placeholder="blabla.myshopify.com"/>
88
+ <input type="text" name="shop" id="shop" placeholder="example.myshopify.com"/>
88
89
  <button type="submit">Install</button>
89
90
  </form>
90
91
  </div>
@@ -0,0 +1,25 @@
1
+ require 'rails/generators/base'
2
+
3
+ module ShopifyApp
4
+ module Generators
5
+ class AppProxyControllerGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ def create_app_proxy_controller
9
+ template 'app_proxy_controller.rb', 'app/controllers/app_proxy_controller.rb'
10
+ end
11
+
12
+ def create_app_proxy_index_view
13
+ copy_file 'index.html.erb', 'app/views/app_proxy/index.html.erb'
14
+ end
15
+
16
+ def add_app_proxy_route
17
+ inject_into_file(
18
+ 'config/routes.rb',
19
+ File.read(File.expand_path(find_in_source_paths('app_proxy_route.rb'))),
20
+ after: "mount ShopifyApp::Engine, at: '/'\n"
21
+ )
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,8 @@
1
+ class AppProxyController < ApplicationController
2
+ include ShopifyApp::AppProxyVerification
3
+
4
+ def index
5
+ render layout: false, content_type: 'application/liquid'
6
+ end
7
+
8
+ end
@@ -0,0 +1,10 @@
1
+
2
+ namespace :app_proxy do
3
+ root action: 'index'
4
+ # simple routes without a specified controller will go to AppProxyController
5
+
6
+ # more complex routes will go to controllers in the AppProxy namespace
7
+ # resources :reviews
8
+ # GET /app_proxy/reviews will now be routed to
9
+ # AppProxy::ReviewsController#index, for example
10
+ end
@@ -0,0 +1,19 @@
1
+ <h2>App Proxy Page</h2>
2
+
3
+ <p>Congratulations! You have successfully configured App Proxy for your shopify application.</p>
4
+ <p>Any valid liquid code included in this page will be parsed and rendered by Shopify.</p>
5
+
6
+ <br>
7
+
8
+ <pre>
9
+ Your Shop Details:
10
+ <hr>
11
+ Shop Name : {{ shop.name }}
12
+ myshopify name : {{ shop.permanent_domain }}
13
+ Primary Domain of Shop : {{ shop.domain }}
14
+ Shop URL : {{ shop.url }}
15
+ Shop Currency : {{ shop.currency }}
16
+ No. of products in this shop : {{ shop.products_count }}
17
+ <br>
18
+ <hr>
19
+ </pre>
@@ -7,12 +7,14 @@ module ShopifyApp
7
7
  include Rails::Generators::Migration
8
8
  source_root File.expand_path('../templates', __FILE__)
9
9
 
10
+ class_option :application_name, type: :string
10
11
  class_option :api_key, type: :string, default: '<api_key>'
11
12
  class_option :secret, type: :string, default: '<secret>'
12
13
  class_option :scope, type: :string, default: 'read_orders, read_products'
13
14
  class_option :embedded, type: :string, default: 'true'
14
15
 
15
16
  def create_shopify_app_initializer
17
+ @application_name = options['application_name']
16
18
  @api_key = options['api_key']
17
19
  @secret = options['secret']
18
20
  @scope = options['scope']
@@ -43,14 +45,6 @@ module ShopifyApp
43
45
  end
44
46
  end
45
47
 
46
- def inject_into_application_controller
47
- inject_into_class(
48
- "app/controllers/application_controller.rb",
49
- 'ApplicationController',
50
- " include ShopifyApp::LoginProtection\n"
51
- )
52
- end
53
-
54
48
  def create_embedded_app_layout
55
49
  if embedded_app?
56
50
  copy_file 'embedded_app.html.erb', 'app/views/layouts/embedded_app.html.erb'
@@ -2,8 +2,10 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>Shopify Embedded Example App</title>
5
+ <% application_name = ShopifyApp.configuration.application_name %>
6
+ <title><%= application_name.presence || 'Embedded Shopify App Example' %></title>
6
7
  <%= stylesheet_link_tag 'application' %>
8
+ <%= javascript_include_tag 'application', "data-turbolinks-track" => true %>
7
9
  <%= csrf_meta_tags %>
8
10
  </head>
9
11
 
@@ -29,8 +31,6 @@
29
31
  });
30
32
  </script>
31
33
 
32
- <%= javascript_include_tag 'application', "data-turbolinks-track" => true %>
33
-
34
34
  <% if content_for?(:javascript) %>
35
35
  <div id="ContentForJavascript" data-turbolinks-temporary>
36
36
  <%= yield :javascript %>
@@ -1,4 +1,7 @@
1
1
  ShopifyApp.configure do |config|
2
+ <% if @application_name.present? %>
3
+ config.application_name = "<%= @application_name %>"
4
+ <% end %>
2
5
  config.api_key = "<%= @api_key %>"
3
6
  config.secret = "<%= @secret %>"
4
7
  config.scope = "<%= @scope %>"
@@ -3,7 +3,12 @@ module ShopifyApp
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
- skip_before_action :verify_authenticity_token, raise: false
6
+ if Rails.version >= '5.0'
7
+ skip_before_action :verify_authenticity_token, raise: false
8
+ else
9
+ skip_before_action :verify_authenticity_token
10
+ end
11
+
7
12
  before_action :verify_proxy_request
8
13
  end
9
14
 
@@ -4,6 +4,7 @@ module ShopifyApp
4
4
  # Shopify App settings. These values should match the configuration
5
5
  # for the app in your Shopify Partners page. Change your settings in
6
6
  # `config/initializers/shopify_app.rb`
7
+ attr_accessor :application_name
7
8
  attr_accessor :api_key
8
9
  attr_accessor :secret
9
10
  attr_accessor :scope
@@ -12,6 +13,10 @@ module ShopifyApp
12
13
  attr_accessor :webhooks
13
14
  attr_accessor :scripttags
14
15
 
16
+ # customise ActiveJob queue names
17
+ attr_accessor :scripttags_manager_queue_name
18
+ attr_accessor :webhooks_manager_queue_name
19
+
15
20
  # configure myshopify domain for local shopify development
16
21
  attr_accessor :myshopify_domain
17
22
 
@@ -26,6 +31,14 @@ module ShopifyApp
26
31
  def has_scripttags?
27
32
  scripttags.present?
28
33
  end
34
+
35
+ def scripttags_manager_queue_name
36
+ @scripttags_manager_queue_name ||= Rails.application.config.active_job.queue_name
37
+ end
38
+
39
+ def webhooks_manager_queue_name
40
+ @webhooks_manager_queue_name ||= Rails.application.config.active_job.queue_name
41
+ end
29
42
  end
30
43
 
31
44
  def self.configuration
@@ -1,5 +1,10 @@
1
1
  module ShopifyApp
2
2
  class ScripttagsManagerJob < ActiveJob::Base
3
+
4
+ queue_as do
5
+ ShopifyApp.configuration.webhooks_manager_queue_name
6
+ end
7
+
3
8
  def perform(shop_domain:, shop_token:, scripttags:)
4
9
  ShopifyAPI::Session.temp(shop_domain, shop_token) do
5
10
  manager = ScripttagsManager.new(scripttags)
@@ -2,6 +2,10 @@ module ShopifyApp
2
2
  module SessionsConcern
3
3
  extend ActiveSupport::Concern
4
4
 
5
+ included do
6
+ include ShopifyApp::LoginProtection
7
+ end
8
+
5
9
  def new
6
10
  authenticate if params[:shop].present?
7
11
  end
@@ -1,3 +1,3 @@
1
1
  module ShopifyApp
2
- VERSION = '7.0.11'
2
+ VERSION = '7.1.0'
3
3
  end
@@ -3,7 +3,12 @@ module ShopifyApp
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
- skip_before_action :verify_authenticity_token, raise: false
6
+ if Rails.version >= '5.0'
7
+ skip_before_action :verify_authenticity_token, raise: false
8
+ else
9
+ skip_before_action :verify_authenticity_token
10
+ end
11
+
7
12
  before_action :verify_request
8
13
  end
9
14
 
@@ -30,6 +35,5 @@ module ShopifyApp
30
35
  def shopify_hmac
31
36
  request.headers['HTTP_X_SHOPIFY_HMAC_SHA256']
32
37
  end
33
-
34
38
  end
35
39
  end
@@ -1,5 +1,10 @@
1
1
  module ShopifyApp
2
2
  class WebhooksManagerJob < ActiveJob::Base
3
+
4
+ queue_as do
5
+ ShopifyApp.configuration.webhooks_manager_queue_name
6
+ end
7
+
3
8
  def perform(shop_domain:, shop_token:, webhooks:)
4
9
  ShopifyAPI::Session.temp(shop_domain, shop_token) do
5
10
  manager = WebhooksManager.new(webhooks)
data/shopify_app.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.required_ruby_version = ">= 2.2.4"
12
12
 
13
13
  s.add_runtime_dependency('rails', '>= 4.2.6')
14
- s.add_runtime_dependency('shopify_api', '~> 4.2.2')
14
+ s.add_runtime_dependency('shopify_api', '>= 4.2.2')
15
15
  s.add_runtime_dependency('omniauth-shopify-oauth2', '~> 1.1.11')
16
16
 
17
17
  s.add_development_dependency('rake')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.11
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-11 00:00:00.000000000 Z
11
+ date: 2016-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: shopify_api
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 4.2.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.2.2
41
41
  - !ruby/object:Gem::Dependency
@@ -130,9 +130,11 @@ extra_rdoc_files: []
130
130
  files:
131
131
  - ".gitignore"
132
132
  - ".travis.yml"
133
- - CHANGELOG
133
+ - CHANGELOG.md
134
134
  - Gemfile
135
135
  - Gemfile.rails50
136
+ - Gemfile.ruby22
137
+ - Gemfile.ruby22.rails50
136
138
  - ISSUE_TEMPLATE.md
137
139
  - LICENSE
138
140
  - QUICKSTART.md
@@ -149,6 +151,10 @@ files:
149
151
  - images/app-proxy-screenshot.png
150
152
  - lib/generators/shopify_app/add_webhook/add_webhook_generator.rb
151
153
  - lib/generators/shopify_app/add_webhook/templates/webhook_job.rb
154
+ - lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb
155
+ - lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_controller.rb
156
+ - lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_route.rb
157
+ - lib/generators/shopify_app/app_proxy_controller/templates/index.html.erb
152
158
  - lib/generators/shopify_app/controllers/controllers_generator.rb
153
159
  - lib/generators/shopify_app/home_controller/home_controller_generator.rb
154
160
  - lib/generators/shopify_app/home_controller/templates/home_controller.rb
@@ -208,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
214
  version: '0'
209
215
  requirements: []
210
216
  rubyforge_project:
211
- rubygems_version: 2.2.3
217
+ rubygems_version: 2.5.1
212
218
  signing_key:
213
219
  specification_version: 4
214
220
  summary: This gem is used to get quickly started with the Shopify API