shopify_app 5.0.0 → 5.0.1

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: 5c13d2dc552acb4d83345cfa79458bacf0e7c289
4
- data.tar.gz: 37d1d7d575a20c3e6ec31a74c5218890c16bcb6e
3
+ metadata.gz: 6b63a99a31c373bfa53cba58497efffb6dcd68cd
4
+ data.tar.gz: 13a5639e78cc51a29c668f5fb15ebf9e48fa1c92
5
5
  SHA512:
6
- metadata.gz: 435f36ef8b451587c3b44ee238ef62cac08beccb1123159d9290618f9011ccb5e8b423d11417eab6a1f84dbc5621615cd3845e82a898d505e6d945c35a3b2fb4
7
- data.tar.gz: 32f20ae9da3e54e4241eeccb5bbe52c63cc3454911749630e72fe8ba89c4415b81ff731bc040f941175b85f70c4d45436626f368df315e2a8c7688e97d9dd01f
6
+ metadata.gz: b200f8785a3b3a1ec14a0f295339b812ab86dd968307ac6cd1cf1982e38ea82830b24cda724f55708e95d6662375c7669aaa80a68793dc78b3211c353b4fc796
7
+ data.tar.gz: 7403b965254769f35af83b07a74602b7ea7ce7483f8f9d1aaf183dc7f1919af370e86e8e355dee4918a0e12efe8c7a562e80e9571dda2a33cd70de63c827b9b5
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
Binary file
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in shopify_app.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -34,7 +34,7 @@ If you don't have an API key yet, create a Shopify Partner account at http://sho
34
34
 
35
35
  When you create your app in the Shopify Partner Account, set the Application Callback URL to
36
36
 
37
- http://localhost:3000
37
+ http://localhost:3000/login
38
38
 
39
39
  You can also create a private application that only works for your shop by visiting https://YOUR-SHOP.myshopify.com/admin/apps/private.
40
40
 
@@ -93,9 +93,10 @@ class Shop < ActiveRecord::Base
93
93
  shop.id
94
94
  end
95
95
 
96
- def retrieve(id)
97
- shop = Shop.find(id)
98
- ShopifyAPI::Session.new(shop.domain, shop.token)
96
+ def self.retrieve(id)
97
+ if shop = Shop.where(id: id).first
98
+ ShopifyAPI::Session.new(shop.domain, shop.token)
99
+ end
99
100
  end
100
101
  end
