o2webappizer 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f827145c752dc541e689af955856bc88b7d42b8b
4
- data.tar.gz: 5c990c20b28d0097bbbc622f9ad329dad162ebd7
3
+ metadata.gz: ca0c4bac732b530dbc866e3f7cdd7e2e0f977019
4
+ data.tar.gz: 54d84655ceaea893416c6df3aa9d0b62d5f228d8
5
5
  SHA512:
6
- metadata.gz: 15fc25cfc7fb2fd4f9e4a06dc468b5531cc1d52467f79cfba94055caf9bce0226480c46e230237344cd5b59ca946c52676a02548ae91b5019447b98520d5342e
7
- data.tar.gz: fe53c2eb39e291af9cc3e24ad95ecaf95cd63bb36c9fadae92fa21446c51e6652f90ed44c4efd367234ba462e15f8cb13dfbccc73d98a6936f556167514ebb7d
6
+ metadata.gz: 6bc2c7b72e7549239c9d2dd93330f062ed0d53c933676ce208baca0bcf3d5dcf5e6f41872e55e6ebb5892b34de683d6aa9a278cc211584131fd3a1c148d43470
7
+ data.tar.gz: ee0177bde7ed9013d4cccba81d1569e9738f6730e8dfb0224428b89cb662ec5f96817bb0d77b0cca3e146a4b3b17ff978d2a240912cd59252271ee443d8661bb
data/.gitignore CHANGED
@@ -11,3 +11,5 @@ Gemfile.lock
11
11
  /pkg/
12
12
  /spec/reports/
13
13
  /tmp/
14
+
15
+ /dummy/
data/README.md CHANGED
@@ -6,19 +6,14 @@ TODO: Delete this and the text above, and describe your gem
6
6
 
7
7
  ## Installation
8
8
 
9
- Add this line to your application's Gemfile:
9
+ Install the gem:
10
10
 
11
- ```ruby
12
- gem 'o2webappizer'
13
- ```
14
-
15
- And then execute:
11
+ $ gem install o2webappizer
16
12
 
17
- $ bundle
13
+ To output the current gem version:
18
14
 
19
- Or install it yourself as:
15
+ $ o2webappizer -v
20
16
 
21
- $ gem install o2webappizer
22
17
 
23
18
  ## Usage
24
19
 
data/bin/o2webappizer CHANGED
@@ -13,6 +13,6 @@ end
13
13
 
14
14
  templates_root = File.expand_path(File.join("..", "templates"), File.dirname(__FILE__))
15
15
  O2webappizer::AppGenerator.source_root templates_root
16
- O2webappizer::AppGenerator.source_paths << Rails::Generators::AppGenerator.source_root << templates_root
16
+ O2webappizer::AppGenerator.source_paths << templates_root << Rails::Generators::AppGenerator.source_root
17
17
 
18
18
  O2webappizer::AppGenerator.start
data/lib/o2webappizer.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "o2webappizer/version"
2
2
  require "o2webappizer/generators/app_generator"
3
3
  require "o2webappizer/app_builder"
4
+ require 'active_support/core_ext/string/indent'
4
5
 
5
6
  module O2webappizer
6
7
  end
@@ -1,4 +1,171 @@
1
1
  module O2webappizer
2
2
  class AppBuilder < Rails::AppBuilder
