beyond_canvas 0.16.2.pre → 0.19.2.pre

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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/beyond_canvas_manifest.js +1 -0
  3. data/app/assets/images/icons/arrow_right.svg +1 -0
  4. data/app/assets/images/icons/close.svg +1 -0
  5. data/app/assets/images/icons/home.svg +1 -0
  6. data/app/assets/javascripts/beyond_canvas/base.js +120 -246
  7. data/app/assets/stylesheets/beyond_canvas/base.scss +10 -1
  8. data/app/assets/stylesheets/beyond_canvas/components/_action_bar.scss +28 -0
  9. data/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss +29 -0
  10. data/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +1 -1
  11. data/app/assets/stylesheets/beyond_canvas/components/_debug.scss +10 -0
  12. data/app/assets/stylesheets/beyond_canvas/components/_forms.scss +11 -14
  13. data/app/assets/stylesheets/beyond_canvas/components/_grids.scss +12 -0
  14. data/app/assets/stylesheets/beyond_canvas/components/_inputs.scss +5 -0
  15. data/app/assets/stylesheets/beyond_canvas/components/_main.scss +12 -13
  16. data/app/assets/stylesheets/beyond_canvas/components/_margins.scss +12 -0
  17. data/app/assets/stylesheets/beyond_canvas/components/_menu.scss +50 -0
  18. data/app/assets/stylesheets/beyond_canvas/components/_modals.scss +35 -0
  19. data/app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss +35 -0
  20. data/app/assets/stylesheets/beyond_canvas/components/_sidebar.scss +53 -0
  21. data/app/assets/stylesheets/beyond_canvas/components/_texts.scss +8 -0
  22. data/app/assets/stylesheets/beyond_canvas/components/_titles.scss +7 -0
  23. data/app/assets/stylesheets/beyond_canvas/settings/_variables.scss +64 -9
  24. data/app/controllers/beyond_canvas/application_controller.rb +3 -0
  25. data/app/controllers/beyond_canvas/authentications_controller.rb +37 -30
  26. data/app/controllers/concerns/beyond_canvas/authentication.rb +1 -12
  27. data/app/controllers/concerns/beyond_canvas/locale_management.rb +5 -4
  28. data/app/form_builders/beyond_canvas/form_builder.rb +8 -6
  29. data/app/helpers/beyond_canvas/authentications_helper.rb +28 -0
  30. data/app/helpers/beyond_canvas/cockpit_app_helper.rb +17 -0
  31. data/app/helpers/beyond_canvas/controller_helper.rb +9 -0
  32. data/app/helpers/beyond_canvas/debug_helper.rb +9 -0
  33. data/app/helpers/beyond_canvas/locale_switch_helper.rb +5 -1
  34. data/app/javascript/beyond_canvas/base.js +3 -0
  35. data/app/javascript/beyond_canvas/initializers/buttons.js +65 -19
  36. data/app/javascript/beyond_canvas/initializers/flash.js +9 -2
  37. data/app/javascript/beyond_canvas/initializers/inputs.js +4 -1
  38. data/app/javascript/beyond_canvas/initializers/modals.js +14 -0
  39. data/app/views/beyond_canvas/authentications/new.html.erb +19 -10
  40. data/app/views/beyond_canvas/shared/_action_bar.html.erb +15 -0
  41. data/app/views/beyond_canvas/shared/_breadcrumbs.html.erb +14 -0
  42. data/app/views/beyond_canvas/shared/_flash.html.erb +22 -12
  43. data/app/views/beyond_canvas/shared/_locales.html.erb +8 -0
  44. data/app/views/beyond_canvas/shared/_menu.html.erb +31 -0
  45. data/app/views/beyond_canvas/shared/_modal.html.erb +6 -0
  46. data/app/views/beyond_canvas/shared/_sidebar.html.erb +16 -0
  47. data/app/views/layouts/beyond_canvas/application.html.erb +31 -0
  48. data/app/views/layouts/beyond_canvas/public.html.erb +11 -4
  49. data/config/locales/en.yml +5 -0
  50. data/config/routes.rb +5 -4
  51. data/lib/beyond_canvas.rb +12 -12
  52. data/lib/beyond_canvas/configuration.rb +11 -6
  53. data/lib/beyond_canvas/engine.rb +5 -6
  54. data/lib/beyond_canvas/menu_item_registration.rb +19 -0
  55. data/lib/beyond_canvas/parameter_sanitizer.rb +1 -1
  56. data/lib/beyond_canvas/rails/routes.rb +8 -7
  57. data/lib/beyond_canvas/version.rb +1 -1
  58. data/lib/generators/beyond_canvas/controller/controller_generator.rb +1 -6
  59. data/lib/generators/beyond_canvas/controller/templates/shops_controller.rb +20 -0
  60. data/lib/generators/beyond_canvas/custom_menu/custom_menu_generator.rb +13 -0
  61. data/lib/generators/beyond_canvas/custom_menu/templates/beyond_canvas_custom_menu.html.erb +32 -0
  62. data/lib/generators/beyond_canvas/custom_styles/custom_styles_generator.rb +1 -1
  63. data/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +55 -9
  64. data/lib/generators/beyond_canvas/install/install_generator.rb +3 -5
  65. data/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +52 -14
  66. data/lib/generators/beyond_canvas/{auth_model/auth_model_generator.rb → model/model_generator.rb} +4 -5
  67. data/lib/generators/beyond_canvas/{auth_model → model}/templates/migration.erb +2 -4
  68. data/lib/generators/beyond_canvas/{auth_model → model}/templates/model.erb +0 -0
  69. data/lib/generators/beyond_canvas/views/views_generator.rb +4 -6
  70. data/lib/models/concerns/authentication.rb +57 -0
  71. data/lib/models/concerns/utils.rb +79 -0
  72. data/lib/models/shop.rb +12 -0
  73. metadata +73 -31
  74. data/app/controllers/concerns/beyond_canvas/resource_management.rb +0 -33
  75. data/app/javascript/beyond_canvas/initializers/functions.js +0 -41
  76. data/app/views/beyond_canvas/locales/_edit.html.erb +0 -8
  77. data/lib/beyond_canvas/models/authentication.rb +0 -66
  78. data/lib/beyond_canvas/models/shop.rb +0 -28
  79. data/lib/beyond_canvas/models/utils.rb +0 -55
  80. data/lib/generators/beyond_canvas/controller/templates/controller.erb +0 -37
