enjoy_cms 0.3.7.4 → 0.4.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.ruby-version +1 -1
  4. data/Gemfile.lock +62 -111
  5. data/app/assets/javascripts/{enjoy_cms → enjoy/cms}/flash.coffee +0 -0
  6. data/app/assets/javascripts/enjoy/cms/init.coffee +1 -0
  7. data/app/assets/javascripts/{enjoy_cms → enjoy/cms}/map.coffee +0 -0
  8. data/app/assets/javascripts/enjoy/cms.coffee +11 -0
  9. data/app/assets/javascripts/enjoy/rails_admin/cms.ui.coffee +26 -0
  10. data/app/assets/javascripts/{enjoy_cms → enjoy}/rails_admin/custom/ui.coffee +0 -0
  11. data/app/assets/javascripts/rails_admin/custom/ui.coffee +2 -2
  12. data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/flash.sass +0 -0
  13. data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/normalize.scss +0 -0
  14. data/app/assets/stylesheets/{enjoy_cms → enjoy/cms}/powered.sass +0 -0
  15. data/app/assets/stylesheets/{enjoy_cms.sass → enjoy/cms.sass} +3 -1
  16. data/app/assets/stylesheets/enjoy/rails_admin/cms.ui.sass +117 -0
  17. data/{lib/enjoy/controllers/sitemap_data.rb → app/assets/stylesheets/enjoy/rails_admin/custom/ui.sass} +0 -0
  18. data/app/assets/stylesheets/rails_admin/custom/theming.sass +2 -0
  19. data/app/controllers/concerns/enjoy/errors.rb +1 -1
  20. data/app/controllers/enjoy/registrations_controller.rb +20 -0
  21. data/app/controllers/enjoy/sessions_controller.rb +19 -0
  22. data/app/helpers/enjoy/home_helper.rb +2 -0
  23. data/app/helpers/enjoy/powered_helper.rb +1 -1
  24. data/app/models/concerns/enjoy/html_field.rb +3 -0
  25. data/app/views/blocks/_favicon.html.slim +60 -21
  26. data/app/views/devise/registrations/edit.html.slim +2 -2
  27. data/app/views/devise/registrations/new.html.slim +9 -3
  28. data/app/views/devise/sessions/new.html.slim +8 -2
  29. data/app/views/devise/shared/_links.html.slim +4 -4
  30. data/app/views/{errors → enjoy/errors}/_base.html.slim +0 -0
  31. data/app/views/{errors → enjoy/errors}/error_403.html.slim +0 -0
  32. data/app/views/{errors → enjoy/errors}/error_404.html.slim +0 -0
  33. data/app/views/{errors → enjoy/errors}/error_500.html.slim +0 -0
  34. data/app/views/{simple_captcha → enjoy/simple_captcha}/_simple_captcha.html.slim +0 -0
  35. data/app/views/layouts/application.html.slim +8 -4
  36. data/app/views/layouts/enjoy/devise/confirmations.html.slim +27 -0
  37. data/app/views/layouts/enjoy/devise/passwords.html.slim +27 -0
  38. data/app/views/layouts/enjoy/devise/registrations.html.slim +27 -0
  39. data/app/views/layouts/enjoy/devise/sessions.html.slim +27 -0
  40. data/app/views/layouts/enjoy/devise/unlocks.html.slim +27 -0
  41. data/app/views/rails_admin/main/_setting_value.html.haml +104 -0
  42. data/app/views/shared/_messages.html.slim +1 -1
  43. data/config/initializers/simple_captcha.rb +29 -20
  44. data/config/locales/en.enjoy.yml +1 -1
  45. data/config/locales/ru.enjoy.yml +0 -7
  46. data/config/locales/ru.models.yml +2 -39
  47. data/enjoy_cms.gemspec +7 -20
  48. data/lib/enjoy/configuration.rb +24 -40
  49. data/lib/enjoy/controller.rb +5 -3
  50. data/lib/enjoy/engine.rb +28 -28
  51. data/lib/enjoy/migration.rb +0 -19
  52. data/lib/enjoy/model.rb +5 -2
  53. data/lib/enjoy/rails_admin_ext/config.rb +112 -0
  54. data/lib/enjoy/rails_admin_ext/enjoy_hash.rb +0 -2
  55. data/lib/enjoy/rails_admin_ext/enjoy_slugs.rb +31 -0
  56. data/lib/enjoy/rails_admin_ext/group_patch.rb +2 -1
  57. data/lib/enjoy/rails_admin_settings_patch.rb +7 -0
  58. data/lib/enjoy/routes.rb +1 -26
  59. data/lib/enjoy/version.rb +1 -1
  60. data/lib/enjoy_cms.rb +25 -71
  61. data/lib/filename_to_slug.rb +20 -22
  62. data/lib/generators/enjoy/{ability_generator.rb → cms/ability_generator.rb} +3 -3
  63. data/lib/generators/enjoy/{admin_generator.rb → cms/admin_generator.rb} +2 -2
  64. data/lib/generators/enjoy/cms/application_generator.rb +14 -0
  65. data/lib/generators/enjoy/cms/assets_generator.rb +35 -0
  66. data/lib/generators/enjoy/{config/install_generator.rb → cms/config_generator.rb} +3 -3
  67. data/lib/generators/enjoy/cms/gemfile_generator.rb +13 -0
  68. data/lib/generators/enjoy/{layout_generator.rb → cms/layout_generator.rb} +2 -2
  69. data/lib/generators/enjoy/cms/paperclip_optimizer_generator.rb +13 -0
  70. data/lib/generators/enjoy/cms/rack_generator.rb +12 -0
  71. data/lib/generators/enjoy/cms/robots_generator.rb +12 -0
  72. data/lib/generators/enjoy/cms/scripts_generator.rb +25 -0
  73. data/lib/generators/enjoy/cms/templates/Gemfile.erb +69 -0
  74. data/lib/generators/enjoy/cms/templates/ability.erb +45 -0
  75. data/lib/generators/enjoy/{templates → cms/templates}/admin.erb +5 -26
  76. data/lib/generators/enjoy/cms/templates/application.erb +42 -0
  77. data/lib/generators/enjoy/cms/templates/assets/javascripts/application.coffee.erb +1 -0
  78. data/lib/generators/enjoy/cms/templates/assets/stylesheets/application.sass.erb +15 -0
  79. data/lib/generators/enjoy/cms/templates/assets/stylesheets/enjoy/rails_admin/custom/ui.sass.erb +106 -0
  80. data/lib/generators/enjoy/cms/templates/enjoy_cms.erb +28 -0
  81. data/lib/generators/enjoy/cms/templates/paperclip_optimizer.erb +80 -0
  82. data/lib/generators/enjoy/cms/templates/rack.erb +15 -0
  83. data/lib/generators/enjoy/cms/templates/robots.txt.erb +4 -0
  84. data/lib/generators/enjoy/cms/templates/scripts/assets_precompile.sh +3 -0
  85. data/lib/generators/enjoy/cms/templates/scripts/bundle_production.sh +4 -0
  86. data/lib/generators/enjoy/cms/templates/scripts/db_dump.sh.erb +3 -0
  87. data/lib/generators/enjoy/cms/templates/scripts/db_restore.sh +3 -0
  88. data/lib/generators/enjoy/cms/templates/scripts/full_assets_precompile.sh +4 -0
  89. data/lib/generators/enjoy/cms/templates/scripts/restart_thru_kill.sh +3 -0
  90. data/lib/generators/enjoy/cms/templates/scripts/send_hup.sh +3 -0
  91. data/lib/generators/enjoy/cms/templates/scripts/send_usr2.sh +3 -0
  92. data/lib/generators/enjoy/cms/templates/unicorn.erb +57 -0
  93. data/lib/generators/enjoy/cms/templates/unicorn.god.erb +59 -0
  94. data/lib/generators/enjoy/cms/unicorn_god_generator.rb +15 -0
  95. data/lib/generators/enjoy/{utils.rb → cms/utils.rb} +1 -1
  96. data/lib/rails_admin/custom_show_in_app.rb +13 -13
  97. data/template.rb +197 -543
  98. metadata +73 -325
  99. data/app/assets/javascripts/enjoy_cms/contacts.coffee +0 -11
  100. data/app/assets/javascripts/enjoy_cms/rails_admin/cms.ui.coffee +0 -6
  101. data/app/assets/javascripts/enjoy_cms.coffee +0 -7
  102. data/app/controllers/concerns/enjoy/blocksetable.rb +0 -37
  103. data/app/controllers/concerns/enjoy/decorators/contacts.rb +0 -5
  104. data/app/controllers/concerns/enjoy/decorators/news.rb +0 -5
  105. data/app/controllers/concerns/enjoy/decorators/pages.rb +0 -5
  106. data/app/controllers/concerns/enjoy/decorators/search.rb +0 -5
  107. data/app/controllers/concerns/enjoy/nav_menu.rb +0 -91
  108. data/app/controllers/concerns/enjoy/seo_pages.rb +0 -90
  109. data/app/controllers/enjoy/contacts_controller.rb +0 -7
  110. data/app/controllers/enjoy/news_controller.rb +0 -7
  111. data/app/controllers/enjoy/pages_controller.rb +0 -7
  112. data/app/controllers/enjoy/search_controller.rb +0 -8
  113. data/app/mailers/enjoy/contact_mailer.rb +0 -17
  114. data/app/models/concerns/enjoy/connectable.rb +0 -36
  115. data/app/models/concerns/enjoy/decorators/contact_message.rb +0 -5
  116. data/app/models/concerns/enjoy/decorators/embedded_gallery_image.rb +0 -5
  117. data/app/models/concerns/enjoy/decorators/gallery.rb +0 -5
  118. data/app/models/concerns/enjoy/decorators/gallery_image.rb +0 -5
  119. data/app/models/concerns/enjoy/decorators/menu.rb +0 -5
  120. data/app/models/concerns/enjoy/decorators/news.rb +0 -5
  121. data/app/models/concerns/enjoy/decorators/page.rb +0 -5
  122. data/app/models/concerns/enjoy/decorators/page_block.rb +0 -5
  123. data/app/models/concerns/enjoy/decorators/page_blockset.rb +0 -5
  124. data/app/models/concerns/enjoy/decorators/seo.rb +0 -5
  125. data/app/models/concerns/enjoy/decorators/sitemap_data.rb +0 -5
  126. data/app/models/concerns/enjoy/mongoid_paperclip.rb +0 -51
  127. data/app/models/concerns/enjoy/seoable.rb +0 -36
  128. data/app/models/concerns/enjoy/sitemap_data_field.rb +0 -17
  129. data/app/models/enjoy/contact_message.rb +0 -16
  130. data/app/models/enjoy/embedded_gallery_image.rb +0 -16
  131. data/app/models/enjoy/gallery.rb +0 -13
  132. data/app/models/enjoy/gallery_image.rb +0 -13
  133. data/app/models/enjoy/menu.rb +0 -16
  134. data/app/models/enjoy/news.rb +0 -16
  135. data/app/models/enjoy/page.rb +0 -16
  136. data/app/models/enjoy/page_block.rb +0 -13
  137. data/app/models/enjoy/page_blockset.rb +0 -13
  138. data/app/models/enjoy/seo.rb +0 -16
  139. data/app/models/enjoy/sitemap_data.rb +0 -16
  140. data/app/views/enjoy/contact_mailer/new_message_email.html.slim +0 -15
  141. data/app/views/enjoy/contacts/_form.html.slim +0 -7
  142. data/app/views/enjoy/contacts/_form_with_wrapper.html.slim +0 -2
  143. data/app/views/enjoy/contacts/_success.html.slim +0 -3
  144. data/app/views/enjoy/contacts/index.html.slim +0 -4
  145. data/app/views/enjoy/contacts/new.html.slim +0 -4
  146. data/app/views/enjoy/contacts/sent.html.slim +0 -3
  147. data/app/views/enjoy/news/index.html.slim +0 -9
  148. data/app/views/enjoy/news/show.html.slim +0 -8
  149. data/app/views/enjoy/pages/show.html.slim +0 -1
  150. data/app/views/enjoy/search/index.html.slim +0 -19
  151. data/app/views/rails_admin/main/_enjoy_connectable.html.slim +0 -56
  152. data/config/locales/ru.kaminari.yml +0 -17
  153. data/config/locales/ru.simple_captcha.yml +0 -3
  154. data/config/locales/ru.simple_form.yml +0 -9
  155. data/lib/enjoy/admin/contact_message.rb +0 -42
  156. data/lib/enjoy/admin/embedded_gallery_image.rb +0 -38
  157. data/lib/enjoy/admin/gallery.rb +0 -44
  158. data/lib/enjoy/admin/gallery_image.rb +0 -31
  159. data/lib/enjoy/admin/menu.rb +0 -27
  160. data/lib/enjoy/admin/news.rb +0 -89
  161. data/lib/enjoy/admin/page.rb +0 -96
  162. data/lib/enjoy/admin/page_block.rb +0 -49
  163. data/lib/enjoy/admin/page_blockset.rb +0 -50
  164. data/lib/enjoy/admin/seo.rb +0 -41
  165. data/lib/enjoy/admin/sitemap_data.rb +0 -29
  166. data/lib/enjoy/controllers/contacts.rb +0 -86
  167. data/lib/enjoy/controllers/news.rb +0 -36
  168. data/lib/enjoy/controllers/pages.rb +0 -22
  169. data/lib/enjoy/controllers/search.rb +0 -62
  170. data/lib/enjoy/elastic_search.rb +0 -31
  171. data/lib/enjoy/models/active_record/contact_message.rb +0 -14
  172. data/lib/enjoy/models/active_record/menu.rb +0 -17
  173. data/lib/enjoy/models/active_record/news.rb +0 -26
  174. data/lib/enjoy/models/active_record/page.rb +0 -20
  175. data/lib/enjoy/models/active_record/seo.rb +0 -17
  176. data/lib/enjoy/models/active_record/sitemap_data.rb +0 -11
  177. data/lib/enjoy/models/contact_message.rb +0 -41
  178. data/lib/enjoy/models/embedded_gallery_image.rb +0 -13
  179. data/lib/enjoy/models/gallery.rb +0 -21
  180. data/lib/enjoy/models/gallery_image.rb +0 -19
  181. data/lib/enjoy/models/menu.rb +0 -23
  182. data/lib/enjoy/models/mongoid/contact_message.rb +0 -23
  183. data/lib/enjoy/models/mongoid/embedded_gallery_image.rb +0 -24
  184. data/lib/enjoy/models/mongoid/gallery.rb +0 -32
  185. data/lib/enjoy/models/mongoid/gallery_image.rb +0 -29
  186. data/lib/enjoy/models/mongoid/menu.rb +0 -20
  187. data/lib/enjoy/models/mongoid/news.rb +0 -37
  188. data/lib/enjoy/models/mongoid/page.rb +0 -49
  189. data/lib/enjoy/models/mongoid/page_block.rb +0 -56
  190. data/lib/enjoy/models/mongoid/page_blockset.rb +0 -20
  191. data/lib/enjoy/models/mongoid/seo.rb +0 -35
  192. data/lib/enjoy/models/mongoid/sitemap_data.rb +0 -25
  193. data/lib/enjoy/models/news.rb +0 -58
  194. data/lib/enjoy/models/page.rb +0 -92
  195. data/lib/enjoy/models/page_block.rb +0 -22
  196. data/lib/enjoy/models/page_blockset.rb +0 -24
  197. data/lib/enjoy/models/seo.rb +0 -17
  198. data/lib/enjoy/models/sitemap_data.rb +0 -17
  199. data/lib/enjoy/rails_admin_ext/enjoy_connectable.rb +0 -33
  200. data/lib/enjoy/rails_admin_ext/menu.rb +0 -147
  201. data/lib/generators/enjoy/capify_generator.rb +0 -39
  202. data/lib/generators/enjoy/config/templates/enjoy_cms.erb +0 -27
  203. data/lib/generators/enjoy/migration_generator.rb +0 -18
  204. data/lib/generators/enjoy/templates/Capfile +0 -17
  205. data/lib/generators/enjoy/templates/ability.erb +0 -48
  206. data/lib/generators/enjoy/templates/deploy.erb +0 -47
  207. data/lib/generators/enjoy/templates/dl.erb +0 -30
  208. data/lib/generators/enjoy/templates/migration_contact_messages.rb +0 -15
  209. data/lib/generators/enjoy/templates/migration_news.rb +0 -26
  210. data/lib/generators/enjoy/templates/migration_pages.rb +0 -45
  211. data/lib/generators/enjoy/templates/migration_seos.rb +0 -14
  212. data/lib/generators/enjoy/templates/production.erb +0 -8
  213. data/lib/generators/enjoy/templates/unicorn.erb +0 -66