3
+ def readme
4
+ template 'README.md'
5
+ end
6
+
7
+ def gemfile
8
+ template 'Gemfile'
9
+ end
10
+
11
+ def gitignore
12
+ template '.gitignore'
13
+ end
14
+
15
+ def app
16
+ empty_directory 'app'
17
+
18
+ inside 'app' do
19
+ directory 'assets'
20
+ keep_file 'assets/images'
21
+ directory 'controllers'
22
+ keep_file 'controllers/concerns'
23
+ directory 'helpers'
24
+ directory 'mailers'
25
+ keep_file 'models/concerns'
26
+ keep_file 'overrides' if options.solidus?
27
+ empty_directory 'views'
28
+
29
+ inside 'views' do
30
+ directory 'layouts'
31
+ directory 'spree' if options.solidus?
32
+ end
33
+ end
34
+ end
35
+
36
+ def config
37
+ empty_directory 'config'
38
+
39
+ inside 'config' do
40
+ template 'routes.rb'
41
+ template 'application.rb'
42
+ configure_application
43
+ template 'database.yml'
44
+ template 'environment.rb'
45
+ template 'secrets.yml'
46
+ directory 'environments'
47
+
48
+ inside 'environments' do
49
+ configure_development
50
+ configure_production
51
+ template 'production.rb', 'staging.rb'
52
+ template 'production.rb', 'vagrant.rb'
53
+ configure_staging
54
+ configure_vagrant
55
+ end
56
+ directory 'initializers'
57
+ unless options.solidus?
58
+ remove_file 'initializers/spree.rb'
59
+ remove_file 'initializers/devise.rb'
60
+ end
61
+ empty_directory 'locales'
62
+
63
+ inside 'locales' do
64
+ options.locales.each do |locale|
65
+ copy_file 'routes.en.yml', "routes.#{locale}.yml"
66
+ gsub_file "routes.#{locale}.yml", /^en/, locale
67
+ copy_file 'simple_form.en.yml', "simple_form.#{locale}.yml"
68
+ gsub_file "simple_form.#{locale}.yml", /^en/, locale
69
+ end
70
+ end
71
+ end
72
+ end
73
+
74
+ def database_yml
75
+ end
76
+
77
+ def public_directory
78
+ directory 'public'
79
+ end
80
+
81
+ def vendor
82
+ empty_directory 'vendor/assets'
83
+
84
+ inside 'vendor/assets' do
85
+ copy_file 'javascripts/jquery.lazyload.js'
86
+ copy_file 'javascripts/modernizr.js'
87
+ copy_file 'stylesheets/nprogress-variables.sass'
88
+ if options.solidus?
89
+ directory 'javascripts/spree'
90
+ directory 'stylesheets/spree'
91
+ end
92
+ end
93
+ end
94
+
95
+ def leftovers
96
+ #rake 'railties:install:migrations'
97
+ #rake 'db:create'
98
+ #rake 'db:migrate' if options.migrate?
99
+
100
+ template '.ruby-version'
101
+
102
+ after_bundle do
103
+ init_git unless options.skip_git?
104
+ end
105
+ end
106
+
107
+ private
108
+
109
+ def configure_application
110
+ overrides = if options.solidus?
111
+ <<-OVERRIDES
112
+
113
+ # Load application's view overrides
114
+ Dir.glob(File.join(File.dirname(__FILE__), "../app/overrides/*.rb")) do |c|
115
+ Rails.configuration.cache_classes ? require(c) : load(c)
116
+ end
117
+ OVERRIDES
118
+ end
119
+
120
+ application <<-APP.strip_heredoc.indent(4)
121
+
122
+ config.to_prepare do
123
+ # Load application's model / class decorators
124
+ Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
125
+ Rails.configuration.cache_classes ? require(c) : load(c)
126
+ end
127
+ #{overrides}
128
+ end
129
+
130
+ config.i18n.default_locale = :#{options.locales.first}
131
+ config.i18n.available_locales = #{options.locales.map(&:to_sym)}
132
+ APP
133
+ end
134
+
135
+ def configure_development
136
+ environment(<<-DEV.strip_heredoc.indent(2), env: 'development')
137
+
138
+ config.action_controller.asset_host = 'http://localhost:3000'
139
+ config.action_mailer.asset_host = 'http://localhost:3000'
140
+ DEV
141
+ end
142
+
143
+ def configure_production
144
+ configure_env 'production', 'error'
145
+ end
146
+
147
+ def configure_staging
148
+ configure_env 'staging', 'info'
149
+ end
150
+
151
+ def configure_vagrant
152
+ configure_env 'vagrant', 'info'
153
+ end
154
+
155
+ def init_git
156
+ git :init
157
+ end
158
+
159
+ def configure_env(name, level)
160
+ environment(<<-DEV.strip_heredoc.indent(2), env: name)
161
+
162
+ # config.action_controller.asset_host = 'http://todo.todo'
163
+ # config.action_mailer.asset_host = 'http://todo.todo'
164
+ DEV
165
+ gsub_file "#{name}.rb", /# config.action_dispatch.+NGINX/,
166
+ "config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX"
167
+ gsub_file "#{name}.rb", /config.log_level = :debug/,
168
+ "config.log_level = :#{level}"
169
+ end
3
170
  end
4
171
  end
@@ -3,5 +3,34 @@ require 'rails/generators/rails/app/app_generator'
3
3
 