@@ -1,17 +1,26 @@
1
- <div class='card card--padding'>
1
+ <% app_name = BeyondCanvas.configuration.site_title %>
2
+ <% i18n_scope = 'beyond_canvas.authentications.new' %>
2
3
 
3
- <%= form_for(resource, as: resource_name) do |f| %>
4
+ <div class="card card--padding">
4
5
 
5
- <h2 class='card__headline'>Install <%= BeyondCanvas.configuration.site_title %> in your shop</h2>
6
+ <%= form_with(url: callback_path, method: :post, scope: :shop, model: @shop, local: true, builder: BeyondCanvas::FormBuilder) do |f| %>
6
7
 
7
- <%= f.hidden_field :code, value: params[:code] || resource.code %>
8
- <%= f.hidden_field :signature, value: params[:signature] || resource.signature %>
9
- <%= f.hidden_field :return_url, value: params[:return_url] || resource.return_url %>
10
- <%= f.hidden_field :api_url, value: params[:api_url] || resource.api_url %>
11
- <%= f.hidden_field :access_token_url, value: params[:access_token_url] || resource.access_token_url %>
8
+ <h2 class="card__headline"><%= I18n.t('headline', app_name: app_name, scope: i18n_scope) %></h2>
12
9
 
13
- <div class='form__actions--spaced'>
14
- <%= f.button 'Save', type: :submit, class: 'button__solid--primary' %>
10
+ <p class="margin--bottom"><%= I18n.t('body', app_name: app_name, scope: i18n_scope) %></p>
11
+
12
+ <%# Don't delete or modify any ot these hidden fields. They are used on shop identification and authentication %>
13
+
14
+ <%= f.hidden_field :code, value: params[:code] || @shop.code %>
15
+ <%= f.hidden_field :signature, value: params[:signature] || @shop.signature %>
16
+ <%= f.hidden_field :return_url, value: params[:return_url] || @shop.return_url %>
17
+ <%= f.hidden_field :api_url, value: params[:api_url] || @shop.api_url %>
18
+ <%= f.hidden_field :access_token_url, value: params[:access_token_url] || @shop.access_token_url %>
19
+
20
+ <%# Add HERE your custom shop fields %>
21
+
22
+ <div class="form__actions--spaced">
23
+ <%= f.button I18n.t('actions.install', scope: i18n_scope), type: :submit, class: 'button__solid--primary' %>
15
24
  </div>
