o2webappizer 0.1.0 → 0.1.1

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/README.md +4 -9
  4. data/bin/o2webappizer +1 -1
  5. data/lib/o2webappizer.rb +1 -0
  6. data/lib/o2webappizer/app_builder.rb +167 -0
  7. data/lib/o2webappizer/generators/app_generator.rb +29 -0
  8. data/lib/o2webappizer/version.rb +1 -1
  9. data/templates/{dot_gitignore → .gitignore.tt} +4 -5
  10. data/templates/.ruby-version.tt +1 -0
  11. data/templates/Gemfile.tt +101 -0
  12. data/templates/README.md.tt +33 -0
  13. data/templates/app/assets/javascripts/app.js.coffee +7 -0
  14. data/templates/app/assets/javascripts/application.js.coffee +27 -0
  15. data/templates/app/assets/stylesheets/application.sass +20 -0
  16. data/templates/app/controllers/application_controller.rb +9 -0
  17. data/templates/app/controllers/cms/authenticate.rb.tt +38 -0
  18. data/templates/app/helpers/application_helper.rb +2 -0
  19. data/templates/app/helpers/spree/frontend_helper_decorator.rb +12 -0
  20. data/templates/app/mailers/application_mailer.rb +3 -0
  21. data/templates/app/views/layouts/application.html.erb.tt +27 -0
  22. data/templates/app/views/layouts/mailer.html.erb +1 -0
  23. data/templates/app/views/layouts/mailer.text.erb +1 -0
  24. data/templates/app/views/spree/layouts/spree_application.html.erb +37 -0
  25. data/templates/app/views/spree/shared/_head.html.erb +14 -0
  26. data/templates/app/views/spree/shared/_main_nav_bar.html.erb +18 -0
  27. data/templates/config/database.yml.tt +99 -0
  28. data/templates/config/initializers/assets.rb.tt +19 -0
  29. data/templates/config/initializers/devise.rb.tt +1 -0
  30. data/templates/config/initializers/lazyload.rb +3 -0
  31. data/templates/config/initializers/rails_admin.rb +101 -0
  32. data/templates/config/initializers/rails_admin_cms.rb +17 -0
  33. data/templates/config/initializers/rich.rb +142 -0
  34. data/templates/config/initializers/simple_form.rb +165 -0
  35. data/templates/config/initializers/simple_form_bootstrap.rb +149 -0
  36. data/templates/config/initializers/spree.rb +55 -0
  37. data/templates/config/locales/en.yml +7 -0
  38. data/templates/config/locales/routes.en.yml +3 -0
  39. data/templates/config/locales/simple_form.en.yml +31 -0
  40. data/templates/config/routes.rb.tt +68 -0
  41. data/templates/config/secrets.yml.tt +28 -0
  42. data/templates/public/404.html +67 -0
  43. data/templates/public/422.html +67 -0
  44. data/templates/public/500.html +66 -0
  45. data/templates/public/favicon.ico +0 -0
  46. data/templates/public/images/full/missing.png +0 -0
  47. data/templates/public/images/huge/missing.png +0 -0
  48. data/templates/public/images/large/missing.png +0 -0
  49. data/templates/public/images/loading.gif +0 -0
  50. data/templates/public/images/medium/missing.png +0 -0
  51. data/templates/public/images/mini/missing.png +0 -0
  52. data/templates/public/images/original/missing.png +0 -0
  53. data/templates/public/images/rich_thumb/missing.png +0 -0
  54. data/templates/public/images/small/missing.png +0 -0
  55. data/templates/public/images/thumb/missing.png +0 -0
  56. data/templates/public/robots.txt.tt +15 -0
  57. data/templates/vendor/assets/javascripts/jquery.lazyload.js +242 -0
  58. data/templates/vendor/assets/javascripts/modernizr.js +3 -0
  59. data/templates/vendor/assets/javascripts/spree/backend/all.js +11 -0
  60. data/templates/vendor/assets/javascripts/spree/frontend/all.js +13 -0
  61. data/templates/vendor/assets/stylesheets/nprogress-variables.sass +3 -0
  62. data/templates/vendor/assets/stylesheets/spree/backend/all.css +10 -0
  63. data/templates/vendor/assets/stylesheets/spree/frontend/all.css +12 -0
  64. metadata +58 -3