@@ -1,17 +0,0 @@
1
- # Load DSL and Setup Up Stages
2
- require 'capistrano/setup'
3
-
4
- # Includes default deployment tasks
5
- require 'capistrano/deploy'
6
-
7
- require 'rvm1/capistrano3'
8
- require 'capistrano/bundler'
9
- require 'capistrano/rails/assets'
10
- #require "whenever/capistrano"
11
-
12
- require 'capistrano/unicorn'
13
-
14
- # require 'capistrano/rails/console'
15
-
16
- # Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
17
- Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
@@ -1,48 +0,0 @@
1
- class Ability
2
- include CanCan::Ability
3
-
4
- def initialize(user)
5
- if !user.nil? and (user.admin? or user.manager?)
6
- can :read, :all
7
- can :access, :rails_admin # grant access to rails_admin
8
- can :dashboard # grant access to the dashboard
9
-
10
- can :comments, :all #RailsAdminComments
11
-
12
- if user.admin?
13
- admin_ui(user)
14
- elsif user.manager?
15
- manager_ui(user)
16
- end
17
-
18
- cannot [:new, :create], Enjoy::Seo
19
- cannot [:new, :create], Enjoy::SitemapData
20
- end
21
- end
22
-
23
- def admin_ui(user)
24
- can :manage, :all
25
- end
26
-
27
- def manager_ui(user)
28
- cannot :manage, Enjoy::Menu
29
- cannot [:edit, :destroy, :new, :create], User
30
- can :edit, user
31
-
32
- manager_models.each do |model|
33
- can manager_actions, model
34
- end
35
- end
36
-
37
- def manager_actions
38
- [:edit, :new, :create, :nested_set, :sort_embedded]
39
- end
40
-
41
- def manager_models
42
- [
43
- Enjoy::Page, Enjoy::News,
44
- Enjoy::Seo, Enjoy::SitemapData,
45
- RailsAdminSettings::Setting
46
- ]
47
- end
48
- end
@@ -1,47 +0,0 @@
1
- set :user, "<%= app_name.downcase %>"
2
- set :application, '<%= app_name.downcase %>'
3
- set :scm, :git
4
- set :repo_url, 'git@rscz.ru:rocket-science/<%= app_name.downcase %>.git'
5
-
6
- set :branch, ENV["REVISION"] || "master"
7
-
8
- set :deploy_to, "<%= deploy_to %>"
9
-
10
- # require 'hipchat/capistrano'
11
- # set :hipchat_token, ""
12
- # set :hipchat_room_name, "<%= app_name %>"
13
- # set :hipchat_announce, false
14
-
15
- set :rvm_type, :user
16
- set :rvm_ruby_version, "2.2.1@#{fetch :application}"
17
- set :use_sudo, false
18
-
19
- set :keep_releases, 20
20
-
21
- set :linked_files, %w{config/mongoid.yml config/secrets.yml}
22
- set :linked_dirs, %w{log tmp vendor/bundle public/assets public/system public/uploads public/ckeditor_assets public/sitemap}
23
-
24
- namespace :db do
25
- desc "Create the indexes defined on your mongoid models"
26
- task :create_mongoid_indexes do
27
- on roles(:app) do
28
- execute :rake, "db:mongoid:create_indexes"
29
- end
30
- end
31
- end
32
-
33
- namespace :deploy do
34
- task :restart do
35
- end
36
- desc "Update the crontab"
37
- task :update_crontab do
38
- on roles(:app) do
39
- execute "cd #{release_path}; #{fetch(:tmp_dir)}/#{fetch :application}/rvm-auto.sh . bundle exec whenever --update-crontab #{fetch :user} --set \'environment=#{fetch :stage}&current_path=#{release_path}\'; true"
40
- end
41
- end
42
- end
43
-
44
- after 'deploy:publishing', 'deploy:restart'
45
- after 'deploy:restart', 'unicorn:duplicate'
46
- #before "deploy:update_crontab", 'rvm1:hook'
47
- #after "deploy:restart", "deploy:update_crontab"
@@ -1,30 +0,0 @@
1
- require 'cloner'
2
-
3
- class Dl < Cloner::Base
4
- no_commands do
5
- def rails_path
6
- File.expand_path("../../../config/environment", __FILE__)
7
- end
8
- def ssh_host
9
- '<%= domain %>'
10
- end
11
- def ssh_user
12
- '<%= app_name.downcase %>'
13
- end
14
- def remote_dump_path
15
- '<%= tmp_path %>'
16
- end
17
- def remote_app_path
18
- '<%= deploy_to %>/current'
19
- end
20
- end
21
-
22
- desc "download", "clone files and DB from production"
23
- def download
24
- load_env
25
- clone_db
26
- rsync_public("ckeditor_assets")
27
- rsync_public("system")
28
- end
29
- end
30
-
@@ -1,15 +0,0 @@
1
- class EnjoyCreateContactMessages < ActiveRecord::Migration
2
- def change
3
- create_table :contact_messages do |t|
4
- t.string :name
5
- t.string :email
6
- t.string :phone
7
- t.text :content
8
- t.timestamps
9
- end
10
-
11
- add_index :contact_messages, :created_at
12
- add_index :contact_messages, :updated_at
13
- end
14
- end
15
-
@@ -1,26 +0,0 @@
1
- class EnjoyCreateNews < ActiveRecord::Migration
2
- def change
3
- create_table :news do |t|
4
- t.boolean :enabled, default: true, null: false
5
- t.timestamp :time, null: false
6
-
7
- if Enjoy.config.localize
8
- t.column :name_translations, 'hstore', default: {}
9
- t.column :excerpt_translations, 'hstore', default: {}
10
- t.column :content_translations, 'hstore', default: {}
11
- else
12
- t.string :name, null: false
13
- t.text :excerpt
14
- t.text :content
15
- end
16
-
17
- t.string :slug, null: false
18
- t.attachment :image
19
- t.timestamps
20
- end
21
-
22
- add_index :news, :slug, unique: true
23
- add_index :news, [:enabled, :time]
24
- end
25
- end
26
-
@@ -1,45 +0,0 @@
1
- class EnjoyCreatePages < ActiveRecord::Migration
2
- def change
3
- create_table :menus do |t|
4
-
5
- if Enjoy.config.localize
6
- t.column :name_translations, 'hstore'
7
- else
8
- t.string :name, null: false
9
- end
10
- t.string :slug, null: false
11
- t.timestamps
12
- end
13
- add_index :menus, :slug, unique: true
14
-
15
- create_table :pages do |t|
16
- t.boolean :enabled, default: true, null: false
17
- t.integer :parent_id
18
- t.integer :lft
19
- t.integer :rgt
20
- t.integer :depth
21
-
22
- if Enjoy.config.localize
23
- t.column :name_translations, 'hstore', default: {}
24
- t.column :content_translations, 'hstore', default: {}
25
- else
26
- t.string :name, null: false
27
- t.text :content
28
- end
29
-
30
- t.string :slug, null: false
31
- t.string :regexp
32
- t.string :redirect
33
- t.string :fullpath, null: false
34
- t.timestamps
35
- end
36
- add_index :pages, :slug, unique: true
37
- add_index :pages, [:enabled, :lft]
38
-
39
- create_join_table :menus, :pages
40
-
41
- add_foreign_key(:menus_pages, :menus, dependent: :delete)
42
- add_foreign_key(:menus_pages, :pages, dependent: :delete)
43
- end
44
- end
45
-
@@ -1,14 +0,0 @@
1
- class EnjoyCreateSeos < ActiveRecord::Migration
2
- def change
3
- create_table :seos do |t|
4
- t.boolean :enabled, default: true, null: false
5
- t.integer :seoable_id
6
- t.string :seoable_type
7
- Enjoy::Migration.seo_fields(t)
8
- t.timestamps
9
- end
10
-
11
- add_index :seos, [:seoable_id, :seoable_type], unique: true
12
- end
13
- end
14
-
@@ -1,8 +0,0 @@
1
- set :stage, :production
2
-
3
- server '<%= domain %>', user: '<%= app_name.downcase %>', roles: %w{web app db}
4
-
5
- set :rails_env, 'production'
6
- set :unicorn_env, 'production'
7
- set :unicorn_rack_env, 'production'
8
-
@@ -1,66 +0,0 @@
1
- rails_env = ENV['RAILS_ENV'] || 'production'
2
-
3
- deploy_to = '<%= deploy_to %>'
4
- rails_root = "#{deploy_to}/current"
5
-
6
- tmp_dir = "#{deploy_to}/shared/tmp"
7
- pid_dir = "#{tmp_dir}/pids"
8
- if File.directory?(tmp_dir) && !File.directory?(pid_dir)
9
- puts "creating pid dir #{pid_dir}"
10
- Dir.mkdir(pid_dir)
11
- end
12
- pid_file = "#{pid_dir}/unicorn.pid"
13
-
14
- log_file = "#{deploy_to}/shared/log/unicorn.log"
15
- err_log_file = "#{deploy_to}/shared/log/unicorn.error.log"
16
-
17
- old_pid_file = pid_file + '.oldbin'
18
-
19
- worker_processes 1
20
- working_directory rails_root
21
-
22
- timeout 120
23
-
24
- # Specify path to socket unicorn listens to,
25
- # we will use this in our nginx.conf later
26
-
27
- listen "127.0.0.1:<%= port %>"
28
-
29
- pid pid_file
30
-
31
- # Set log file paths
32
- stderr_path err_log_file
33
- stdout_path log_file
34
-
35
- # http://tech.tulentsev.com/2012/03/deploying-with-sinatra-capistrano-unicorn/
36
- # NOTE: http://unicorn.bogomips.org/SIGNALS.html
37
- preload_app true
38
-
39
- # make sure that Bundler finds the Gemfile
40
- before_exec do |server|
41
- ENV['BUNDLE_GEMFILE'] = File.join( rails_root, 'Gemfile' )
42
- end
43
-
44
- before_fork do |server, worker|
45
- # при использовании preload_app = true здесь должно быть закрытие всех открытых сокетов
46
-
47
- # Mongoid сам заботится о переконнекте
48
- # http://two.mongoid.org/docs/upgrading.html
49
-
50
- # http://stackoverflow.com/a/9498372/2041969
51
- # убиваем параллельный старый-процесс просле старта нового
52
- if File.exists?( old_pid_file )
53
- begin
54
- Process.kill( "QUIT", File.read( old_pid_file ).to_i )
55
- rescue Errno::ENOENT, Errno::ESRCH
56
- puts "Old master alerady dead"
57
- end
58
- end
59
- end
60
-
61
- after_fork do |server, worker|
62
- # pid-ы дочерних процессов
63
- child_pid_file = server.config[:pid].sub(".pid", ".#{worker.nr}.pid")
64
- system("echo #{Process.pid} > #{child_pid_file}")
65
- end
66
-