16
25
 
17
26
  <% end %>
@@ -0,0 +1,15 @@
1
+ <% if action_bar_content? %>
2
+
3
+ <div class="action_bar<% if menu_content? %> action_bar--menu<% end %>">
4
+
5
+ <div class="action_bar--left">
6
+ <%= yield :action_bar_left %>
7
+ </div>
8
+
9
+ <div class="action_bar--right">
10
+ <%= yield :action_bar_right %>
11
+ </div>
12
+
13
+ </div>
14
+
15
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <% if is_cockpit_app? %>
2
+
3
+ <div class='breadcrumbs'>
4
+
5
+ <%= inline_svg_tag 'icons/home.svg' %>
6
+
7
+ <% breadcrumb_trail do |crumb| %>
8
+ <%= link_to crumb.name, crumb.url, class: "breadcrumb__item#{ '--current' if crumb.current? }" %>
9
+ <% unless crumb.current? %><%= inline_svg_tag 'icons/arrow_right.svg' %><% end %>
10
+ <% end %>
11
+
12
+ </div>
13
+
14
+ <% end %>
@@ -1,13 +1,23 @@
1
- <% flash.each do |key, value| %>
2
- <div class="flash">
3
- <div class="flash__icon flash__icon--<%= key %>">
4
- <%= get_flash_icon(key) %>
1
+ <div id="flash">
2
+
3
+ <% flash.each do |key, value| %>
4
+
5
+ <div class="flash">
6
+
7
+ <div class="flash__icon flash__icon--<%= key %>">
8
+ <%= get_flash_icon(key) %>
9
+ </div>
10
+
11
+ <div class="flash__message">
12
+ <%= value %>
13
+ </div>
14
+
15
+ <div class="flash__close">
16
+ <%= inline_svg_tag 'icons/flash_close.svg' %>
17
+ </div>
18
+
5
19
  </div>