@@ -0,0 +1,27 @@
1
+ # This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ # listed below.
3
+ #
4
+ # Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ # or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ #
7
+ # It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ # compiled file.
9
+ #
10
+ # Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ # about supported directives.
12
+ #
13
+ #= require jquery
14
+ #= require jquery_ujs
15
+ #= require jquery.turbolinks
16
+ #= require jquery.lazyload
17
+ #= require nprogress
18
+ #= require nprogress-turbolinks
19
+ #= require modernizr
20
+
21
+ #= require rails_admin_cms/all
22
+
23
+ #= require_tree .
24
+
25
+ #= require turbolinks
26
+
27
+ App.start()
@@ -0,0 +1,20 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ */
14
+
15
+ @import "font-awesome-sprockets"
16
+ @import "font-awesome"
17
+ @import "nprogress-variables"
18
+ @import "nprogress"
19
+
20
+ @import "rails_admin_cms/all"
@@ -0,0 +1,9 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+
6
+ include CMS::Localize
7
+ include CMS::Editing
8
+ include CMS::Authenticate
9
+ end
@@ -0,0 +1,38 @@
1
+ module CMS
2
+ module Authenticate
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ http_basic_authenticate_with name: '<%= app_name %>', password: '<%= SecureRandom.hex %>' if Rails.env.staging?
7
+
8
+ helper_method :current_user, :current_user?, :current_admin, :current_admin?
9
+ end
10
+
11
+ def current_user
12
+ <% if options.solidus? -%>
13
+ @current_user ||= spree_current_user
14
+ <% else -%>
15
+ # TODO: override or rewrite
16
+ @current_user ||= Struct.new(:admin?).new(true)
17
+ <% end -%>
18
+ end
19
+
20
+ def current_user?
21
+ return @is_current_user if defined? @is_current_user
22
+ @is_current_user = !!current_user
23
+ end
24
+
25
+ def current_admin
26
+ current_user if current_admin?
27
+ end
28
+
29
+ def current_admin?
30
+ return @is_current_admin if defined? @is_current_admin
31
+ @is_current_admin = !!current_user.try(:admin?)
32
+ end
33
+
34
+ def authenticate_admin_user!
35
+ raise SecurityError unless current_admin?
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,12 @@
1
+ module Spree
2
+ module FrontendHelper
3
+ def flash_messages(opts = {})
4
+ # it turns out that Spree helper is loaded later in the process,
5
+ # so BootstrapFlashMessages::Helpers.flash_messages is overridden
6
+ if flash.key? 'order_completed'
7
+ flash.delete('order_completed')
8
+ end
9
+ super
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationMailer < ActionMailer::Base
2
+ layout 'mailer'
3
+ end
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7 ]> <html class="ie ie6" lang="<%= I18n.locale %>"> <![endif]-->
3
+ <!--[if IE 7 ]> <html class="ie ie7" lang="<%= I18n.locale %>"> <![endif]-->
4
+ <!--[if IE 8 ]> <html class="ie ie8" lang="<%= I18n.locale %>"> <![endif]-->
5
+ <!--[if IE 9 ]> <html class="ie ie9" lang="<%= I18n.locale %>"> <![endif]-->
6
+ <!--[if gt IE 9]><!--><html lang="<%%= I18n.locale %%>"><!--<![endif]-->
7
+ <head>
8
+ <title><%%= cms_title '<%= camelized %>' %%></title>
9
+ <%%= cms_meta_data_tags %%>
10
+ <%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %%>
11
+ <%%= javascript_include_tag 'application', 'data-turbolinks-track' => true %%>
12
+ <%%= csrf_meta_tags %%>
13
+ </head>
14
+ <body class="<%%= cms_body_class %%>">
15
+
16
+ <%%= cms_flash_messages %%>
17
+ <div>
18
+ <%%= cms_locale_selector %%>
19
+ </div>
20
+ <div>
21
+ <%%= cms_link_to_edit_mode %%>
22
+ </div>
23
+
24
+ <%%= yield %%>
25
+
26
+ </body>
27
+ </html>
@@ -0,0 +1 @@
1
+ <%= yield %>
@@ -0,0 +1 @@
1
+ <%= yield %>
@@ -0,0 +1,37 @@
1
+ <!doctype html>
2
+ <!--[if lt IE 7 ]> <html class="ie ie6" lang="<%= I18n.locale %>"> <![endif]-->
3
+ <!--[if IE 7 ]> <html class="ie ie7" lang="<%= I18n.locale %>"> <![endif]-->
4
+ <!--[if IE 8 ]> <html class="ie ie8" lang="<%= I18n.locale %>"> <![endif]-->
5
+ <!--[if IE 9 ]> <html class="ie ie9" lang="<%= I18n.locale %>"> <![endif]-->
6
+ <!--[if gt IE 9]><!--><html lang="<%= I18n.locale %>"><!--<![endif]-->
7
+ <head data-hook="inside_head">
8
+ <%= render :partial => 'spree/shared/head' %>
9
+ </head>
10
+ <body class="<%= cms_body_class(body_class) %>" id="<%= @body_id || 'default' %>" data-hook="body">
11
+
12
+ <div class="container">
13
+
14
+ <%= render :partial => 'spree/shared/header' %>
15
+
16
+ <div id="wrapper" class="row" data-hook>
17
+
18
+ <%= breadcrumbs(@taxon) %>
19
+
20
+ <%= render :partial => 'spree/shared/sidebar' if content_for? :sidebar %>
21
+
22
+ <div id="content" class="columns <%= !content_for?(:sidebar) ? "sixteen" : "twelve omega" %>" data-hook>
23
+ <%= cms_flash_messages %>
24
+ <%= yield %>
25
+ </div>
26
+
27
+ <%= yield :templates %>
28
+
29
+ </div>
30
+
31
+ <%= render :partial => 'spree/shared/footer' %>
32
+
33
+ </div>
34
+
35
+ <%= render :partial => 'spree/shared/google_analytics' %>
36
+ </body>
37
+ </html>
@@ -0,0 +1,14 @@
1
+ <meta charset="utf-8">
2
+ <title><%= cms_title(title) %></title>
3
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
4
+ <meta content="width=device-width, initial-scale=1.0, maximum-scale=1" name="viewport">
5
+ <%== cms_meta_data_tags(meta_data_tags) %>
6
+ <%= canonical_tag(current_store.url) %>
7
+ <%= favicon_link_tag 'favicon.ico' %>
8
+ <%= stylesheet_link_tag 'spree/frontend/all', :media => 'screen' %>
9
+ <%= csrf_meta_tags %>
10
+ <%= javascript_include_tag 'spree/frontend/all' %>
11
+ <!--[if lt IE 9]>
12
+ <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6/html5shiv.min.js"></script>
13
+ <![endif]-->
14
+ <%= yield :head %>
@@ -0,0 +1,18 @@
1
+ <nav class="columns sixteen">
2
+ <% if current_admin? %>
3
+ <li><%= cms_link_to_edit_mode %></li>
4
+ <li><%= link_to "Admin", spree.admin_orders_path, data: { 'no-turbolink' => true } %></li>
5
+ <% end %>
6
+ <%= cms_locale_selector %>
7
+ <ul id="main-nav-bar" class="inline" data-hook>
8
+ <li></li>
9
+ <li id="home-link" data-hook><%= link_to Spree.t(:home), spree.root_path %></li>
10
+ <li id="link-to-cart" data-hook>
11
+ <noscript>
12
+ <%= link_to Spree.t(:cart), '/cart' %>
13
+ </noscript>
14
+ &nbsp;
15
+ </li>
16
+ <script>Spree.fetch_cart()</script>
17
+ </ul>
18
+ </nav>
@@ -0,0 +1,99 @@
1
+ # PostgreSQL. Versions 8.2 and up are supported.
2
+ #
3
+ # Install the pg driver:
4
+ # gem install pg
5
+ # On OS X with Homebrew:
6
+ # gem install pg -- --with-pg-config=/usr/local/bin/pg_config
7
+ # On OS X with MacPorts:
8
+ # gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
9
+ # On Windows:
10
+ # gem install pg
11
+ # Choose the win32 build.
12
+ # Install PostgreSQL and put its /bin directory on your path.
13
+ #
14
+ # Configure Using Gemfile
15
+ # gem 'pg'
16
+ #
17
+ default: &default
18
+ adapter: postgresql
19
+ encoding: unicode
20
+ # For details on connection pooling, see rails configuration guide
21
+ # http://guides.rubyonrails.org/configuring.html#database-pooling
22
+ pool: 5
23
+ host: 127.0.0.1
24
+ username: postgres
25
+ password: postgres
26
+
27
+ development:
28
+ <<: *default
29
+ database: <%= app_name %>_development
30
+
31
+ # The specified database role being used to connect to postgres.
32
+ # To create additional roles in postgres see `$ createuser --help`.
33
+ # When left blank, postgres will use the default role. This is
34
+ # the same name as the operating system user that initialized the database.
35
+ #username: <%= app_name %>
36
+
37
+ # The password associated with the postgres role (username).
38
+ #password:
39
+
40
+ # Connect on a TCP socket. Omitted by default since the client uses a
41
+ # domain socket that doesn't need configuration. Windows does not have
42
+ # domain sockets, so uncomment these lines.
43
+ #host: localhost
44
+
45
+ # The TCP port the server listens on. Defaults to 5432.
46
+ # If your server runs on a different port number, change accordingly.
47
+ #port: 5432
48
+
49
+ # Schema search path. The server defaults to $user,public
50
+ #schema_search_path: myapp,sharedapp,public
51
+
52
+ # Minimum log levels, in increasing order:
53
+ # debug5, debug4, debug3, debug2, debug1,
54
+ # log, notice, warning, error, fatal, and panic
55
+ # Defaults to warning.
56
+ #min_messages: notice
57
+
58
+ # Warning: The database defined as "test" will be erased and
59
+ # re-generated from your development database when you run "rake".
60
+ # Do not set this db to the same as development or production.
61
+ test:
62
+ <<: *default
63
+ database: <%= app_name %>_test
64
+
65
+ vagrant:
66
+ <<: *default
67
+ database: <%= app_name %>_vagrant
68
+ username: <%= app_name %>
69
+
70
+ staging:
71
+ <<: *default
72
+ database: <%= app_name %>_staging
73
+ username: <%= app_name %>
74
+ password: <%= SecureRandom.hex %>
75
+
76
+ # As with config/secrets.yml, you never want to store sensitive information,
77
+ # like your database password, in your source code. If your source code is
78
+ # ever seen by anyone, they now have access to your database.
79
+ #
80
+ # Instead, provide the password as a unix environment variable when you boot
81
+ # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
82
+ # for a full rundown on how to provide these environment variables in a
83
+ # production deployment.
84
+ #
85
+ # On Heroku and other platform providers, you may have a full connection URL
86
+ # available as an environment variable. For example:
87
+ #
88
+ # DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
89
+ #
90
+ # You can use this database configuration with:
91
+ #
92
+ # production:
93
+ # url: <%%= ENV['DATABASE_URL'] %>
94
+ #
95
+ production:
96
+ <<: *default
97
+ database: <%= app_name %>_production
98
+ username: <%= app_name %>
99
+ password: <%= SecureRandom.hex %>
@@ -0,0 +1,19 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Version of your assets, change this if you want to expire all your assets.
4
+ Rails.application.config.assets.version = '1.0'
5
+
6
+ # Add additional assets to the asset load path
7
+ # Rails.application.config.assets.paths << Emoji.images_path
8
+
9
+ # Precompile additional assets.
10
+ # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
11
+ Rails.application.config.assets.precompile += %w[
12
+ rich/editor.css
13
+ bx_loader.gif
14
+ controls.png
15
+ <% if options.solidus? -%>
16
+ noimage/mini.png
17
+ icons/delete.png
18
+ <% end -%>
19
+ ]
@@ -0,0 +1 @@
1
+ Devise.secret_key = '<%= SecureRandom.hex(50) %>'
@@ -0,0 +1,3 @@
1
+ Lazyload::Rails.configure do |config|
2
+ config.placeholder = "/images/loading.gif"
3
+ end
@@ -0,0 +1,101 @@
1
+ RailsAdmin.config do |config|
2
+ ### Popular gems integration
3
+ config.browser_validations = false
4
+
5
+ ## == Devise ==
6
+ # config.authenticate_with do
7
+ # warden.authenticate! scope: :user
8
+ # end
9
+ # config.current_user_method(&:current_user)
10
+
11
+ ## == Cancan ==
12
+ # config.authorize_with :cancan
13
+
14
+ ## == Pundit ==
15
+ # config.authorize_with :pundit
16
+
17
+ ## == PaperTrail ==
18
+ # config.audit_with :paper_trail, 'User', 'PaperTrail::Version' # PaperTrail >= 3.0.0
19
+
20
+ ### More at https://github.com/sferik/rails_admin/wiki/Base-configuration
21
+
22
+ config.actions do
23
+ dashboard # mandatory
24
+ index # mandatory
25
+ new do
26
+ except Viewable.models + Form.structure_models + %w[
27
+ UniqueKey
28
+ Setting
29
+ Rich::RichFile
30
+ Form::Row
31
+ ]
32
+ end
33
+ export do
34
+ except Viewable.models + Form.structure_models + %w[
35
+ UniqueKey
36
+ ]
37
+ end
38
+ bulk_delete do
39
+ except Viewable.models + Form.structure_models + %w[
40
+ UniqueKey
41
+ Setting
42
+ ]
43
+ end
44
+ show do
45
+ except Viewable.models + Form.structure_models + %w[
46
+ UniqueKey
47
+ ]
48
+ end
49
+ edit do
50
+ except %w[
51
+ UniqueKey
52
+ ]
53
+ end
54
+ delete do
55
+ except Form.structure_models + %w[
56
+ UniqueKey
57
+ Setting
58
+ ]
59
+ end
60
+ show_in_app
61
+
62
+ ## With an audit adapter, you can add:
63
+ # history_index
64
+ # history_show
65
+ end
66
+
67
+ config.model 'Rich::RichFile' do
68
+ navigation_label I18n.t('rich.file.navigation')
69
+ label I18n.t('rich.file.one')
70
+ label_plural I18n.t('rich.file.other')
71
+
72
+ object_label_method do
73
+ :name
74
+ end
75
+
76
+ configure :rich_file, :jcrop
77
+
78
+ list do
79
+ field :rich_file
80
+ field :rich_file_file_name
81
+ field :simplified_type
82
+ field :owner_type
83
+ end
84
+
85
+ show do
86
+ field :rich_file
87
+ field :owner_type
88
+ end
89
+
90
+ edit do
91
+ field :rich_file do
92
+ fit_image true
93
+ end
94
+ field :owner_type, :enum do
95
+ enum do
96
+ ['cms']
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end