ack_rocket_cms 0.7.2.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 (132) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +19 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +244 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +74 -0
  11. data/Rakefile +1 -0
  12. data/app/assets/javascripts/head.load.js +707 -0
  13. data/app/assets/javascripts/jquery.placeholder.js +157 -0
  14. data/app/assets/javascripts/rocket_cms.js.coffee +10 -0
  15. data/app/assets/javascripts/rocket_cms/flash.js.coffee +3 -0
  16. data/app/assets/javascripts/rocket_cms/map.js.coffee +22 -0
  17. data/app/assets/stylesheets/rocket_cms.css.sass +6 -0
  18. data/app/assets/stylesheets/rocket_cms/flash.css.sass +66 -0
  19. data/app/assets/stylesheets/rocket_cms/normalize.css.scss +406 -0
  20. data/app/controllers/concerns/no_cache.rb +12 -0
  21. data/app/controllers/concerns/rs_errors.rb +63 -0
  22. data/app/controllers/concerns/rs_menu.rb +45 -0
  23. data/app/controllers/concerns/rs_pages.rb +41 -0
  24. data/app/controllers/contacts_controller.rb +3 -0
  25. data/app/controllers/home_controller.rb +5 -0
  26. data/app/controllers/news_controller.rb +3 -0
  27. data/app/controllers/pages_controller.rb +4 -0
  28. data/app/controllers/search_controller.rb +4 -0
  29. data/app/mailers/contact_mailer.rb +15 -0
  30. data/app/models/concerns/boolean_field.rb +17 -0
  31. data/app/models/concerns/enableable.rb +8 -0
  32. data/app/models/concerns/geocodeable.rb +4 -0
  33. data/app/models/concerns/mappable.rb +95 -0
  34. data/app/models/concerns/seoable.rb +42 -0
  35. data/app/models/concerns/sitemap_data.rb +20 -0
  36. data/app/models/concerns/sort_field.rb +17 -0
  37. data/app/models/concerns/sortable.rb +8 -0
  38. data/app/models/contact_message.rb +11 -0
  39. data/app/models/menu.rb +11 -0
  40. data/app/models/news.rb +10 -0
  41. data/app/models/page.rb +11 -0
  42. data/app/views/blocks/_footer.html.haml +1 -0
  43. data/app/views/contact_mailer/new_message_email.html.haml +16 -0
  44. data/app/views/contacts/index.html.haml +10 -0
  45. data/app/views/contacts/new.html.haml +10 -0
  46. data/app/views/contacts/sent.html.haml +4 -0
  47. data/app/views/errors/_base.html.haml +3 -0
  48. data/app/views/errors/error_403.html.haml +1 -0
  49. data/app/views/errors/error_404.html.haml +1 -0
  50. data/app/views/errors/error_500.html.haml +1 -0
  51. data/app/views/home/index.html.haml +1 -0
  52. data/app/views/layouts/application.html.haml +23 -0
  53. data/app/views/layouts/application.html.slim +24 -0
  54. data/app/views/news/index.html.haml +9 -0
  55. data/app/views/news/show.html.haml +8 -0
  56. data/app/views/pages/show.html.haml +1 -0
  57. data/app/views/rails_admin/main/_check_boxes.html.haml +27 -0
  58. data/app/views/rails_admin/main/_enum_check_boxes.html.haml +5 -0
  59. data/app/views/rails_admin/main/_enum_radio_buttons.html.haml +5 -0
  60. data/app/views/rails_admin/main/_form_raw.html.haml +1 -0
  61. data/app/views/search/index.html.haml +19 -0
  62. data/app/views/shared/_admin_link.html.haml +3 -0
  63. data/app/views/shared/_messages.html.haml +7 -0
  64. data/app/views/shared/_meta.html.haml +6 -0
  65. data/app/views/shared/_obj.html.haml +20 -0
  66. data/app/views/shared/_og.html.haml +4 -0
  67. data/config/locales/en.rocket_admin.yml +6 -0
  68. data/config/locales/en.rs.yml +20 -0
  69. data/config/locales/ru.cancan.yml +4 -0
  70. data/config/locales/ru.devise.yml +65 -0
  71. data/config/locales/ru.kaminari.yml +17 -0
  72. data/config/locales/ru.models.yml +92 -0
  73. data/config/locales/ru.mongoid.yml +450 -0
  74. data/config/locales/ru.rails_admin.yml +148 -0
  75. data/config/locales/ru.rocket_admin.yml +6 -0
  76. data/config/locales/ru.rs.yml +20 -0
  77. data/config/locales/ru.simple_captcha.yml +3 -0
  78. data/config/locales/ru.simple_form.yml +9 -0
  79. data/lib/filename_to_slug.rb +34 -0
  80. data/lib/generators/rocket_cms/ability_generator.rb +15 -0
  81. data/lib/generators/rocket_cms/admin_generator.rb +21 -0
  82. data/lib/generators/rocket_cms/capify_generator.rb +40 -0
  83. data/lib/generators/rocket_cms/layout_generator.rb +15 -0
  84. data/lib/generators/rocket_cms/migration_generator.rb +19 -0
  85. data/lib/generators/rocket_cms/templates/Capfile +17 -0
  86. data/lib/generators/rocket_cms/templates/ability.erb +28 -0
  87. data/lib/generators/rocket_cms/templates/admin.erb +81 -0
  88. data/lib/generators/rocket_cms/templates/deploy.erb +47 -0
  89. data/lib/generators/rocket_cms/templates/dl.erb +30 -0
  90. data/lib/generators/rocket_cms/templates/migration_contact_messages.rb +15 -0
  91. data/lib/generators/rocket_cms/templates/migration_news.rb +21 -0
  92. data/lib/generators/rocket_cms/templates/migration_pages.rb +36 -0
  93. data/lib/generators/rocket_cms/templates/production.erb +8 -0
  94. data/lib/generators/rocket_cms/templates/unicorn.erb +66 -0
  95. data/lib/generators/rocket_cms/utils.rb +22 -0
  96. data/lib/manual_slug.rb +11 -0
  97. data/lib/manual_slug/active_record.rb +32 -0
  98. data/lib/manual_slug/mongoid.rb +36 -0
  99. data/lib/rails_admin/custom_show_in_app.rb +39 -0
  100. data/lib/rocket_cms.rb +88 -0
  101. data/lib/rocket_cms/admin.rb +152 -0
  102. data/lib/rocket_cms/configuration.rb +67 -0
  103. data/lib/rocket_cms/controller.rb +24 -0
  104. data/lib/rocket_cms/controllers/contacts.rb +70 -0
  105. data/lib/rocket_cms/controllers/news.rb +31 -0
  106. data/lib/rocket_cms/controllers/pages.rb +19 -0
  107. data/lib/rocket_cms/controllers/search.rb +45 -0
  108. data/lib/rocket_cms/elastic_search.rb +31 -0
  109. data/lib/rocket_cms/engine.rb +39 -0
  110. data/lib/rocket_cms/migration.rb +31 -0
  111. data/lib/rocket_cms/model.rb +25 -0
  112. data/lib/rocket_cms/models/active_record/contact_message.rb +14 -0
  113. data/lib/rocket_cms/models/active_record/menu.rb +14 -0
  114. data/lib/rocket_cms/models/active_record/news.rb +23 -0
  115. data/lib/rocket_cms/models/active_record/page.rb +17 -0
  116. data/lib/rocket_cms/models/contact_message.rb +27 -0
  117. data/lib/rocket_cms/models/menu.rb +29 -0
  118. data/lib/rocket_cms/models/mongoid/contact_message.rb +20 -0
  119. data/lib/rocket_cms/models/mongoid/menu.rb +12 -0
  120. data/lib/rocket_cms/models/mongoid/news.rb +27 -0
  121. data/lib/rocket_cms/models/mongoid/page.rb +26 -0
  122. data/lib/rocket_cms/models/news.rb +50 -0
  123. data/lib/rocket_cms/models/page.rb +76 -0
  124. data/lib/rocket_cms/patch.rb +58 -0
  125. data/lib/rocket_cms/rails_admin_menu.rb +145 -0
  126. data/lib/rocket_cms/simple_form_patch.rb +12 -0
  127. data/lib/rocket_cms/tasks.rb +13 -0
  128. data/lib/rocket_cms/version.rb +3 -0
  129. data/release.sh +13 -0
  130. data/rocket_cms.gemspec +54 -0
  131. data/template.rb +557 -0
  132. metadata +533 -0