101
102
  ```
@@ -110,6 +111,10 @@ when a dyno is killed due to inactivity.
110
111
  Changing the `ShopifySessionRepository.storage` can simply be done by editing
111
112
  `config/initializers/shopify_session_repository.rb` to use the correct model.
112
113
 
114
+ ```ruby
115
+ ShopifySessionRepository.storage = 'Shop'
116
+ ```
117
+
113
118
  ## Set your required API permissions
114
119
 
115
120
  Before making API requests, your application must state which API permissions it requires from the shop it's installed in. These requested permissions will be listed on the screen the merchant sees when approving your app to be installed in their shop.
@@ -3,28 +3,28 @@ require 'rails/generators'
3
3
  class ShopifyAppGenerator < Rails::Generators::Base
4
4
  argument :api_key, :type => :string, :required => false
5
5
  argument :secret, :type => :string, :required => false
6
-
6
+
7
7
  class_option :skip_routes, :type => :boolean, :default => false, :desc => 'pass true to skip route generation'
8
-
8
+
9
9
  def self.source_root
10
10
  File.join(File.dirname(__FILE__), 'templates')
11
11
  end
12
-
12
+
13
13
  def copy_files
14
14
  directory 'app'
15
15
  directory 'public'
16
16
  directory 'config'
17
17
  end
18
-
18
+
19
19
  def remove_static_index
20
20
  remove_file 'public/index.html'
21
21
  end
22
-
22
+
23
23
  def add_config_variables
24
24
  return if api_key.blank? || secret.blank?
25
-
25
+
26
26
  inject_into_file 'config/application.rb', <<-DATA, :after => "class Application < Rails::Application\n"
27
-
27
+
28
28
  # Shopify API connection credentials:
29
29
  config.shopify.api_key = '#{api_key}'
30
30
  config.shopify.secret = '#{secret}'
@@ -37,7 +37,7 @@ class ShopifyAppGenerator < Rails::Generators::Base
37
37
  gem 'therubyracer', :platforms => :ruby
38
38
  end
39
39
  end
40
-
40
+
41
41
  def add_routes
42
42
  unless options[:skip_routes]
43
43
  route_without_newline "root :to => 'home#index'"
@@ -51,7 +51,7 @@ class ShopifyAppGenerator < Rails::Generators::Base
51
51
  route_without_newline "get 'welcome' => 'home#welcome'"
52
52
  end
53
53
  end
54
-
54
+
55
55
  def display_readme
56
56
  Bundler.with_clean_env do
57
57
  run 'bundle install'
@@ -59,11 +59,11 @@ class ShopifyAppGenerator < Rails::Generators::Base
59
59
 
60
60
  readme '../README'
61
61
  end
62
-
62
+
63
63
  private
64
-
64
+
65
65
  def route_without_newline(routing_code)
66
66
  sentinel = /\.routes\.draw do(?:\s*\|map\|)?\s*$/
67
67
  inject_into_file 'config/routes.rb', "\n #{routing_code}", { after: sentinel, verbose: false }
68
- end
68
+ end
69
69
  end
@@ -28,7 +28,7 @@
28
28
 
29
29
  <ul>
30
30
  <li>
31
- <%= link_to 'API documentation', 'http://www.shopify.com/developers/api/' %>
31
+ <%= link_to 'API documentation', 'http://docs.shopify.com/api' %>
32
32
  <span class="note">Learn what you can do with the Shopify API</span>
33
33
  </li><br/>
34
34
  <li>
@@ -36,11 +36,11 @@
36
36
  <span class="note">Find out what you can do with Twitter Bootstrap</span>
37
37
  </li><br/>
38
38
  <li>
39
- <%= link_to 'Wiki', 'http://wiki.shopify.com/' %>
39
+ <%= link_to 'Wiki', 'http://docs.shopify.com/' %>
40
40
  <span class="note">Get more information and share your knowledge</span>
41
41
  </li><br/>
42
42
  <li>
43
- <%= link_to 'Forum', 'http://forums.shopify.com/community' %>
43
+ <%= link_to 'Forum', 'https://ecommerce.shopify.com/forums' %>
44
44
  <span class="note">Ask questions and see what others already wanted to know</span>
45
45
  </li>
46
46
  </ul>
@@ -49,11 +49,11 @@
49
49
 
50
50
  <h3>Once you're ready</h3>
51
51
 
52
- <p>We'd love to see what you create using the Shopify API. You can keep up to date on the latest and greatest via the <%= link_to 'Shopify API Twitter Account', 'http://www.twitter.com/shopifyapi' %>. You can also read the latest information on the <%= link_to 'API Publishing Page', 'http://www.shopify.com/developers/publishing/' %>.</p>
52
+ <p>We'd love to see what you create using the Shopify API. You can keep up to date on the latest and greatest via the <%= link_to 'Shopify Developers Twitter Account', 'https://twitter.com/shopifydevs' %>. You can also read the latest information on the <%= link_to 'Building a Shopify App', 'http://docs.shopify.com/partners/partner-resources/for-partners/building-a-shopify-app' %>.</p>
53
53
 
54
54
  <br/>
55
55
 
56
- <a href="https://twitter.com/shopifyapi" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @shopifyapi</a>
56
+ <a href="https://twitter.com/shopifydevs" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ShopifyDevs</a>
57
57
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
58
58
  </div> <!-- span3 / left-column -->
59
59
 
@@ -165,4 +165,4 @@
165
165
 
166
166
  </div> <!-- accordion -->
167
167
  </div> <!-- span8 / right-column -->
168
- </div>
168
+ </div>
@@ -90,15 +90,15 @@ The callback URL of your app can be changed in the API screen of your Shopify ad
90
90
  <ul>
91
91
  <li>
92
92
  <%= link_to 'API documentation', 'http://www.shopify.com/developers/api' %>
93
- <span class="hint">(An overview of what you can do with the Shopify API.)
93
+ <span class="hint">(An overview of what you can do with the Shopify API.)</span>
94
94
  </li>
95
95
  <li>
96
96
  <%= link_to 'Wiki (needs its own API section)', 'http://wiki.shopify.com/' %>
97
- <span class="hint">(Get more information and share your knowledge.)
97
+ <span class="hint">(Get more information and share your knowledge.)</span>
98
98
  </li>
99
99
  <li>
100
100
  <%= link_to 'Forum (needs its own API section)', 'http://forums.shopify.com/community' %>
101
- <span class="hint">(Ask questions and see what others already wanted to know.)
101
+ <span class="hint">(Ask questions and see what others already wanted to know.)</span>
102
102
  </li>
103
103
  </ul>
104
104
 
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.precompile += %w( twitter/bootstrap/* )
@@ -12,9 +12,10 @@
12
12
  # shop.id
13
13
  # end
14
14
  #
15
- # def retrieve(id)
16
- # shop = Shop.find(id)
17
- # ShopifyAPI::Session.new(shop.domain, shop.token)
15
+ # def self.retrieve(id)
16
+ # if shop = Shop.where(id: id).first
17
+ # ShopifyAPI::Session.new(shop.domain, shop.token)
18
+ # end
18
19
  # end
19
20
  # end
20
21
 
@@ -1,37 +1,42 @@
1
1
  module ShopifyApp::LoginProtection
2
2
  extend ActiveSupport::Concern
3
-
3
+
4
4
  included do
5
5
  rescue_from ActiveResource::UnauthorizedAccess, :with => :close_session
6
6
  end
7
-
7
+
8
8
  def shopify_session
9
9
  if shop_session
10
10
  begin
11
11
  # session[:shopify] set in LoginController#show
12
12
  ShopifyAPI::Base.activate_session(shop_session)
13
13
  yield
14
- ensure
14
+ ensure
15
15
  ShopifyAPI::Base.clear_session
16
16
  end
17
17
  else
18
- session[:return_to] = request.fullpath if request.get?
19
- redirect_to login_path(shop: params[:shop])
18
+ redirect_to_login
20
19
  end
21
20
  end
22
-
21
+
23
22
  def shop_session
24
- ShopifySessionRepository.retrieve(session[:shopify])
23
+ return unless session[:shopify]
24
+ @shop_session ||= ShopifySessionRepository.retrieve(session[:shopify])
25
25
  end
26
26
 
27
27
  def login_again_if_different_shop
28
28
  if shop_session && params[:shop] && params[:shop].is_a?(String) && shop_session.url != params[:shop]
29
- redirect_to login_path(shop: params[:shop])
30
- end
29
+ redirect_to_login
30
+ end
31
31
  end
32
-
32
+
33
33
  protected
34
-
34
+
35
+ def redirect_to_login
36
+ session[:return_to] = request.fullpath if request.get?
37
+ redirect_to login_path(shop: params[:shop])
38
+ end
39
+
35
40
  def close_session
36
41
  session[:shopify] = nil
37
42
  redirect_to login_path
@@ -1,22 +1,32 @@
1
1
  class ShopifySessionRepository
2
2
  class ConfigurationError < StandardError; end
3
3
 
4
- def self.storage=(storage)
5
- @@storage = storage
6
- end
4
+ class << self
5
+ def storage=(storage)
6
+ @storage = storage
7
7
 
8
- def self.retrieve(id)
9
- validate
10
- @@storage.retrieve(id)
11
- end
8
+ unless storage.nil? || self.storage.respond_to?(:store) && self.storage.respond_to?(:retrieve)
9
+ raise ArgumentError, "storage must respond to :store and :retrieve"
10
+ end
11
+ end
12
12
 
13
- def self.store(session)
14
- validate
15
- @@storage.store(session)
16
- end
13
+ def retrieve(id)
14
+ storage.retrieve(id)
15
+ end
17
16
 
18
- def self.validate
19
- raise ConfigurationError.new("ShopifySessionRepository.store is not configured!") unless @@storage
20
- end
17
+ def store(session)
18
+ storage.store(session)
19
+ end
21
20
 
21
+ def storage
22
+ load_storage || raise(ConfigurationError.new("ShopifySessionRepository.storage is not configured!"))
23
+ end
24
+
25
+ private
26
+
27
+ def load_storage
28
+ return unless @storage
29
+ @storage.respond_to?(:safe_constantize) ? @storage.safe_constantize : @storage
30
+ end
31
+ end
22
32
  end
@@ -1,3 +1,3 @@
1
1
  module ShopifyApp
2
- VERSION = "5.0.0"
2
+ VERSION = "5.0.1"
3
3
  end
@@ -0,0 +1,55 @@
1
+ require 'test_helper'
2
+ require 'action_controller'
3
+
4
+ class LoginProtectionController < ActionController::Base
5
+ include ShopifyApp::LoginProtection
6
+ helper_method :shop_session
7
+
8
+ def index
9
+ render nothing: true
10
+ end
11
+ end
12
+
13
+ class LoginProtectionTest < ActionController::TestCase
14
+ tests LoginProtectionController
15
+
16
+ def setup
17
+ ShopifySessionRepository.storage = InMemorySessionStore
18
+ end
19
+
20
+ def test_calling_shop_session_returns_nil_when_session_is_nil
21
+ with_application_test_routes do
22
+ session[:shopify] = nil
23
+ get :index
24
+ assert_nil @controller.shop_session
25
+ end
26
+ end
27
+
28
+ def test_calling_shop_session_retreives_session_from_storage
29
+ with_application_test_routes do
30
+ session[:shopify] = "foobar"
31
+ get :index
32
+ ShopifySessionRepository.expects(:retrieve).returns(session).once
33
+ assert @controller.shop_session
34
+ end
35
+ end
36
+
37
+ def test_shop_session_is_memoized_and_does_not_retreive_session_twice
38
+ with_application_test_routes do
39
+ session[:shopify] = "foobar"
40
+ get :index
41
+ ShopifySessionRepository.expects(:retrieve).returns(session).once
42
+ assert @controller.shop_session
43
+ assert @controller.shop_session
44
+ end
45
+ end
46
+
47
+ def with_application_test_routes
48
+ with_routing do |set|
49
+ set.draw do
50
+ get '/' => 'login_protection#index'
51
+ end
52
+ yield
53
+ end
54
+ end
55
+ end
@@ -17,6 +17,14 @@ class TestSessionStore
17
17
  end
18
18
  end
19
19
 
20
+ class TestSessionStoreClass
21
+ def self.store(session)
22
+ end
23
+
24
+ def self.retrieve(id)
25
+ end
26
+ end
27
+
20
28
  class ShopifySessionRepositoryTest < Minitest::Test
21
29
  attr_reader :session_store, :session
22
30
  def setup
@@ -54,4 +62,9 @@ class ShopifySessionRepositoryTest < Minitest::Test
54
62
  ShopifySessionRepository.store(session)
55
63
  end
56
64
  end
65
+
66
+ def test_accepts_a_string_and_constantizes_it
67
+ ShopifySessionRepository.storage = 'TestSessionStoreClass'
68
+ assert_equal TestSessionStoreClass, ShopifySessionRepository.storage
69
+ end
57
70
  end
metadata CHANGED
@@ -1,117 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2014-06-09 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MQ8wDQYDVQQDDAZhZG1p
14
+ bnMxFzAVBgoJkiaJk/IsZAEZFgdzaG9waWZ5MRMwEQYKCZImiZPyLGQBGRYDY29t
15
+ MB4XDTE0MDUxNTIwMzM0OFoXDTE1MDUxNTIwMzM0OFowPzEPMA0GA1UEAwwGYWRt
16
+ aW5zMRcwFQYKCZImiZPyLGQBGRYHc2hvcGlmeTETMBEGCgmSJomT8ixkARkWA2Nv
17
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0/81O3e1vh5smcwp2G
18
+ MpLQ6q0kejQLa65bPYPxdzWA1SYOKyGfw+yR9LdFzsuKpwWzKq6zX35lj1IckWS4
19
+ bNBEQzxmufUxU0XPM02haFB8fOfDJzdXsWte9Ge4IFwahwn68gpMqN+BvxL+KMYz
20
+ Iut9YmN44d4LZdsENEIO5vmybuG2vYDz7R56qB0PA+Q2P2CdhymsBad2DQs69FBo
21
+ uico9V6VMYYctL9lCYdzu9IXrOYNTt88suKIVzzAlHOKeN0Ng5qdztFoTR8sfxDr
22
+ Ydg3KHl5n47wlpgd8R0f/4b5gGxW+v9pyJCgQnLlRu7DedVSvv7+GMtj3g9r3nhJ
23
+ KqECAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFI/o
24
+ maf34HXbUOQsdoLHacEKQgunMB0GA1UdEQQWMBSBEmFkbWluc0BzaG9waWZ5LmNv
25
+ bTAdBgNVHRIEFjAUgRJhZG1pbnNAc2hvcGlmeS5jb20wDQYJKoZIhvcNAQEFBQAD
26
+ ggEBADkK9aj5T0HPExsov4EoMWFnO+G7RQ28C30VAfKxnL2UxG6i4XMHVs6Xi94h
27
+ qXFw1ec9Y2eDUqaolT3bviOk9BB197+A8Vz/k7MC6ci2NE+yDDB7HAC8zU6LAx8Y
28
+ Iqvw7B/PSZ/pz4bUVFlTATif4mi1vO3lidRkdHRtM7UePSn2rUpOi0gtXBP3bLu5
29
+ YjHJN7wx5cugMEyroKITG5gL0Nxtu21qtOlHX4Hc4KdE2JqzCPOsS4zsZGhgwhPs
30
+ fl3hbtVFTqbOlwL9vy1fudXcolIE/ZTcxQ+er07ZFZdKCXayR9PPs64heamfn0fp
31
+ TConQSX2BnZdhIEYW+cKzEC/bLc=
32
+ -----END CERTIFICATE-----
33
+ date: 2014-12-19 00:00:00.000000000 Z
12
34
  dependencies:
13
35
  - !ruby/object:Gem::Dependency
14
36
  name: rails
15
37
  requirement: !ruby/object:Gem::Requirement
16
38
  requirements:
17
- - - '>='
39
+ - - ">="
18
40
  - !ruby/object:Gem::Version
19
41
  version: '3.1'
20
- - - <
42
+ - - "<"
21
43
  - !ruby/object:Gem::Version
22
44
  version: '5.0'
23
45
  type: :runtime
24
46
  prerelease: false
25
47
  version_requirements: !ruby/object:Gem::Requirement
26
48
  requirements:
27
- - - '>='
49
+ - - ">="
28
50
  - !ruby/object:Gem::Version
29
51
  version: '3.1'
30
- - - <
52
+ - - "<"
31
53
  - !ruby/object:Gem::Version
32
54
  version: '5.0'
33
55
  - !ruby/object:Gem::Dependency
34
56
  name: shopify_api
35
57
  requirement: !ruby/object:Gem::Requirement
36
58
  requirements:
37
- - - ~>
59
+ - - "~>"
38
60
  - !ruby/object:Gem::Version
39
61
  version: 3.2.0
40
62
  type: :runtime
41
63
  prerelease: false
42
64
  version_requirements: !ruby/object:Gem::Requirement
43
65
  requirements:
44
- - - ~>
66
+ - - "~>"
45
67
  - !ruby/object:Gem::Version
46
68
  version: 3.2.0
47
69
  - !ruby/object:Gem::Dependency
48
70
  name: omniauth-shopify-oauth2
49
71
  requirement: !ruby/object:Gem::Requirement
50
72
  requirements:
51
- - - ~>
73
+ - - "~>"
52
74
  - !ruby/object:Gem::Version
53
75
  version: 1.1.4
54
76
  type: :runtime
55
77
  prerelease: false
56
78
  version_requirements: !ruby/object:Gem::Requirement
57
79
  requirements:
58
- - - ~>
80
+ - - "~>"
59
81
  - !ruby/object:Gem::Version
60
82
  version: 1.1.4
61
83
  - !ruby/object:Gem::Dependency
62
84
  name: less-rails-bootstrap
63
85
  requirement: !ruby/object:Gem::Requirement
64
86
  requirements:
65
- - - ~>
87
+ - - "~>"
66
88
  - !ruby/object:Gem::Version
67
89
  version: '2.0'
68
90
  type: :runtime
69
91
  prerelease: false
70
92
  version_requirements: !ruby/object:Gem::Requirement
71
93
  requirements:
72
- - - ~>
94
+ - - "~>"
73
95
  - !ruby/object:Gem::Version
74
96
  version: '2.0'
75
97
  - !ruby/object:Gem::Dependency
76
98
  name: rake
77
99
  requirement: !ruby/object:Gem::Requirement
78
100
  requirements:
79
- - - '>='
101
+ - - ">="
80
102
  - !ruby/object:Gem::Version
81
103
  version: '0'
82
104
  type: :development
83
105
  prerelease: false
84
106
  version_requirements: !ruby/object:Gem::Requirement
85
107
  requirements:
86
- - - '>='
108
+ - - ">="
87
109
  - !ruby/object:Gem::Version
88
110
  version: '0'
89
111
  - !ruby/object:Gem::Dependency
90
112
  name: minitest
91
113
  requirement: !ruby/object:Gem::Requirement
92
114
  requirements:
93
- - - '>='
115
+ - - ">="
94
116
  - !ruby/object:Gem::Version
95
117
  version: '0'
96
118
  type: :development
97
119
  prerelease: false
98
120
  version_requirements: !ruby/object:Gem::Requirement
99
121
  requirements:
100
- - - '>='
122
+ - - ">="
101
123
  - !ruby/object:Gem::Version
102
124
  version: '0'
103
125
  - !ruby/object:Gem::Dependency
104
126
  name: mocha
105
127
  requirement: !ruby/object:Gem::Requirement
106
128
  requirements:
107
- - - '>='
129
+ - - ">="
108
130
  - !ruby/object:Gem::Version
109
131
  version: '0'
110
132
  type: :development
111
133
  prerelease: false
112
134
  version_requirements: !ruby/object:Gem::Requirement
113
135
  requirements:
114
- - - '>='
136
+ - - ">="
115
137
  - !ruby/object:Gem::Version
116
138
  version: '0'
117
139
  description: Creates a basic sessions controller for authenticating with your Shop
@@ -124,7 +146,7 @@ executables: []
124
146
  extensions: []
125
147
  extra_rdoc_files: []
126
148
  files:
127
- - .gitignore
149
+ - ".gitignore"
128
150
  - CHANGELOG
129
151
  - Gemfile
130
152
  - LICENSE
@@ -158,6 +180,7 @@ files:
158
180
  - lib/generators/shopify_app/templates/app/views/layouts/application.html.erb
159
181
  - lib/generators/shopify_app/templates/app/views/sessions/new.html.erb
160
182
  - lib/generators/shopify_app/templates/config/initializers/omniauth.rb
183
+ - lib/generators/shopify_app/templates/config/initializers/rails_4_shim.rb
161
184
  - lib/generators/shopify_app/templates/config/initializers/shopify_session_repository.rb
162
185
  - lib/generators/shopify_app/templates/public/404.html
163
186
  - lib/generators/shopify_app/templates/public/422.html
@@ -181,6 +204,7 @@ files:
181
204
  - test/config/shopify_app.yml
182
205
  - test/lib/shopify_app/configuration_test.rb
183
206
  - test/lib/shopify_app/in_memory_session_store_test.rb
207
+ - test/lib/shopify_app/login_protection_test.rb
184
208
  - test/lib/shopify_app/shopify_session_repository_test.rb
185
209
  - test/test_helper.rb
186
210
  homepage: http://www.shopify.com/developers
@@ -192,12 +216,12 @@ require_paths:
192
216
  - lib
193
217
  required_ruby_version: !ruby/object:Gem::Requirement
194
218
  requirements:
195
- - - '>='
219
+ - - ">="
196
220
  - !ruby/object:Gem::Version
197
221
  version: '0'
198
222
  required_rubygems_version: !ruby/object:Gem::Requirement
199
223
  requirements:
200
- - - '>='
224
+ - - ">="
201
225
  - !ruby/object:Gem::Version
202
226
  version: '0'
203
227
  requirements: []
@@ -206,12 +230,4 @@ rubygems_version: 2.2.2
206
230
  signing_key:
207
231
  specification_version: 4
208
232
  summary: This gem is used to get quickly started with the Shopify API
209
- test_files:
210
- - test/config/development_config_file.yml
211
- - test/config/empty_config_file.yml
212
- - test/config/other_config_file.yml
213
- - test/config/shopify_app.yml
214
- - test/lib/shopify_app/configuration_test.rb
215
- - test/lib/shopify_app/in_memory_session_store_test.rb
216
- - test/lib/shopify_app/shopify_session_repository_test.rb
217
- - test/test_helper.rb
233
+ test_files: []
metadata.gz.sig ADDED
Binary file