6
- <div class="flash__message">
7
- <%= value %>
8
- </div>
9
- <div class="flash__close">
10
- <%= inline_svg_tag 'icons/flash_close.svg' %>
11
- </div>
12
- </div>
13
- <% end %>
20
+
21
+ <% end %>
22
+
23
+ </div>
@@ -0,0 +1,8 @@
1
+ <% if show_locale_switch? && !is_cockpit_app? %>
2
+ <%= form_for :system, url: beyond_canvas.update_locale_path, method: :put do |f| %>
3
+ <%= f.select :locale, I18n.available_locales.collect { |l| [translate_locale(l), l] },
4
+ { selected: cookies[:locale] },
5
+ class: 'select--locale',
6
+ onchange: 'this.form.submit()' %>
7
+ <% end %>
8
+ <% end %>
@@ -0,0 +1,31 @@
1
+ <% if menu_content? %>
2
+
3
+ <div class="menu">
4
+
5
+ <div class="menu--left">
6
+ <%= render 'beyond_canvas/shared/logo' %>
7
+ </div>
8
+
9
+ <div class="menu--center">
10
+
11
+ <% BeyondCanvas.configuration.menu_items.each do |menu_item| %>
12
+ <% name, url, options = menu_item.name.to_s, menu_item.url.to_s, menu_item.options %>
13
+
14
+ <% url, external_url = respond_to?(url) ? [send(url), false] : [url, true] %>
15
+ <% name = defined?(I18n) && I18n.exists?(name) ? I18n.t(name) : name %>
16
+
17
+ <% path = Rails.application.routes.recognize_path(url) %>
18
+
19
+ <% options = options.merge(class: 'menu__item--active') { |_key, old_val, new_val| [new_val, old_val].join(' ') } if !external_url && (path[:controller] == params[:controller]) %>
20
+ <% options = options.merge(class: 'menu__item') { |_key, old_val, new_val| [new_val, old_val].join(' ') } %>
21
+
22
+ <%= link_to name, url, options %>
23
+ <% end %>
24
+
25
+ </div>
26
+
27
+ <div class="menu--right"></div>
28
+
29
+ </div>
30
+
31
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <div class="modal__background" id="modal">
2
+ <div class="relative card card--padding">
3
+ <span onClick= "$.closeModal()"><%= inline_svg_tag 'icons/close.svg', class: 'modal__close' %></span>
4
+ <div id="modal__content"></div>
5
+ </div>
6
+ </div>
@@ -0,0 +1,16 @@
1
+ <% if is_cockpit_app? && Rails.env.development? %>
2
+ <div class="sidebar">
3
+ <div class="sidebar__header">
4
+ <div class="sidebar__logo"></div>
5
+ </div>
6
+ <div class="sidebar__item sidebar__item--selected"></div>
7
+ <div class="sidebar__item"></div>
8
+ <div class="sidebar__item"></div>
9
+ <div class="sidebar__item"></div>
10
+ <div class="sidebar__footer">
11
+ <div class="sidebar__icon"></div>
12
+ <div class="sidebar__icon"></div>
13
+ <div class="sidebar__icon"></div>
14
+ </div>
15
+ </div>
16
+ <% end %>
@@ -0,0 +1,31 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <%= render 'beyond_canvas/shared/head' %>
5
+
6
+ <body class="body--application"<% if is_cockpit_app? && Rails.env.development? %> style="display: flex;"<% end %>>
7
+
8
+ <%= render 'beyond_canvas/shared/sidebar' %>
9
+
10
+ <main class="main <%= params[:controller].gsub(/[\/_]/, "-") %>--<%= params[:action] %>">
11
+
12
+ <%= render 'beyond_canvas/shared/flash' %>
13
+ <%= render 'beyond_canvas/shared/locales' %>
14
+ <%= render 'beyond_canvas/shared/modal' %>
15
+ <%= render 'beyond_canvas/shared/menu' %>
16
+ <%= render 'beyond_canvas/shared/action_bar' %>
17
+
18
+ <div class="main-wrapper<% if action_bar_content? %> main-wrapper--action_bar<% end %>"<% if content_for?(:max_width)%> style="max-width: <%= yield :max_width %>"<% end %>>
19
+
20
+ <%= render 'beyond_canvas/shared/breadcrumbs' %>
21
+
22
+ <%= yield %>
23
+
24
+ <%= debug(params) if debug_mode? %>
25
+
26
+ </div>
27
+
28
+ </main>
29
+
30
+ </body>
31
+ </html>
@@ -4,15 +4,22 @@
4
4
  <%= render 'beyond_canvas/shared/head' %>
5
5
 
6
6
  <body class="body--public">
7
+
7
8
  <main class="main <%= params[:controller].gsub(/[\/_]/, "-") %>--<%= params[:action] %>">
8
- <div id="flash">
9
- <%= render 'beyond_canvas/shared/flash' %>
10
- </div>
11
- <%= render 'beyond_canvas/locales/edit' %>
9
+
10
+ <%= render 'beyond_canvas/shared/flash' %>
11
+ <%= render 'beyond_canvas/shared/locales' %>
12
+
12
13
  <div class="main-wrapper">
14
+
13
15
  <%= render 'beyond_canvas/shared/logo' %>
16
+
14
17
  <%= yield %>
18
+
15
19
  </div>
20
+
21
+ <%= debug(params) if debug_mode? %>
22
+
16
23
  </main>
17
24
  </body>
18
25
  </html>
@@ -1,4 +1,9 @@
1
1
  en:
2
2
  beyond_canvas:
3
3
  authentications:
4
+ new:
5
+ headline: Install %{app_name} in your shop
6
+ body: You are about to install %{app_name} in your shop. For continuing with this process, press the install button below.
7
+ actions:
8
+ install: Install
4
9
  failure: Shop could not be saved
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  BeyondCanvas::Engine.routes.draw do
4
- put '/locale', to: 'system#update_locale', as: :update_locale
4
+ put 'locale', to: 'system#update_locale', as: :update_locale
5
5
 
6
- def create_default_routes(resource_name)
7
- resources resource_name, controller: 'authentications', except: :destroy
6
+ def create_default_routes
7
+ get 'callback', to: 'authentications#new'
8
+ post 'callback', to: 'authentications#install'
8
9
  end
9
10
 
10
- create_default_routes(BeyondCanvas.auth_model.pluralize.to_sym) unless BeyondCanvas.use_rails_app_controller
11
+ create_default_routes unless BeyondCanvas.use_rails_app_controller
11
12
  end
@@ -8,30 +8,30 @@ require 'jquery-rails'
8
8
  require 'bourbon'
9
9
  require 'sassc-rails'
10
10
  require 'inline_svg'
11
+ require 'loaf'
11
12
  require 'http/accept'
12
13
  require 'premailer/rails'
13
14
 
14
15
  require 'beyond_api'
15
16
  require 'attr_encrypted'
16
- require 'blind_index'
17
17
 
18
18
  module BeyondCanvas # :nodoc:
19
- autoload :AssetRegistration, 'beyond_canvas/asset_registration'
20
- autoload :Configuration, 'beyond_canvas/configuration'
19
+ autoload :AssetRegistration, 'beyond_canvas/asset_registration'
20
+ autoload :Configuration, 'beyond_canvas/configuration'
21
+ autoload :MenuItemRegistration, 'beyond_canvas/menu_item_registration'
22
+ autoload :ParameterSanitizer, 'beyond_canvas/parameter_sanitizer'
21
23
 
22
24
  module Models # :nodoc:
23
- autoload :Authentication, 'beyond_canvas/models/authentication'
24
- autoload :Shop, 'beyond_canvas/models/shop'
25
- autoload :Utils, 'beyond_canvas/models/utils'
26
- end
25
+ autoload :Shop, 'models/shop'
27
26
 
28
- autoload :ParameterSanitizer, 'beyond_canvas/parameter_sanitizer'
27
+ module Concerns
28
+ autoload :Authentication, 'models/concerns/authentication'
29
+ autoload :Utils, 'models/concerns/utils'
30
+ end
31
+ end
29
32
 
30
33
  mattr_accessor :use_rails_app_controller
31
- @@use_rails_app_controller = false # rubocop:disable Style/ClassVars
32
-
33
- mattr_accessor :auth_model
34
- @@auth_model = 'shop' # rubocop:disable Style/ClassVars
34
+ @@use_rails_app_controller = false
35
35
 
36
36
  class << self
37
37
  def configuration
@@ -2,18 +2,23 @@
2
2
 
3
3
  module BeyondCanvas
4
4
  class Configuration # :nodoc:
5
- attr_accessor :site_title, :site_logo, :favicon, :skip_webpacker, :encryption_key, :blind_index_key, :namespace
5
+ attr_accessor :site_title, :site_logo, :favicon, :skip_webpacker, :encryption_key, :namespace, :cockpit_app,
6
+ :open_app_url, :preinstalled, :debug_mode
6
7
 
7
8
  include AssetRegistration
9
+ include MenuItemRegistration
8
10
 
9
11
  def initialize
10
- @site_title = ::Rails.application.class.name.split('::').first.humanize
11
- @site_logo = nil
12
- @favicon = nil
13
- @skip_webpacker = false
12
+ @cockpit_app = false
13
+ @debug_mode = false
14
14
  @encryption_key = nil
15
- @blind_index_key = nil
15
+ @favicon = nil
16
16
  @namespace = '/'
17
+ @open_app_url = nil
18
+ @preinstalled = false
19
+ @site_logo = nil
20
+ @site_title = ::Rails.application.class.name.split('::').first.humanize
21
+ @skip_webpacker = false
17
22
  end
18
23
 
19
24
  def setup!
@@ -13,22 +13,21 @@ module BeyondCanvas
13
13
  BeyondCanvas.configuration.javascripts.each do |path|