4
4
  module O2webappizer
5
5
  class AppGenerator < Rails::Generators::AppGenerator
6
+ class_option :database, type: :string, aliases: "-d", default: "postgresql",
7
+ desc: "Configure for selected database (options: #{DATABASES.join("/")})"
8
+
9
+ class_option :skip_bundle, type: :boolean, aliases: "-B", default: false,
10
+ desc: "Don't run bundle install"
11
+
12
+ class_option :skip_test_unit, type: :boolean, aliases: "-T", default: true,
13
+ desc: "Skip Test::Unit files"
14
+
15
+ class_option :force, type: :boolean, aliases: "-f", default: true,
16
+ desc: "Overwrite files that already exist"
17
+
18
+ class_option :solidus, type: :boolean, default: false,
19
+ desc: "Install Solidus as well"
20
+
21
+ class_option :locales, type: :array, default: ['fr', 'en'],
22
+ desc: "Available locales (default locale comes first)"
23
+
24
+ class_option :migrate, type: :boolean, default: true,
25
+ desc: 'Run migrations'
26
+
27
+ class_option :ruby_version, type: :string, default: '2.2.3',
28
+ desc: 'Set Ruby version used'
29
+
30
+ protected
31
+
32
+ def get_builder_class
33
+ O2webappizer::AppBuilder
34
+ end
6
35
  end
7
36
  end
@@ -1,5 +1,5 @@
1
1
  module O2webappizer
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  RUBY_VERSION = IO.read("#{File.dirname(__FILE__)}/../../.ruby-version").strip
4
4
  RAILS_VERSION = "4.2"
5
5
  end
@@ -18,7 +18,9 @@
18
18
  /tmp
19
19
 