@@ -0,0 +1,12 @@
1
+ # https://github.com/rs-pro/russian/blob/master/lib/russian/active_model_ext/custom_error_message.rb
2
+ require 'simple_form/components/errors'
3
+ module SimpleForm
4
+ module Components
5
+ module Errors
6
+ protected
7
+ def errors_on_attribute
8
+ object.errors[attribute_name].map {|m| m.sub(/^\^/, '')}
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # require this file to load the tasks
2
+ require 'rake'
3
+
4
+ # Require generator at runtime. If we don't do this the ActionView helpers are included
5
+ # before the Rails environment can be loaded by other Rake tasks, which causes problems
6
+ # for those tasks when rendering using ActionView.
7
+ namespace :rs do
8
+ # Require generator only. When installed as a plugin the require will fail, so in
9
+ # that case, load the environment first.
10
+ task :require do
11
+ Rake::Task['environment'].invoke
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module RocketCMS
2
+ VERSION = "0.7.2.1"
3
+ end
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/bash
2
+ bundle update
3
+ git add --all .
4
+ git commit -am "${*:1}"
5
+ git push
6
+ git push gh master
7
+ rake release
8
+ cd mongoid
9
+ bundle update && rake release
10
+ cd ..
11
+ cd activerecord
12
+ bundle update && rake release
13
+ cd ..
@@ -0,0 +1,54 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'rocket_cms/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'ack_rocket_cms'
7
+ spec.version = RocketCMS::VERSION
8
+ spec.authors = ['glebtv', 'Alexander Kiseliev']
9
+ spec.email = ['glebtv@gmail.com', "i43ack@gmail.com"]
10
+ spec.description = %q{RocketCMS fork}
11
+ spec.summary = %q{Please DO NOT use this gem directly, use ack_rocket_cms_mongoid or ack_rocket_cms_activerecord instead!}
12
+ spec.homepage = 'https://github.com/ack43/rocket_cms'
13
+ spec.license = 'MIT'
14
+
15
+ spec.files = `git ls-files`.split($/).reject {|f| f.start_with?('mongoid') || f.start_with?('activerecord') }
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_development_dependency 'bundler'
21
+ spec.add_development_dependency 'rake'
22
+
23
+ spec.add_dependency 'rails', '>= 4.1.0', '< 5.0'
24
+
25
+ spec.add_dependency 'jquery-rails'
26
+ spec.add_dependency 'simple_form'
27
+ spec.add_dependency 'glebtv-simple_captcha'
28
+ spec.add_dependency 'coffee-rails'
29
+ spec.add_dependency 'devise'
30
+ spec.add_dependency 'turbolinks'
31
+ spec.add_dependency 'validates_email_format_of'
32
+ spec.add_dependency 'rails_admin'
33
+ spec.add_dependency 'rails_admin_nested_set'
34
+ spec.add_dependency 'rails_admin_toggleable'
35
+ spec.add_dependency 'glebtv-ckeditor'
36
+ spec.add_dependency 'rails_admin_settings', '~> 0.9.0'
37
+ spec.add_dependency 'geocoder'
38
+ spec.add_dependency 'simple-navigation'
39
+ spec.add_dependency 'sitemap_generator'
40
+ spec.add_dependency 'kaminari'
41
+ spec.add_dependency 'addressable'
42
+
43
+ # spec.add_dependency ''
44
+ spec.add_dependency 'x-real-ip'
45
+
46
+
47
+ spec.add_dependency "rails_admin_mongoid_localize_field", "~> 0.1.2"
48
+
49
+ spec.add_dependency 'stringex'
50
+ spec.add_dependency 'thor'
51
+
52
+ spec.add_dependency 'smart_excerpt'
53
+ end
54
+
@@ -0,0 +1,557 @@
1
+ rails_spec = (Gem.loaded_specs["railties"] || Gem.loaded_specs["rails"])
2
+ version = rails_spec.version.to_s
3
+
4
+ mongoid = options[:skip_active_record]
5
+
6
+ if Gem::Version.new(version) < Gem::Version.new('4.1.0')
7
+ puts "You are using an old version of Rails (#{version})"
8
+ puts "Please update"
9
+ puts "Stopping"
10
+ exit 1
11
+ end
12
+
13
+ remove_file 'Gemfile'
14
+ create_file 'Gemfile' do <<-TEXT
15
+ source 'https://rubygems.org'
16
+
17
+ gem 'rails', '4.2.0'
18
+ #{if mongoid then "gem 'mongoid', '~> 4.0.0'" else "gem 'pg'" end}
19
+
20
+ # gem 'sass'
21
+
22
+ #{if mongoid then "gem 'ack_rocket_cms_mongoid'" else "gem 'ack_rocket_cms_activerecord'" end}
23
+
24
+ gem 'devise'
25
+
26
+ gem 'sass-rails'
27
+ gem 'compass-rails'
28
+ gem 'compass'
29
+
30
+ gem 'slim-rails'
31
+ gem 'rs_russian'
32
+ gem 'cancancan'
33
+
34
+ gem 'cloner'
35
+ gem 'unicorn'
36
+ gem 'x-real-ip'
37
+
38
+ gem 'sentry-raven'
39
+
40
+ group :development do
41
+ gem 'better_errors'
42
+ gem 'binding_of_caller'
43
+ gem 'pry-rails'
44
+ gem 'spring'
45
+
46
+ gem 'capistrano', require: false
47
+ gem 'rvm1-capistrano3', require: false
48
+ gem 'glebtv-capistrano-unicorn', require: false
49
+ gem 'capistrano-bundler', require: false
50
+ gem 'capistrano-rails', require: false
51
+
52
+ gem 'hipchat'
53
+ # gem 'coffee-rails-source-maps'
54
+ # gem 'compass-rails-source-maps'
55
+ end
56
+
57
+ group :test do
58
+ gem 'rspec-rails'
59
+ gem 'database_cleaner'
60
+ gem 'email_spec'
61
+ #{if mongoid then "gem 'glebtv-mongoid-rspec'" else "" end}
62
+ gem 'ffaker'
63
+ gem 'factory_girl_rails'
64
+ end
65
+
66
+ #{if mongoid then "gem 'mongo_session_store-rails4'" else "" end}
67
+
68
+ gem 'slim'
69
+ gem 'sprockets'
70
+
71
+
72
+ gem 'sitemap_generator'
73
+ gem 'rails_admin_sitemap'
74
+
75
+ gem 'uglifier'
76
+
77
+ group :production do
78
+ gem "god"
79
+ end
80
+
81
+ gem "rails_admin_sort_embedded"
82
+
83
+ TEXT
84
+ end
85
+
86
+ remove_file '.gitignore'
87
+ create_file '.gitignore' do <<-TEXT
88
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
89
+ #
90
+ # If you find yourself ignoring temporary files generated by your text editor
91
+ # or operating system, you probably want to add a global ignore instead:
92
+ # git config --global core.excludesfile '~/.gitignore_global'
93
+ .idea
94
+ .idea/*
95
+
96
+ /.bundle
97
+ /log/*.log
98
+ /tmp/*
99
+ TEXT
100
+ end
101
+
102
+ create_file 'extra/.gitkeep', ''
103
+
104
+ if mongoid
105
+ remove_file 'config/initializers/cookies_serializer.rb'
106
+ create_file 'config/initializers/cookies_serializer.rb' do <<-TEXT
107
+ # Be sure to restart your server when you modify this file.
108
+ # json serializer breaks Devise + Mongoid. DO NOT ENABLE
109
+ # See https://github.com/plataformatec/devise/pull/2882
110
+ # Rails.application.config.action_dispatch.cookies_serializer = :json
111
+ Rails.application.config.action_dispatch.cookies_serializer = :marshal
112
+ TEXT
113
+ end
114
+ end
115
+
116
+ if mongoid
117
+ remove_file 'config/initializers/session_store.rb'
118
+ create_file 'config/initializers/session_store.rb' do <<-TEXT
119
+ # Be sure to restart your server when you modify this file.
120
+
121
+ #Rails.application.config.session_store :cookie_store, key: '_#{app_name.tableize.singularize}_session'
122
+ Rails.application.config.session_store :mongoid_store
123
+
124
+ TEXT
125
+ end
126
+ end
127
+
128
+ remove_file 'app/controllers/application_controller.rb'
129
+ create_file 'app/controllers/application_controller.rb' do <<-TEXT
130
+ class ApplicationController < ActionController::Base
131
+ include RocketCMS::Controller
132
+ end
133
+ TEXT
134
+ end
135
+
136
+ create_file 'config/navigation.rb' do <<-TEXT
137
+ # empty file to please simple_navigation, we are not using it
138
+ # See https://github.com/ack43/rocket_cms/blob/master/app/controllers/concerns/rs_menu.rb
139
+ TEXT
140
+ end
141
+
142
+ create_file 'README.md', "## #{app_name}\nProject generated by RocketCMS\nORM: #{if mongoid then 'Mongoid' else 'ActiveRecord' end}\n\n"
143
+
144
+ create_file '.ruby-version', "2.2.0\n"
145
+ create_file '.ruby-gemset', "#{app_name}\n"
146
+
147
+ run 'bundle install --without production'
148
+
149
+
150
+ if mongoid
151
+ create_file 'config/mongoid.yml' do <<-TEXT
152
+ development:
153
+ sessions:
154
+ default:
155
+ database: #{app_name.downcase}
156
+ hosts:
157
+ - localhost:27017
158
+ production:
159
+ sessions:
160
+ default:
161
+ database: #{app_name.downcase}
162
+ hosts:
163
+ - localhost:27017
164
+ test:
165
+ sessions:
166
+ default:
167
+ database: #{app_name.downcase}_test
168
+ hosts:
169
+ - localhost:27017
170
+ TEXT
171
+ end
172
+ else
173
+ remove_file 'config/database.yml'
174
+ create_file 'config/database.yml' do <<-TEXT
175
+ development:
176
+ adapter: postgresql
177
+ encoding: unicode
178
+ database: #{app_name.downcase}_development
179
+ pool: 5
180
+ username: #{app_name.downcase}
181
+ password: #{app_name.downcase}
182
+ template: template0
183
+ TEXT
184
+ end
185
+ say "Please create a PostgreSQL user #{app_name.downcase} with password #{app_name.downcase} and a database #{app_name.downcase}_development owned by him for development NOW.", :red
186
+ ask("Press <enter> when done.", true)
187
+ end
188
+
189
+ unless mongoid
190
+ generate 'simple_captcha'
191
+ end
192
+
193
+ generate "devise:install"
194
+ generate "devise", "User"
195
+ remove_file "config/locales/devise.en.yml"
196
+ remove_file "config/locales/en.yml"
197
+
198
+ gsub_file 'app/models/user.rb', '# :confirmable, :lockable, :timeoutable and :omniauthable', '# :confirmable, :registerable, :timeoutable and :omniauthable'
199
+ gsub_file 'app/models/user.rb', ':registerable,', ' :lockable,'
200
+ if mongoid
201
+ gsub_file 'app/models/user.rb', '# field :failed_attempts', 'field :failed_attempts'
202
+ gsub_file 'app/models/user.rb', '# field :unlock_token', 'field :unlock_token'
203
+ gsub_file 'app/models/user.rb', '# field :locked_at', 'field :locked_at'
204
+
205
+ inject_into_file 'app/models/user.rb', before: /^end/ do <<-TEXT
206
+
207
+ field :name, type: String
208
+ field :login, type: String
209
+ field :roles, type: Array
210
+
211
+ before_save do
212
+ self.roles.reject! { |r| r.blank? }
213
+ end
214
+
215
+ AVAILABLE_ROLES = ["admin", "manager", "client"]
216
+
217
+ AVAILABLE_ROLES.each do |r|
218
+ class_eval <<-EVAL
219
+ def \#{r}?
220
+ self.roles.include?("\#{r}")
221
+ end
222
+ EVAL
223
+ end
224
+
225
+ rails_admin do
226
+ list do
227
+ field :email
228
+ field :name
229
+ field :login
230
+ field :roles do
231
+ pretty_value do
232
+ bindings[:view].content_tag(:p, bindings[:object].roles.join(", "))
233
+ end
234
+ end
235
+ end
236
+
237
+ edit do
238
+ field :email, :string do
239
+ visible do
240
+ bindings[:view].current_user.admin?
241
+ end
242
+ end
243
+ field :name, :string
244
+ field :login, :string do
245
+ visible do
246
+ bindings[:view].current_user.admin?
247
+ end
248
+ end
249
+ field :roles, :enum do
250
+ enum do
251
+ AVAILABLE_ROLES
252
+ end
253
+
254
+ multiple do
255
+ true
256
+ end
257
+
258
+ visible do
259
+ bindings[:view].current_user.admin?
260
+ end
261
+ end
262
+
263
+ field :password do
264
+ visible do
265
+ bindings[:view].current_user.admin? or bindings[:view].current_user == bindings[:object]
266
+ end
267
+ end
268
+ field :password_confirmation do
269
+ visible do
270
+ bindings[:view].current_user.admin? or bindings[:view].current_user == bindings[:object]
271
+ end
272
+ end
273
+ end
274
+ end
275
+ TEXT
276
+ end
277
+ end
278
+
279
+ if mongoid
280
+ generate "ckeditor:install", "--orm=mongoid", "--backend=paperclip"
281
+ else
282
+ generate "ckeditor:install", "--orm=active_record", "--backend=paperclip"
283
+ end
284
+
285
+ unless mongoid
286
+ generate "rocket_cms:migration"
287
+ generate "rails_admin_settings:migration"
288
+ end
289
+
290
+ generate "rocket_cms:admin"
291
+ generate "rocket_cms:ability"
292
+ generate "rocket_cms:layout"
293
+
294
+ unless mongoid
295
+ rake "db:migrate"
296
+ end
297
+
298
+ generate "simple_form:install"
299
+
300
+ generate "rspec:install"
301
+
302
+ remove_file 'config/routes.rb'
303
+ create_file 'config/routes.rb' do <<-TEXT
304
+ Rails.application.routes.draw do
305
+ devise_for :users
306
+ mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
307
+ mount Ckeditor::Engine => '/ckeditor'
308
+
309
+ get 'contacts' => 'contacts#new', as: :contacts
310
+ post 'contacts' => 'contacts#create', as: :create_contacts
311
+ get 'contacts/sent' => 'contacts#sent', as: :contacts_sent
312
+
313
+ get 'search' => 'search#index', as: :search
314
+
315
+ resources :news, only: [:index, :show]
316
+
317
+ root to: 'home#index'
318
+
319
+ get '*slug' => 'pages#show'
320
+ resources :pages, only: [:show]
321
+ end
322
+ TEXT
323
+ end
324
+
325
+ create_file 'config/locales/ru.yml' do <<-TEXT
326
+ ru:
327
+ attributes:
328
+ is_default: По умолчанию
329
+ mongoid:
330
+ models:
331
+ item: Товар
332
+ attributes:
333
+ item:
334
+ price: Цена
335
+ TEXT
336
+ end
337
+
338
+ remove_file 'db/seeds.rb'
339
+
340
+ require 'securerandom'
341
+ admin_pw = SecureRandom.urlsafe_base64(6)
342
+ create_file 'db/seeds.rb' do <<-TEXT
343
+ admin_pw = "#{admin_pw}"
344
+ User.destroy_all
345
+ User.create!(email: 'admin@#{app_name.dasherize.downcase}.ru', password: admin_pw, password_confirmation: admin_pw)
346
+ TEXT
347
+ end
348
+
349
+ create_file 'config/initializers/rack.rb' do <<-TEXT
350
+ if Rails.env.development?
351
+ module Rack
352
+ class CommonLogger
353
+ alias_method :log_without_assets, :log
354
+ #{'ASSETS_PREFIX = "/#{Rails.application.config.assets.prefix[/\A\/?(.*?)\/?\z/, 1]}/"'}
355
+ def log(env, status, header, began_at)
356
+ unless env['REQUEST_PATH'].start_with?(ASSETS_PREFIX) || env['REQUEST_PATH'].start_with?('/uploads') || env['REQUEST_PATH'].start_with?('/system')
357
+ log_without_assets(env, status, header, began_at)
358
+ end
359
+ end
360
+ end
361
+ end
362
+ end
363
+ TEXT
364
+ end
365
+
366
+ create_file 'app/assets/stylesheets/rails_admin/custom/theming.css.sass' do <<-TEXT
367
+ .navbar-brand
368
+ margin-left: 0 !important
369
+
370
+ .input-small
371
+ width: 150px
372
+
373
+ input[type=text]
374
+ width: 380px !important
375
+ input.ra-filtering-select-input[type=text]
376
+ width: 180px !important
377
+ input.hasDatepicker
378
+ width: 180px !important
379
+
380
+ .sidebar-nav
381
+ a
382
+ padding: 6px 10px !important
383
+ .dropdown-header
384
+ padding: 10px 0px 3px 9px
385
+
386
+ .label-important
387
+ background-color: #d9534f
388
+ .alert-notice
389
+ color: #5bc0de
390
+
391
+ .page-header
392
+ display: none
393
+ .breadcrumb
394
+ margin-top: 20px
395
+
396
+ .control-group
397
+ clear: both
398
+
399
+ .container-fluid
400
+ padding-left: 0
401
+ > .row
402
+ margin: 0
403
+
404
+ .last.links
405
+ a
406
+ display: inline-block
407
+ padding: 3px
408
+ font-size: 20px
409
+
410
+ .remove_nested_fields
411
+ display: block !important
412
+ z-index: 5
413
+ right: 0
414
+ left: auto
415
+
416
+ .modal
417
+ width: 800px !important
418
+
419
+
420
+ body.rails_admin .modal
421
+ margin: 0 auto !important
422
+ .modal-dialog
423
+ width: 990px !important
424
+
425
+ input[type=checkbox]
426
+ width: 30px !important
427
+
428
+ body.rails_admin
429
+
430
+ .root_links
431
+
432
+ > li
433
+ display: inline-block
434
+
435
+ .dropdown-header
436
+ border-top: 2px solid #777777
437
+ text-align: right
438
+
439
+ &:first-child
440
+ border-top: none
441
+
442
+ .bank_row .logo_field, #edit_bank img
443
+ background: #ccc !important
444
+
445
+ .ui-menu-item
446
+ border: 1px solid transparent
447
+
448
+ .content > .alert
449
+ margin-top: 20px
450
+
451
+ TEXT
452
+ end
453
+
454
+ remove_file 'public/robots.txt'
455
+ create_file 'public/robots.txt' do <<-TEXT
456
+ User-Agent: *
457
+ Disallow: /admin
458
+ Sitemap: /sitemap.xml.gz
459
+ TEXT
460
+ end
461
+
462
+
463
+ remove_file 'app/views/layouts/application.html.erb'
464
+
465
+
466
+ remove_file 'config/application.rb'
467
+ create_file 'config/application.rb' do <<-TEXT
468
+ require File.expand_path('../boot', __FILE__)
469
+
470
+ # Pick the frameworks you want:
471
+ require "active_model/railtie"
472
+ #{'#' if mongoid}require "active_record/railtie"
473
+ require "action_controller/railtie"
474
+ require "action_mailer/railtie"
475
+ require "action_view/railtie"
476
+ require "sprockets/railtie"
477
+ # require "rails/test_unit/railtie"
478
+
479
+ # Require the gems listed in Gemfile, including any gems
480
+ # you've limited to :test, :development, or :production.
481
+ Bundler.require(*Rails.groups)
482
+
483
+ module #{app_name.camelize}
484
+ class Application < Rails::Application
485
+ config.generators do |g|
486
+ g.test_framework :rspec
487
+ g.view_specs false
488
+ g.helper_specs false
489
+ g.feature_specs false
490
+ g.template_engine :slim
491
+ g.stylesheets false
492
+ g.javascripts false
493
+ g.helper false
494
+ g.fixture_replacement :factory_girl, :dir => 'spec/factories'
495
+ end
496
+
497
+ config.i18n.locale = :ru
498
+ config.i18n.default_locale = :ru
499
+ config.i18n.available_locales = [:ru, :en]
500
+ config.i18n.enforce_available_locales = true
501
+ #{'config.active_record.schema_format = :sql' unless mongoid}
502
+
503
+ #{'config.autoload_paths += %W(#{config.root}/extra)'}
504
+ #{'config.eager_load_paths += %W(#{config.root}/extra)'}
505
+
506
+ config.time_zone = 'Europe/Moscow'
507
+ config.assets.paths << Rails.root.join("app", "assets", "fonts")
508
+ end
509
+ end
510
+
511
+ TEXT
512
+ end
513
+
514
+ remove_file 'app/assets/stylesheets/application.css'
515
+ create_file 'app/assets/stylesheets/application.css.sass' do <<-TEXT
516
+ @import 'compass'
517
+ @import 'rocket_cms'
518
+
519
+ #wrapper
520
+ width: 960px
521
+ margin: 0 auto
522
+ #sidebar
523
+ float: left
524
+ width: 200px
525
+ #content
526
+ float: right
527
+ width: 750px
528
+
529
+ @import "compass/layout/sticky-footer"
530
+ +sticky-footer(50px)
531
+ TEXT
532
+ end
533
+
534
+ remove_file 'app/assets/javascripts/application.js'
535
+ create_file 'app/assets/javascripts/application.js.coffee' do <<-TEXT
536
+ #= require rocket_cms
537
+ TEXT
538
+ end
539
+
540
+ if mongoid
541
+ FileUtils.cp(Pathname.new(destination_root).join('config', 'mongoid.yml').to_s, Pathname.new(destination_root).join('config', 'mongoid.yml.example').to_s)
542
+ else
543
+ FileUtils.cp(Pathname.new(destination_root).join('config', 'database.yml').to_s, Pathname.new(destination_root).join('config', 'database.yml.example').to_s)
544
+ end
545
+
546
+ FileUtils.cp(Pathname.new(destination_root).join('config', 'secrets.yml').to_s, Pathname.new(destination_root).join('config', 'secrets.yml.example').to_s)
547
+
548
+ unless mongoid
549
+ generate "paper_trail:install"
550
+ generate "friendly_id"
551
+ rake "db:migrate"
552
+ end
553
+
554
+ git :init
555
+ git add: "."
556
+ git commit: %Q{ -m 'Initial commit' }
557
+