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 +4 -4
- data/.travis.yml +7 -1
- data/{CHANGELOG → CHANGELOG.md} +12 -2
- data/Gemfile.ruby22 +6 -0
- data/Gemfile.ruby22.rails50 +9 -0
- data/README.md +74 -38
- data/app/controllers/shopify_app/authenticated_controller.rb +1 -0
- data/app/views/shopify_app/sessions/new.html.erb +4 -3
- data/lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb +25 -0
- data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_controller.rb +8 -0
- data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_route.rb +10 -0
- data/lib/generators/shopify_app/app_proxy_controller/templates/index.html.erb +19 -0
- data/lib/generators/shopify_app/install/install_generator.rb +2 -8
- data/lib/generators/shopify_app/install/templates/embedded_app.html.erb +3 -3
- data/lib/generators/shopify_app/install/templates/shopify_app.rb +3 -0
- data/lib/shopify_app/app_proxy_verification.rb +6 -1
- data/lib/shopify_app/configuration.rb +13 -0
- data/lib/shopify_app/scripttags_manager_job.rb +5 -0
- data/lib/shopify_app/sessions_concern.rb +4 -0
- data/lib/shopify_app/version.rb +1 -1
- data/lib/shopify_app/webhook_verification.rb +6 -2
- data/lib/shopify_app/webhooks_manager_job.rb +5 -0
- data/shopify_app.gemspec +1 -1
- metadata +12 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95666ea2f773fc1abdccd1dd9fbe7b9a2d52763e
|
4
|
+
data.tar.gz: 997acff43235b5ab32e218f78754f0600c1ab88e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41a95e72af79a9128c34f740294eb49901342ff179a1651332712ac151ece83b2b20ea84fd87861eb681ee8b0b627212abc3c57c8795b8f7618ade804f6a72a1
|
7
|
+
data.tar.gz: d5d05dc80096af9ed3d3219ea7ddd8547aef315885eff4b81f51b01b6c2fbcb18356131223a98100dc511ae6245a8a6d9736dbf0a86c0506cf7b7fda8879912a
|
data/.travis.yml
CHANGED
data/{CHANGELOG → CHANGELOG.md}
RENAMED
@@ -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
|
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
data/README.md
CHANGED
@@ -1,9 +1,42 @@
|
|
1
|
-
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
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
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
|
-
|
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">
|
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="
|
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,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
|
-
|
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 %>
|
@@ -3,7 +3,12 @@ module ShopifyApp
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
included do
|
6
|
-
|
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)
|
data/lib/shopify_app/version.rb
CHANGED
@@ -3,7 +3,12 @@ module ShopifyApp
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
included do
|
6
|
-
|
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', '
|
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
|
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
|
+
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.
|
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
|