14
14
  app.config.assets.precompile << path
15
15
  end
16
+
17
+ app.config.assets.precompile << 'beyond_canvas_manifest.js'
16
18
  end
17
19
 
18
20
  config.before_initialize do
19
21
  ActiveSupport.on_load :action_controller do
20
- include ::BeyondCanvas::Authentication
21
22
  include ::BeyondCanvas::LocaleManagement
22
- include ::BeyondCanvas::ResourceManagement
23
23
  include ::BeyondCanvas::RequestValidation
24
24
  include ::BeyondCanvas::StatusCodes
25
+ include ::BeyondCanvas::AuthenticationsHelper
26
+ include ::BeyondCanvas::DebugHelper
27
+ include ::BeyondCanvas::ControllerHelper
25
28
 
26
29
  ::ActionController::Base.helper BeyondCanvas::Engine.helpers
27
30
  end
28
-
29
- ActiveSupport.on_load :action_mailer do
30
- layout 'beyond_canvas/mailer'
31
- end
32
31
  end
33
32
  end
34
33
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BeyondCanvas
4
+ module MenuItemRegistration # :nodoc:
5
+ MenuItem = Struct.new(:name, :url, :options)
6
+
7
+ def register_menu_item(name, url, options = {})
8
+ menu_items.add MenuItem.new(name, url, options)
9
+ end
10
+
11
+ def menu_items
12
+ @menu_items ||= Set.new
13
+ end
14
+
15
+ def clear_menu_items!
16
+ menu_items.clear
17
+ end
18
+ end
19
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module BeyondCanvas
4
4
  class ParameterSanitizer # :nodoc:
5
- DEFAULT_PERMITTED_ATTRIBUTES = %i[code signature return_url api_url access_token_url].freeze
5
+ DEFAULT_PERMITTED_ATTRIBUTES = %i[code signature return_url api_url access_token_url]
6
6
 
7
7
  def initialize(resource_name, params)
8
8
  @params = params
@@ -3,18 +3,19 @@
3
3
  module ActionDispatch
4
4
  module Routing
5
5
  class Mapper # :nodoc:
6
- def beyond_canvas_for(*resources)
6
+ def beyond_canvas_routes(options = nil)
7
7
  mount BeyondCanvas::Engine => BeyondCanvas.configuration.namespace
8
8
 
9
- resource_name, options = resources
10
- BeyondCanvas.auth_model = resource_name.to_s.singularize
11
- BeyondCanvas.use_rails_app_controller = options.present? && options[:controller].present?
9
+ BeyondCanvas.use_rails_app_controller = options.present? && options[:custom_controller].present?
12
10
 
13
- set_routes(resource_name, options[:controller]) if BeyondCanvas.use_rails_app_controller
11
+ set_routes if BeyondCanvas.use_rails_app_controller
14
12
  end
15
13
 
16
- def set_routes(resource_name, controller)
17
- resources resource_name, controller: controller
14
+ def set_routes
15
+ scope BeyondCanvas.configuration.namespace do
16
+ get 'callback', controller: :authentications, action: :new
17
+ post 'callback', controller: :authentications, action: :install
18
+ end
18
19
  end
19
20
  end
20
21
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BeyondCanvas
4
- VERSION = '0.16.2.pre'
4
+ VERSION = '0.19.2.pre'
5
5
  end
@@ -1,19 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails/generators/active_record'
4
-
5
3
  module BeyondCanvas
6
4
  module Generators
7
5
  class ControllerGenerator < Rails::Generators::Base # :nodoc:
8
6
  desc 'Creates an inherited Beyond Canvas controller in the app/controllers folder'
9
7
 
10
- argument :scope, required: true, desc: 'The scope to create the controller, e.g. shops, users'
11
-
12
8
  source_root File.expand_path('templates', __dir__)
13
9
 
14
10
  def create_controller
15
- template 'controller.erb',
16
- "app/controllers/#{scope}_controller.rb"
11
+ template 'shops_controller.rb', "app/controllers/shops_controller.rb"
17
12
  end
18
13
  end
19
14
  end