20
20
  /public/assets/*
21
+ <% if options.solidus? -%>
21
22
  /public/spree/*
23
+ <% end -%>
22
24
  /public/system/*
23
25
  /public/images/*
24
26
  !/public/images/mini
@@ -29,14 +31,11 @@
29
31
  !/public/images/full
30
32
  !/public/images/huge
31
33
  !/public/images/original
34
+ !/public/images/rich_thumb
32
35
  !/public/images/loading.gif
33
36
  /private/*
34
37
 
35
- # Ignore uploads folder
36
- uploads/*
37
- cache/pictures/*
38
-
39
- #default stuff
38
+ # Default stuff
40
39
  .DS_Store
41
40
  .sass-cache
42
41
 
@@ -0,0 +1 @@
1
+ <%= options.ruby_version %>
@@ -0,0 +1,101 @@
1
+ source 'https://rubygems.org'
2
+
3
+
4
+ # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
5
+ gem 'rails', github: 'rails/rails', branch: '4-2-stable'
6
+ # Use postgresql as the database for Active Record
7
+ gem 'pg', '~> 0.15'
8
+ # Use SCSS for stylesheets
9
+ gem 'sassc-rails', github: 'Shopify/sassc-rails', branch: 'sprockets-rails-3'
10
+ # Use Uglifier as compressor for JavaScript assets
11
+ gem 'uglifier', '>= 1.3.0'
12
+ # Use CoffeeScript for .coffee assets and views
13
+ gem 'coffee-rails', '~> 4.1.0'
14
+ # See https://github.com/rails/execjs#readme for more supported runtimes
15
+ # gem 'therubyracer', platforms: :ruby
16
+
17
+ # Use jquery as the JavaScript library
18
+ gem 'jquery-rails'
19
+ # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
20
+ gem 'turbolinks'
21
+ gem 'jquery-turbolinks'
22
+ gem 'nprogress-rails', github: 'caarlos0/nprogress-rails'
23
+ # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
24
+ gem 'jbuilder', '~> 2.0'
25
+ # bundle exec rake doc:rails generates the API under doc/api.
26
+ gem 'sdoc', '~> 0.4.0', group: :doc
27
+
28
+ group :development, :test do
29
+ gem 'capistrano', '~> 3.1'
30
+ gem 'capistrano-bundler', '~> 1.1'
31
+ gem 'capistrano-rails', '~> 1.1'
32
+ gem 'capistrano-rbenv', '~> 2.0'
33
+ gem 'capistrano3-nginx', '~> 2.0'
34
+ gem 'capistrano-passenger'
35
+ # TODO: gem 'capistrano-maintenance', '~> 1.0'
36
+
37
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
38
+ gem 'spring', '~> 1.3.6'
39
+
40
+ # gem 'web-console', '~> 3.0'
41
+ gem 'xray-rails'
42
+ gem 'quiet_assets'
43
+ gem 'coffee-rails-source-paths', github: 'Machiaweliczny/coffee-rails-source-paths'
44
+ gem 'sass-rails-source-maps', github: 'inopinatus/sass-rails-source-maps'
45
+ <% unless options.solidus? -%>
46
+ gem 'letter_opener'
47
+ gem 'letter_opener_web', '~> 1.2.0'
48
+ <% end -%>
49
+ end
50
+
51
+ # Scheduling
52
+ gem 'whenever', require: false
53
+ # gem 'que'
54
+
55
+ # Database
56
+ gem 'yaml_db'
57
+ # gem 'goldiloader'
58
+ # gem 'paper_trail', github: 'airblade/paper_trail'
59
+ # gem 'paranoia', '~> 2.0'
60
+ # gem 'globalize', '~> 5.0.0'
61
+
62
+ # Routes
63
+ # gem 'friendly_id', '~> 5.1.0'
64
+ # gem 'friendly_id-globalize', '~> 1.0.0'
65
+ # gem 'redirector'
66
+
67
+ # Search
68
+ # gem 'ransack'
69
+ # gem 'textacular', '~> 3.0'
70
+
71
+ # Views
72
+ gem 'nestive', '~> 0.5'
73
+ # gem 'local_time'
74
+
75
+ # Forms
76
+ # gem 'cocoon'
77
+ # gem 'best_in_place', github: 'bernat/best_in_place'
78
+
79
+ # Tables
80
+ # gem 'wice_grid', github: 'leikind/wice_grid', branch: 'rails3'
81
+ # gem 'spreadsheet'
82
+
83
+ # CSS
84
+ gem 'autoprefixer-rails'
85
+ gem 'font-awesome-sass', github: 'schurig/font-awesome-sass', branch: 'patch-1'
86
+
87
+ # Images
88
+ gem 'lazyload-rails', github: 'jassa/lazyload-rails'
89
+ gem 'browser', github: 'fnando/browser'
90
+
91
+ # Rails Admin
92
+ gem 'rails_admin_cms'
93
+ gem 'rich', github: 'o2web/rich'
94
+ gem 'rails_admin_jcrop', github: 'o2web/rails_admin_jcrop', branch: 'feature/one_crop_per_page'
95
+ # gem 'rails_admin_history_rollback', github: 'rikkipitt/rails_admin_history_rollback'
96
+
97
+ <% if options.solidus? -%>
98
+ # Solidus
99
+ gem 'solidus', github: 'o2web/solidus', branch: 'v1.1'
100
+ gem 'solidus_auth_devise'
101
+ <% end -%>
@@ -0,0 +1,33 @@
1
+ # <%= app_name.humanize %>
2
+
3
+ ## Local setup, make sure that these librairies are installed with:
4
+
5
+ ```console
6
+ brew install autoconf gdbm libpng ossp-uuid autoenv gettext libtool pcre readline automake git libyaml redis
7
+ ```
8
+
9
+ ```console
10
+ brew install brew-cask glib mcrypt icu4c sqlite imagemagick mhash ssh-copy-id jpeg unixodbc lftp node
11
+ ```
12
+
13
+ ```console
14
+ brew install pkg-config wget freetype libffi openssl postgresql zlib
15
+ ```
16
+
17
+ ### Install Ruby with Rbenv and Ruby-build (with the git clone way)
18
+
19
+ ### Install Bundler and run an install
20
+
21
+ ### Create a PostgresSQL user 'postgres' with 'postgres' password if not already done, then run:
22
+
23
+ ```console
24
+ rake db:drop db:create db:migrate db:data:load
25
+ ```
26
+
27
+ or
28
+
29
+ ```console
30
+ rake db:reborn
31
+ ```
32
+
33
+ and then, you're good to go by launching your runner/debugger in Rubymine or by running `rails s` and accessing localhost:3000
@@ -0,0 +1,7 @@
1
+ class App extends CMS
2
+ @start: =>
3
+ super
4
+ NProgress.configure showSpinner: false
5
+ $('img').lazyload()
6
+
7
+ window.App = App