cybele 1.8.0 → 1.9.0

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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/README.md +16 -2
  4. data/dump.rdb +1 -0
  5. data/lib/cybele/app_builder.rb +213 -220
  6. data/lib/cybele/generators/app_generator.rb +31 -20
  7. data/lib/cybele/version.rb +2 -2
  8. data/templates/.env.local.erb +11 -0
  9. data/templates/.env.production.erb +11 -0
  10. data/templates/.env.staging.erb +11 -0
  11. data/templates/README.md.erb +22 -0
  12. data/templates/app/assets/javascripts/application.js.coffee +63 -1
  13. data/templates/app/assets/javascripts/hq/application.js.coffee +93 -0
  14. data/templates/app/assets/stylesheets/application.css.sass +15 -4
  15. data/templates/app/assets/stylesheets/hq/application.css.sass +92 -0
  16. data/templates/app/controllers/application_controller.rb.erb +48 -0
  17. data/templates/app/controllers/concerns/basic_authentication.rb +18 -0
  18. data/templates/app/controllers/hq/admins_controller.rb +64 -0
  19. data/templates/app/controllers/hq/application_controller.rb +11 -0
  20. data/templates/app/controllers/hq/audits_controller.rb +16 -0
  21. data/templates/app/controllers/hq/cities_controller.rb +54 -0
  22. data/templates/app/controllers/hq/countries_controller.rb +54 -0
  23. data/templates/app/controllers/hq/dashboard_controller.rb +4 -1
  24. data/templates/app/controllers/hq/passwords_controller.rb +10 -0
  25. data/templates/app/controllers/hq/registrations_controller.rb +21 -0
  26. data/templates/app/controllers/hq/sessions_controller.rb +1 -1
  27. data/templates/app/controllers/hq/users_controller.rb +64 -0
  28. data/templates/app/controllers/user/dashboard_controller.rb +8 -0
  29. data/templates/app/controllers/user/passwords_controller.rb +10 -0
  30. data/templates/app/controllers/user/profiles_controller.rb +34 -0
  31. data/templates/app/controllers/user/registrations_controller.rb +20 -0
  32. data/templates/app/controllers/user/sessions_controller.rb +16 -0
  33. data/templates/app/controllers/user/user_application_controller.rb +20 -0
  34. data/templates/app/helpers/application_helper.rb.erb +27 -0
  35. data/templates/app/mailers/admin_mailer.rb +10 -0
  36. data/templates/app/mailers/base_mailer.rb +4 -0
  37. data/templates/app/mailers/user_mailer.rb +10 -0
  38. data/templates/app/models/admin.rb +51 -0
  39. data/templates/app/models/audit.rb +3 -0
  40. data/templates/app/models/city.rb +12 -0
  41. data/templates/app/models/country.rb +12 -0
  42. data/templates/app/models/user.rb +54 -0
  43. data/templates/app/views/admin_mailer/login_info.html.haml +13 -0
  44. data/templates/app/views/devise/confirmations/new.html.haml +6 -5
  45. data/templates/app/views/devise/mailer/confirmation_instructions.html.haml +5 -3
  46. data/templates/app/views/devise/mailer/reset_password_instructions.html.haml +2 -2
  47. data/templates/app/views/devise/passwords/edit.html.haml +3 -3
  48. data/templates/app/views/devise/passwords/new.html.haml +3 -3
  49. data/templates/app/views/devise/registrations/edit.html.haml +5 -11
  50. data/templates/app/views/devise/registrations/new.html.haml +18 -6
  51. data/templates/app/views/devise/sessions/new.html.haml +1 -1
  52. data/templates/app/views/devise/shared/_links.haml +3 -1
  53. data/templates/app/views/devise/unlocks/new.html.haml +4 -4
  54. data/templates/app/views/hq/admins/_admin.html.haml +21 -0
  55. data/templates/app/views/hq/admins/_blank.html.haml +9 -0
  56. data/templates/app/views/hq/admins/_filters.html.haml +20 -0
  57. data/templates/app/views/hq/admins/_form.html.haml +17 -0
  58. data/templates/app/views/hq/admins/_list.html.haml +15 -0
  59. data/templates/app/views/hq/admins/edit.html.haml +3 -0
  60. data/templates/app/views/hq/admins/index.html.haml +18 -0
  61. data/templates/app/views/hq/admins/new.html.haml +5 -0
  62. data/templates/app/views/hq/admins/show.html.haml +19 -0
  63. data/templates/app/views/hq/audits/_filters.html.haml +32 -0
  64. data/templates/app/views/hq/audits/_list.html.haml +37 -0
  65. data/templates/app/views/hq/audits/index.html.haml +5 -0
  66. data/templates/app/views/hq/audits/show.html.haml +5 -0
  67. data/templates/app/views/hq/cities/_blank.html.haml +9 -0
  68. data/templates/app/views/hq/cities/_city.html.haml +12 -0
  69. data/templates/app/views/hq/cities/_filters.html.haml +15 -0
  70. data/templates/app/views/hq/cities/_form.html.haml +15 -0
  71. data/templates/app/views/hq/cities/_list.html.haml +13 -0
  72. data/templates/app/views/hq/cities/edit.html.haml +3 -0
  73. data/templates/app/views/hq/cities/index.html.haml +18 -0
  74. data/templates/app/views/hq/cities/new.html.haml +3 -0
  75. data/templates/app/views/hq/cities/show.html.haml +13 -0
  76. data/templates/app/views/hq/countries/_blank.html.haml +9 -0
  77. data/templates/app/views/hq/countries/_country.html.haml +11 -0
  78. data/templates/app/views/hq/countries/_filters.html.haml +14 -0
  79. data/templates/app/views/hq/countries/_form.html.haml +14 -0
  80. data/templates/app/views/hq/countries/_list.html.haml +12 -0
  81. data/templates/app/views/hq/countries/edit.html.haml +3 -0
  82. data/templates/app/views/hq/countries/index.html.haml +18 -0
  83. data/templates/app/views/hq/countries/new.html.haml +3 -0
  84. data/templates/app/views/hq/countries/show.html.haml +14 -0
  85. data/templates/app/views/hq/dashboard/index.html.haml +8 -0
  86. data/templates/app/views/hq/passwords/edit.html.haml +12 -0
  87. data/templates/app/views/hq/passwords/new.html.haml +9 -0
  88. data/templates/app/views/hq/registrations/edit.html.haml +19 -0
  89. data/templates/app/views/hq/sessions/new.html.haml +7 -5
  90. data/templates/app/views/hq/users/_blank.html.haml +9 -0
  91. data/templates/app/views/hq/users/_filters.html.haml +20 -0
  92. data/templates/app/views/hq/users/_form.html.haml +18 -0
  93. data/templates/app/views/hq/users/_list.html.haml +15 -0
  94. data/templates/app/views/hq/users/_user.html.haml +20 -0
  95. data/templates/app/views/hq/users/edit.html.haml +3 -0
  96. data/templates/app/views/hq/users/index.html.haml +18 -0
  97. data/templates/app/views/hq/users/new.html.haml +5 -0
  98. data/templates/app/views/hq/users/show.html.haml +20 -0
  99. data/templates/app/views/layouts/application.html.haml.erb +16 -8
  100. data/templates/app/views/layouts/hq/application.html.haml.erb +55 -0
  101. data/templates/app/views/layouts/hq/login.html.haml.erb +35 -0
  102. data/templates/app/views/layouts/hq/partials/_dock.html.haml.erb +36 -0
  103. data/templates/app/views/layouts/hq/partials/_footer.html.haml.erb +0 -0
  104. data/templates/app/views/layouts/hq/partials/_navbar.html.haml.erb +22 -0
  105. data/templates/app/views/layouts/hq/partials/_trackers.html.haml.erb +0 -0
  106. data/templates/app/views/layouts/mailer.html.haml.erb +321 -0
  107. data/templates/app/views/layouts/mailer.text.haml +1 -0
  108. data/templates/app/views/layouts/partials/_footer.html.haml.erb +0 -0
  109. data/templates/app/views/layouts/partials/_trackers.html.haml.erb +0 -0
  110. data/templates/app/views/layouts/partials/_warnings.html.haml.erb +3 -0
  111. data/templates/app/views/user/dashboard/index.html.haml +8 -0
  112. data/templates/app/views/user/passwords/edit.html.haml +12 -0
  113. data/templates/app/views/user/passwords/new.html.haml +10 -0
  114. data/templates/app/views/{user_profiles → user/profiles}/_form.html.haml +4 -5
  115. data/templates/app/views/user/profiles/edit.html.haml +3 -0
  116. data/templates/app/views/user/profiles/show.html.haml +15 -0
  117. data/templates/app/views/user/registrations/edit.html.haml +19 -0
  118. data/templates/app/views/user/sessions/new.html.haml +11 -0
  119. data/templates/app/views/user_mailer/login_info.html.haml +13 -0
  120. data/templates/app/views/welcome/index.html.haml.erb +4 -4
  121. data/templates/config/initializers/devise_async.rb +6 -0
  122. data/templates/config/initializers/sidekiq.rb +13 -0
  123. data/templates/config/locales/email.tr.yml +28 -0
  124. data/templates/config/locales/models.tr.yml +72 -41
  125. data/templates/config/locales/responders.tr.yml +4 -1
  126. data/templates/config/locales/show_for.tr.yml +1 -3
  127. data/templates/config/locales/simple_form.tr.yml +8 -22
  128. data/templates/config/locales/tr.yml +33 -2
  129. data/templates/config/locales/view.tr.yml +64 -18
  130. data/templates/config/routes.erb +51 -0
  131. data/templates/config/schedule.yml +16 -0
  132. data/templates/config/settings/production.yml +0 -17
  133. data/templates/config/settings/staging.yml +0 -17
  134. data/templates/config/sidekiq.yml +13 -0
  135. data/templates/cybele_Gemfile +42 -5
  136. data/templates/cybele_gitignore +3 -1
  137. data/templates/cybele_version.txt +1 -0
  138. data/templates/env.sample.erb +11 -0
  139. data/templates/lib/data/cities.yml +163 -0
  140. data/templates/lib/tasks/dev.rake +29 -5
  141. data/templates/lib/tasks/sidekiq.rake +26 -0
  142. data/templates/lib/templates/rails/responders_controller/controller.rb +27 -22
  143. data/templates/public/images/favicon.png +0 -0
  144. data/templates/public/images/mail-logo.png +0 -0
  145. data/templates/public/images/missing_cover.png +0 -0
  146. data/templates/public/images/missing_cover@2x.png +0 -0
  147. data/templates/public/images/missing_logo.png +0 -0
  148. data/templates/public/images/missing_logo@2x.png +0 -0
  149. data/templates/public/images/sprite.png +0 -0
  150. data/templates/ruby-version +1 -1
  151. data/templates/vendor/assets/javascripts/jquery.datetimepicker.js +1871 -0
  152. data/templates/vendor/assets/javascripts/jquery.maskedinput.min.js +7 -0
  153. data/templates/vendor/assets/javascripts/nprogress.js +491 -0
  154. data/templates/vendor/assets/javascripts/trix.js +25 -0
  155. data/templates/vendor/assets/stylesheets/jquery.datetimepicker.css +418 -0
  156. data/templates/vendor/assets/stylesheets/nprogress.css +74 -0
  157. data/templates/vendor/assets/stylesheets/trix.css +209 -0
  158. metadata +125 -24
  159. data/templates/app/controllers/application_controller.rb +0 -19
  160. data/templates/app/controllers/hq/admin_profiles_controller.rb +0 -56
  161. data/templates/app/controllers/user_profiles_controller.rb +0 -56
  162. data/templates/app/views/hq/admin_profiles/_form.html.haml +0 -15
  163. data/templates/app/views/hq/admin_profiles/edit.html.haml +0 -3
  164. data/templates/app/views/hq/admin_profiles/new.html.haml +0 -3
  165. data/templates/app/views/hq/admin_profiles/show.html.haml +0 -13
  166. data/templates/app/views/hq/dashboard/index.html.haml.erb +0 -3
  167. data/templates/app/views/user_profiles/edit.html.haml +0 -3
  168. data/templates/app/views/user_profiles/new.html.haml +0 -3
  169. data/templates/app/views/user_profiles/show.html.haml +0 -13
  170. data/templates/config/locales/en.yml +0 -2
  171. data/templates/config/locales/models.en.yml +0 -54
  172. data/templates/config/locales/responders.en.yml +0 -10
  173. data/templates/config/locales/show_for.en.yml +0 -7
  174. data/templates/config/locales/simple_form.en.yml +0 -30
  175. data/templates/config/locales/view.en.yml +0 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a788b824a1b73bac7a2aae8bdb83c3db49e22e1e
4
- data.tar.gz: 28c55b7479c31ed8e9d65122644f776d7b768878
3
+ metadata.gz: 5d20082fbfddfd73323a2fe7744834c8c5fb7463
4
+ data.tar.gz: 79f5f17d6a28b742fc333b15d35ae4f0304ae0cf
5
5
  SHA512:
6
- metadata.gz: 4c6f01afe2722325b409aa2487ec4f6228d2297cbf51628a7caf8adec469f6d6656c17d64c8b9d71662ae40c9039b2497cf07c1cc2d2c7b6d76d15edc6cfe321
7
- data.tar.gz: 998c112ed7610a489a39924c7d56e61e6e7575eba0853cd6aadec9c05098969aa57cec710bff83957887ddd842c5ef50838cc89baf9be63e4843e58dc4a343af
6
+ metadata.gz: 7dd8e0f4af300b4fe2ed0429d29fe3fc8a4cf7bbdd5bfbde6c659182c1d1c63c3375112a5b57a0c087a357cdaae75fd4555076287f0c6335924f7aa99d326752
7
+ data.tar.gz: 24ac8854aa5317c48c21c7b7ff89acfe2b8c6f4e6fb38c3c838a63df46182ab428b0eb1e2f14c9bae511eafcf37787e2583a40d1542200b5427c6d745b8a71f1
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.3.0
data/README.md CHANGED
@@ -13,7 +13,7 @@ western colonies from around the 6th century BCE.
13
13
 
14
14
  Before generating your application, you will need:
15
15
 
16
- * Ruby ~> 2.2
16
+ * Ruby ~> 2.3
17
17
  * Rails ~> 4.2
18
18
 
19
19
  ## Usage
@@ -25,10 +25,24 @@ gem install cybele
25
25
  cybele project_name
26
26
  ```
27
27
 
28
- When the initialization is completed, there will be pending migrations. Run the rake command to execute them if you want:
28
+ When the initialization is completed, there will be some required settings.
29
29
 
30
+ * Set .env.local variables
31
+ * Set access_token in config/initializers/rollbar.rb
32
+ * Set default values for is_active, time_zone variable using in User and Admin model migrations db/migrate/*.rb
33
+ * Change username and password in config/settings.yml
34
+ * In public folder run this command ln -s ../VERSION.txt VERSION.txt
35
+
36
+ We are using sidekiq with redis-server for background jobs.
37
+ Before the run application look our env.sample file. It should be in project root directory with this name .env.local
30
38
  ```bash
39
+ bundle
40
+ redis-server
41
+ rake sidekiq:start
42
+ rake db:create
31
43
  rake db:migrate
44
+ rake dev:seed
45
+ rails s
32
46
  ```
33
47
 
34
48
  ## What cybele do and included?
data/dump.rdb ADDED
@@ -0,0 +1 @@
1
+ REDIS0006�ܳC�Z��V
@@ -7,11 +7,11 @@ module Cybele
7
7
  end
8
8
 
9
9
  def remove_readme_rdoc
10
- remove_file 'README.rdoc'
10
+ remove_file 'README.rdoc', force: true
11
11
  end
12
12
 
13
13
  def replace_gemfile
14
- remove_file 'Gemfile'
14
+ remove_file 'Gemfile', force: true
15
15
  copy_file 'cybele_Gemfile', 'Gemfile'
16
16
  end
17
17
 
@@ -32,20 +32,16 @@ module Cybele
32
32
  end
33
33
 
34
34
  def replace_erb_with_haml
35
- remove_file 'app/views/layouts/application.html.erb'
35
+ remove_file 'app/views/layouts/application.html.erb', force: true
36
36
  template 'app/views/layouts/application.html.haml.erb', 'app/views/layouts/application.html.haml', force: true
37
37
  end
38
38
 
39
- def copy_rake_files
40
- copy_file 'lib/tasks/annotate.rake', 'lib/tasks/annotate.rake', force: true
41
- end
42
-
43
39
  def install_responder_gem
44
40
  copy_file 'lib/application_responder.rb', 'lib/application_responder.rb'
45
- remove_file 'app/controllers/application_controller.rb'
41
+ remove_file 'app/controllers/application_controller.rb', force: true
46
42
  copy_file 'app/controllers/application_controller.rb', 'app/controllers/application_controller.rb'
43
+ copy_file 'app/controllers/concerns/basic_authentication.rb', 'app/controllers/concerns/basic_authentication.rb'
47
44
  copy_file 'lib/templates/rails/responders_controller/controller.rb', 'lib/templates/rails/responders_controller/controller.rb'
48
- copy_file 'config/locales/responders.en.yml', 'config/locales/responders.en.yml'
49
45
  copy_file 'config/locales/responders.tr.yml', 'config/locales/responders.tr.yml'
50
46
  end
51
47
 
@@ -58,7 +54,7 @@ module Cybele
58
54
  end
59
55
 
60
56
  def setup_gitignore_files
61
- remove_file '.gitignore'
57
+ remove_file '.gitignore', force: true
62
58
  copy_file 'cybele_gitignore', '.gitignore'
63
59
  end
64
60
 
@@ -78,45 +74,54 @@ module Cybele
78
74
  end
79
75
 
80
76
  def setup_asset_precompile
81
-
82
77
  config = <<-RUBY
83
-
84
78
  config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
85
79
  config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
86
80
  config.sass.preferred_syntax = :sass
81
+ config.i18n.default_locale = :tr
82
+ config.time_zone = 'Istanbul'
83
+ config.i18n.fallbacks = true
84
+ config.active_job.queue_adapter = :sidekiq
87
85
  RUBY
88
-
89
- inject_into_file 'config/application.rb', config, :after => '# config.i18n.default_locale = :de'
86
+ inject_into_file 'config/application.rb', config, after: '# config.i18n.default_locale = :de'
90
87
  end
91
88
 
92
89
  def convert_application_js_to_coffee
93
- remove_file 'app/assets/javascripts/application.js'
90
+ remove_file 'app/assets/javascripts/application.js', force: true
94
91
  copy_file 'app/assets/javascripts/application.js.coffee', 'app/assets/javascripts/application.js.coffee'
95
92
  end
96
93
 
97
94
  def convert_application_css_to_sass
98
- remove_file 'app/assets/stylesheets/application.css'
95
+ remove_file 'app/assets/stylesheets/application.css', force: true
99
96
  copy_file 'app/assets/stylesheets/application.css.sass', 'app/assets/stylesheets/application.css.sass'
100
97
  end
101
98
 
99
+ def copy_vendor_assets
100
+ directory 'vendor/assets', 'vendor/assets'
101
+ end
102
+
102
103
  def configure_smtp
103
- remove_file 'config/settings/production.yml'
104
+ remove_file 'config/settings/production.yml', force: true
104
105
  copy_file 'config/settings/production.yml', 'config/settings/production.yml'
105
106
  copy_file 'config/settings/staging.yml', 'config/settings/staging.yml'
106
107
 
108
+ config = <<-RUBY
109
+ Mail.register_interceptor RecipientInterceptor.new(Settings.email.sandbox, subject_prefix: '[STAGING]')
110
+ RUBY
111
+ configure_environment 'staging', config
112
+
107
113
  config = <<-RUBY
108
114
  config.action_mailer.delivery_method = :smtp
109
115
  config.action_mailer.raise_delivery_errors = false
110
116
  config.action_mailer.smtp_settings = {
111
- address: Settings.smtp.mandrill.address,
112
- port: Settings.smtp.mandrill.port,
113
- enable_starttls_auto: Settings.smtp.mandrill.enable_starttls_auto,
114
- user_name: Settings.smtp.mandrill.user_name,
115
- password: Settings.smtp.mandrill.password,
116
- authentication: Settings.smtp.mandrill.authentication
117
+ address: Settings.smtp.address,
118
+ port: Settings.smtp.port,
119
+ enable_starttls_auto: Settings.smtp.enable_starttls_auto,
120
+ user_name: Settings.smtp.user_name,
121
+ password: Settings.smtp.password,
122
+ authentication: Settings.smtp.authentication
117
123
  }
118
124
  RUBY
119
-
120
125
  configure_environment 'production', config
121
126
  configure_environment 'staging', config
122
127
  end
@@ -127,29 +132,57 @@ config.after_initialize do
127
132
  Bullet.enable = true
128
133
  Bullet.alert = true
129
134
  Bullet.bullet_logger = true
135
+ Bullet.console = true
136
+ Bullet.rails_logger = true
137
+ Bullet.add_footer = false
130
138
  end
131
139
  RUBY
132
-
133
140
  configure_environment 'development', config
134
141
  end
135
142
 
136
143
  def setup_staging_environment
137
144
  run 'cp config/environments/production.rb config/environments/staging.rb'
138
-
139
- prepend_file 'config/environments/staging.rb',
140
- "Mail.register_interceptor RecipientInterceptor.new(Settings.email.noreply, subject_prefix: '[STAGING]')\n"
141
-
142
145
  config = <<-YML
143
146
  email:
147
+ sandbox: sandbox@#{app_name}.com
144
148
  noreply: no-reply@#{app_name}.com
149
+ admin: admin@#{app_name}.com
150
+
151
+ basic_auth:
152
+ username: #{app_name}
153
+ password: #{app_name}
154
+
155
+ sidekiq:
156
+ username: #{app_name}
157
+ password: #{app_name}
158
+
159
+ root_path: <%= ENV['ROOT_PATH'] %>
160
+
161
+ smtp:
162
+ address: <%= ENV['SMTP_ADDRESS'] %>
163
+ port: 587
164
+ enable_starttls_auto: true
165
+ user_name: <%= ENV['SMTP_USER_NAME'] %>
166
+ password: <%= ENV['SMTP_PASSWORD'] %>
167
+ authentication: 'plain'
168
+
169
+ AWS:
170
+ S3:
171
+ bucket: <%= ENV['S3_BUCKET_NAME'] %>
172
+ access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
173
+ secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
174
+ aws_url: http://<%= ENV['AWS_RAW_URL'] %>
175
+ aws_raw_url: <%= ENV['AWS_RAW_URL'] %>
176
+ # Bucket region should be ireland for this setting
177
+ end_point: s3-eu-west-1.amazonaws.com
145
178
  YML
146
179
  prepend_file 'config/settings.yml', config
147
180
  end
148
181
 
149
182
  def configure_action_mailer
150
- action_mailer_host 'development', "localhost:3000"
151
- action_mailer_host 'staging', "staging.#{app_name}.com"
152
- action_mailer_host 'production', "#{app_name}.com"
183
+ action_mailer_host 'development'
184
+ action_mailer_host 'staging'
185
+ action_mailer_host 'production'
153
186
  end
154
187
 
155
188
  def setup_letter_opener
@@ -162,14 +195,11 @@ email:
162
195
  end
163
196
 
164
197
  def generate_capybara
165
- inject_into_file 'spec/spec_helper.rb', :after => "require 'rspec/autorun'" do <<-CODE
166
-
198
+ inject_into_file 'spec/spec_helper.rb', after: "require 'rspec/autorun'" do <<-CODE
167
199
  require 'capybara/rspec'
168
200
  CODE
169
201
  end
170
- inject_into_file 'spec/spec_helper.rb', :after => ' config.order = "random"' do <<-CODE
171
-
172
-
202
+ inject_into_file 'spec/spec_helper.rb', after: ' config.order = "random"' do <<-CODE
173
203
  # Capybara DSL
174
204
  config.include Capybara::DSL
175
205
  CODE
@@ -177,9 +207,7 @@ require 'capybara/rspec'
177
207
  end
178
208
 
179
209
  def generate_factory_girl
180
- inject_into_file 'spec/spec_helper.rb', :after => ' config.include Capybara::DSL' do <<-CODE
181
-
182
-
210
+ inject_into_file 'spec/spec_helper.rb', after: ' config.include Capybara::DSL' do <<-CODE
183
211
  # Factory girl
184
212
  config.include FactoryGirl::Syntax::Methods
185
213
  CODE
@@ -194,34 +222,28 @@ require 'capybara/rspec'
194
222
 
195
223
  def generate_exception_notification
196
224
  generate 'exception_notification:install'
225
+ generate 'rollbar your_token'
197
226
  end
198
227
 
199
228
  def add_exception_notification_to_environments
200
229
  config = <<-CODE
201
230
  config.middleware.use ExceptionNotification::Rack,
202
- :email => {
203
- :email_prefix => "[#{app_name}]",
204
- :sender_address => %{"Notifier" <notifier@#{app_name}.com>},
205
- :exception_recipients => %w{your_email@address.com}
231
+ email: {
232
+ email_prefix: "[#{app_name}]",
233
+ sender_address: %{"Notifier" <notifier@#{app_name}.com>},
234
+ exception_recipients: %w{your_email@address.com}
206
235
  }
207
236
  CODE
208
-
209
237
  configure_environment('production', config)
210
238
  configure_environment('staging', config)
211
-
212
- inject_into_file 'config/initializers/exception_notification.rb', :before => 'config.add_notifier :email, {' do <<-RUBY
239
+ inject_into_file 'config/initializers/exception_notification.rb', before: 'config.add_notifier :email, {' do <<-RUBY
213
240
  unless Rails.env == 'development'
214
241
  RUBY
215
242
  end
216
-
217
- inject_into_file 'config/initializers/exception_notification.rb', :before => '# Campfire notifier sends notifications to your Campfire room.' do <<-RUBY
243
+ inject_into_file 'config/initializers/exception_notification.rb', before: '# Campfire notifier sends notifications to your Campfire room.' do <<-RUBY
218
244
  end
219
245
  RUBY
220
246
  end
221
-
222
- end
223
-
224
- def leftovers
225
247
  end
226
248
 
227
249
  def generate_rails_config
@@ -232,12 +254,16 @@ config.middleware.use ExceptionNotification::Rack,
232
254
  generate 'devise:install'
233
255
  gsub_file 'config/initializers/filter_parameter_logging.rb', /:password/, ':password, :password_confirmation'
234
256
  gsub_file 'config/initializers/devise.rb', /please-change-me-at-config-initializers-devise@example.com/, "no-reply@#{app_name}.com"
257
+ inject_into_file 'config/initializers/devise.rb', after: "# config.mailer = 'Devise::Mailer'\n" do <<-RUBY
258
+ Devise::Mailer.layout 'mailer'
259
+ RUBY
260
+ end
235
261
  end
236
262
 
237
- def generate_devise_model(model_name)
238
- generate "devise #{model_name} name:string"
239
- generate_devise_strong_parameters(model_name)
240
- remove_file 'config/locales/devise.en.yml'
263
+ def generate_devise_user
264
+ generate 'devise User name:string surname:string is_active:boolean time_zone:string'
265
+ generate_devise_strong_parameters('user')
266
+ remove_file 'config/locales/devise.en.yml', force: true
241
267
  end
242
268
 
243
269
  def generate_devise_views
@@ -247,61 +273,29 @@ config.middleware.use ExceptionNotification::Rack,
247
273
  def generate_welcome_page
248
274
  copy_file 'app/controllers/welcome_controller.rb', 'app/controllers/welcome_controller.rb'
249
275
  template 'app/views/welcome/index.html.haml.erb', 'app/views/welcome/index.html.haml', force: true
250
- route "root to: 'welcome#index'"
251
276
  end
252
277
 
253
- def generate_hq_namespace
254
- generate "devise Admin"
255
- create_namespace_routing('hq')
256
- directory 'app/controllers/hq', 'app/controllers/hq'
257
- #template 'app/views/layouts/hq/base.html.haml.erb', 'app/views/layouts/hq/base.html.haml', force: true
258
- template 'app/views/hq/dashboard/index.html.haml.erb', 'app/views/hq/dashboard/index.html.haml', force: true
259
- directory 'app/views/hq/sessions', 'app/views/hq/sessions'
260
- gsub_file 'config/routes.rb', /devise_for :admins/, "devise_for :admins, controllers: {sessions: 'hq/sessions'}, path: 'hq',
261
- path_names: {sign_in: 'login', sign_out: 'logout', password: 'secret',
262
- confirmation: 'verification'}"
263
- gsub_file 'app/models/admin.rb', /:registerable,/, ''
264
-
265
- say 'Configuring profile editors...'
266
- setup_profile_editors
267
- end
268
-
269
- def setup_profile_editors
270
- # Inserting routes
271
- inject_into_file 'config/routes.rb', :after => "namespace :hq do\n" do <<-RUBY
272
- root to: 'dashboard#index'
273
- resource :admin_profile, except: [:destroy], path: 'profile'
274
- RUBY
275
- end
276
-
277
- inject_into_file 'config/routes.rb', :after => "to: 'welcome#index'\n" do <<-RUBY
278
+ def setup_namespaces
279
+ generate 'devise Admin name:string surname:string is_active:boolean time_zone:string'
278
280
 
279
- resource :user_profile, except: [:destroy], path: 'profile'
280
-
281
- RUBY
282
- end
283
- end
281
+ directory 'app/controllers/hq', 'app/controllers/hq'
282
+ directory 'app/views/hq', 'app/views/hq'
284
283
 
285
- def set_time_zone
286
- add_set_user_time_zone_method_to_application_controller
287
- add_time_zone_to_user
288
- end
284
+ # User controllers
285
+ directory 'app/controllers/user', 'app/controllers/user'
286
+ directory 'app/views/user', 'app/views/user'
289
287
 
290
- def create_profile
291
- add_profile_models
292
- add_profile_controllers
293
- add_profile_views
294
288
  end
295
289
 
296
290
  def create_hierapolis_theme
297
- remove_file 'lib/templates/rails/responders_controller/controller.rb'
298
- remove_file 'lib/templates/haml/scaffold/_form.html.haml'
291
+ remove_file 'lib/templates/rails/responders_controller/controller.rb', force: true
292
+ remove_file 'lib/templates/haml/scaffold/_form.html.haml', force: true
299
293
  generate 'hierapolis:install'
300
294
  end
301
295
 
302
296
  def replace_simple_form_wrapper
303
- remove_file 'config/initializers/simple_form.rb'
304
- remove_file 'config/initializers/simple_form_bootstrap.rb'
297
+ remove_file 'config/initializers/simple_form.rb', force: true
298
+ remove_file 'config/initializers/simple_form_bootstrap.rb', force: true
305
299
 
306
300
  copy_file 'config/initializers/simple_form.rb', 'config/initializers/simple_form.rb'
307
301
  copy_file 'config/initializers/simple_form_bootstrap.rb', 'config/initializers/simple_form_bootstrap.rb'
@@ -318,7 +312,7 @@ config.middleware.use ExceptionNotification::Rack,
318
312
  # Change my_app_name string in the deploy.rb file with app_name that is created
319
313
  gsub_file 'config/deploy.rb', /my_app_name/, "#{app_name}"
320
314
 
321
- inject_into_file 'Capfile', :after => "require 'capistrano/deploy'\n" do <<-RUBY
315
+ inject_into_file 'Capfile', after: "require 'capistrano/deploy'\n" do <<-RUBY
322
316
  require 'capistrano/rails'
323
317
  require 'capistrano/bundler'
324
318
  require 'sshkit/sudo'
@@ -346,7 +340,7 @@ set :project_domain, "staging.example.com"'
346
340
  end
347
341
 
348
342
  def update_secret_token
349
- remove_file 'config/initializers/secret_token.rb'
343
+ remove_file 'config/initializers/secret_token.rb', force: true
350
344
  template 'config/initializers/secret_token.erb', 'config/initializers/secret_token.rb'
351
345
  end
352
346
 
@@ -355,85 +349,158 @@ set :project_domain, "staging.example.com"'
355
349
  end
356
350
 
357
351
  def create_dev_rake
358
- copy_file 'lib/tasks/dev.rake', 'lib/tasks/dev.rake'
359
352
  end
360
353
 
361
354
  def custom_exception_page
362
355
  copy_file 'app/views/errors/internal_server_error.html.haml', 'app/views/errors/internal_server_error.html.haml'
363
- inject_into_file 'app/controllers/application_controller.rb', :before => 'protected' do <<-CODE
364
-
365
- # rescue_from Exception, :with => :server_error
366
- def server_error(exception)
367
- # ExceptionNotifier::Notifier.exception_notification(request.env, exception).deliver
368
- respond_to do |format|
369
- format.html { render template: 'errors/internal_server_error', layout: 'layouts/application', status: 500 }
370
- format.all { render nothing: true, status: 500}
371
- end
372
- end
373
- CODE
374
- end
375
356
  end
376
357
 
377
358
  def custom_404
378
359
  copy_file 'app/views/errors/not_found.html.haml', 'app/views/errors/not_found.html.haml'
379
- inject_into_file 'app/controllers/application_controller.rb', :before => 'protected' do <<-CODE
380
-
381
- rescue_from ActiveRecord::RecordNotFound, :with => :page_not_found
382
- rescue_from ActionController::RoutingError, :with => :page_not_found
383
- def page_not_found
384
- respond_to do |format|
385
- format.html { render template: 'errors/not_found', layout: 'layouts/application', status: 404 }
386
- format.all { render nothing: true, status: 404 }
387
- end
388
- end
389
- CODE
390
- end
391
360
  end
392
361
 
393
- # Add default admin user and admin profile seeder
394
362
  def add_seeds
395
- say 'Add seeds'
396
- inject_into_file 'db/seeds.rb', :after => "# Mayor.create(name: 'Emanuel', city: cities.first)\n" do <<-RUBY
397
-
398
- admin = Admin.create(email: "admin@#{app_name}.com", password: '12341234', password_confirmation: '12341234')
399
- admin.admin_profile = AdminProfile.create(first_name: 'Admin', last_name: "#{app_name}")
400
-
363
+ inject_into_file 'db/seeds.rb', after: "# Mayor.create(name: 'Emanuel', city: cities.first)\n" do <<-RUBY
364
+ Admin.create(email: "admin@#{app_name}.com", name: 'Admin', surname: 'Admin', password: '12341234', password_confirmation: '12341234')
401
365
  RUBY
402
366
  end
403
367
  end
404
368
 
405
- # Copy locale files
406
- def copy_locales
369
+ # Copy files
370
+ def copy_files
371
+
372
+ # Locale files
407
373
  say 'Coping files..'
408
- copy_file 'config/locales/models.en.yml', 'config/locales/models.en.yml'
374
+ remove_file 'config/locales/en.yml', force: true
375
+ remove_file 'config/locales/simple_form.en.yml', force: true
409
376
  copy_file 'config/locales/models.tr.yml', 'config/locales/models.tr.yml'
410
- copy_file 'config/locales/show_for.en.yml', 'config/locales/show_for.en.yml'
411
377
  copy_file 'config/locales/show_for.tr.yml', 'config/locales/show_for.tr.yml'
412
378
  copy_file 'config/locales/simple_form.tr.yml', 'config/locales/simple_form.tr.yml'
413
- copy_file 'config/locales/view.en.yml', 'config/locales/view.en.yml'
414
379
  copy_file 'config/locales/view.tr.yml', 'config/locales/view.tr.yml'
380
+ copy_file 'config/locales/email.tr.yml', 'config/locales/email.tr.yml'
381
+
382
+ # Model files
383
+ remove_file 'app/models/admin.rb', force: true
384
+ remove_file 'app/models/user.rb', force: true
385
+ remove_file 'app/models/city.rb', force: true
386
+ remove_file 'app/models/country.rb', force: true
387
+ directory 'app/models', 'app/models'
388
+
389
+ # Helper files
390
+ remove_file 'app/helpers/application_helper.rb', force: true
391
+ template 'app/helpers/application_helper.rb.erb', 'app/helpers/application_helper.rb'
392
+
393
+ # Route file
394
+ say 'Restore routes.rb'
395
+ remove_file 'config/routes.rb', force: true
396
+ template 'config/routes.erb', 'config/routes.rb'
397
+
398
+ # Hq layout files
399
+ say 'Set hq layouts'
400
+ remove_file 'app/views/layouts/hq/application.html.haml', force: true
401
+ template 'app/views/layouts/hq/application.html.haml.erb', 'app/views/layouts/hq/application.html.haml', force: true
402
+ remove_file 'app/views/layouts/login.html.haml', force: true
403
+ template 'app/views/layouts/hq/login.html.haml.erb', 'app/views/layouts/hq/login.html.haml', force: true
404
+ remove_file 'app/views/layouts/hq/partials/_navbar.haml', force: true
405
+ template 'app/views/layouts/hq/partials/_navbar.html.haml.erb', 'app/views/layouts/hq/partials/_navbar.html.haml', force: true
406
+ remove_file 'app/views/layouts/hq/partials/_dock.haml', force: true
407
+ template 'app/views/layouts/hq/partials/_dock.html.haml.erb', 'app/views/layouts/hq/partials/_dock.html.haml', force: true
408
+ remove_file 'app/views/layouts/hq/partials/_footer.haml', force: true
409
+ template 'app/views/layouts/hq/partials/_footer.html.haml.erb', 'app/views/layouts/hq/partials/_footer.html.haml', force: true
410
+ remove_file 'app/views/layouts/hq/partials/_trackers.haml', force: true
411
+ template 'app/views/layouts/hq/partials/_trackers.html.haml.erb', 'app/views/layouts/hq/partials/_trackers.html.haml', force: true
412
+
413
+ # Mailer layout files
414
+ template 'app/views/layouts/mailer.html.haml.erb', 'app/views/layouts/mailer.html.haml', force: true
415
+ copy_file 'app/views/layouts/mailer.text.haml', 'app/views/layouts/mailer.text.haml'
416
+
417
+ # Assets files
418
+ remove_file 'app/assets/javascripts/application.js', force: true
419
+ remove_file 'app/assets/stylesheets/application.css', force: true
420
+
421
+ # Hq assets files
422
+ remove_file 'app/assets/javascripts/hq/application.js.coffee', force: true
423
+ remove_file 'app/assets/stylesheets/hq/application.css.sass', force: true
424
+ copy_file 'app/assets/javascripts/hq/application.js.coffee','app/assets/javascripts/hq/application.js.coffee'
425
+ copy_file 'app/assets/stylesheets/hq/application.css.sass', 'app/assets/stylesheets/hq/application.css.sass'
426
+
427
+ # Partial files in layouts folder
428
+ remove_file 'app/views/layouts/partials/_footer.haml', force: true
429
+ template 'app/views/layouts/partials/_footer.html.haml.erb', 'app/views/layouts/partials/_footer.html.haml', force: true
430
+ remove_file 'app/views/layouts/partials/_trackers.haml', force: true
431
+ template 'app/views/layouts/partials/_trackers.html.haml.erb', 'app/views/layouts/partials/_trackers.html.haml', force: true
432
+ template 'app/views/layouts/partials/_warnings.html.haml.erb', 'app/views/layouts/partials/_warnings.html.haml', force: true
433
+
434
+ # Root folder files
435
+ copy_file 'cybele_version.txt', 'VERSION.txt'
436
+ directory 'public/images', 'public/images'
437
+ template '.env.local.erb', '.env.local', force: true
438
+ template '.env.production.erb', '.env.production', force: true
439
+ template '.env.staging.erb', '.env.staging', force: true
440
+ template 'env.sample.erb', 'env.sample', force: true
441
+
442
+ # Library files
443
+ directory 'lib/tasks', 'lib/tasks'
444
+ directory 'lib/data', 'lib/data'
445
+
446
+ # Config files
447
+ copy_file 'config/initializers/sidekiq.rb', 'config/initializers/sidekiq.rb'
448
+ copy_file 'config/initializers/devise_async.rb', 'config/initializers/devise_async.rb'
449
+ copy_file 'config/schedule.yml', 'config/schedule.yml'
450
+ copy_file 'config/sidekiq.yml', 'config/sidekiq.yml'
451
+ remove_file 'config/settings.local.yml', force: true
452
+
453
+ # Mailer files
454
+ directory 'app/mailers', 'app/mailers'
455
+ directory 'app/views/admin_mailer', 'app/views/admin_mailer'
456
+ directory 'app/views/user_mailer', 'app/views/user_mailer'
457
+
458
+ # Controllers
459
+ remove_file 'app/controllers/application_controller.rb', force: true
460
+ template 'app/controllers/application_controller.rb.erb', 'app/controllers/application_controller.rb', force: true
461
+ end
462
+
463
+ def git_commands
464
+ git :init
465
+ end
466
+
467
+ def create_location_models
468
+ generate 'model Country name:string'
469
+ generate 'model City name:string country:references'
470
+ generate 'audited:install'
471
+ end
472
+
473
+ def create_jobs_helper_lib
474
+ create_file "lib/jobs_helper.rb", <<-CODE
475
+ # Get system admin
476
+ def system_admin
477
+ admin = Admin.where(email: "system@#{app_name}.com").first
478
+ if admin.nil?
479
+ password = Devise.friendly_token.first(12)
480
+ admin = Admin.create(name: 'System', surname: 'System', email: "system@#{app_name}.com", password: password, password_confirmation: password)
481
+ end
482
+ admin
483
+ end
484
+ CODE
415
485
  end
416
486
 
417
487
  private
418
488
 
419
- def action_mailer_host(rails_env, host)
420
-
489
+ def action_mailer_host(rails_env)
421
490
  config = <<-RUBY
422
491
  # Mail Setting
423
- config.action_mailer.default_url_options = { :host => '#{host}' }
492
+ config.action_mailer.default_url_options = { host: ENV['ROOT_PATH'] }
424
493
  RUBY
425
-
426
494
  configure_environment(rails_env, config)
427
495
  end
428
496
 
429
497
  def configure_environment(rails_env, config)
430
- inject_into_file("config/environments/#{rails_env}.rb", "\n\n #{config}", before: "\nend")
498
+ inject_into_file("config/environments/#{rails_env}.rb", "\n #{config}", before: "\nend")
431
499
  end
432
500
 
433
501
  def generate_devise_strong_parameters(model_name)
434
502
  create_sanitizer_lib(model_name)
435
503
  create_sanitizer_initializer(model_name)
436
- devise_parameter_sanitizer(model_name)
437
504
  end
438
505
 
439
506
  def create_sanitizer_lib(model_name)
@@ -441,7 +508,7 @@ admin.admin_profile = AdminProfile.create(first_name: 'Admin', last_name: "#{app
441
508
  class #{model_name.classify}::ParameterSanitizer < Devise::ParameterSanitizer
442
509
  private
443
510
  def sign_up
444
- default_params.permit(:name, :email, :password, :password_confirmation, :time_zone) # TODO add other params here
511
+ default_params.permit(:name, :surname, :email, :password, :password_confirmation, :time_zone) # TODO add other params here
445
512
  end
446
513
  end
447
514
  CODE
@@ -456,80 +523,6 @@ require "#{path}"
456
523
  CODE
457
524
  end
458
525
 
459
- def devise_parameter_sanitizer(model_name)
460
- inject_into_file 'app/controllers/application_controller.rb', :after => 'protect_from_forgery with: :exception' do <<-CODE
461
- protected
462
- def devise_parameter_sanitizer
463
- if resource_class == #{model_name.classify}
464
- #{model_name.classify}::ParameterSanitizer.new(#{model_name.classify}, :#{model_name.parameterize}, params)
465
- else
466
- super # Use the default one
467
- end
468
- end
469
- CODE
470
- end
471
- end
472
-
473
- def create_namespace_routing(namespace)
474
- inject_into_file 'config/routes.rb', after: "root to: 'welcome#index'" do <<-CODE
475
-
476
- namespace :#{namespace} do
477
- resources :dashboard, only: [:index]
478
- end
479
- CODE
480
- end
481
- end
482
-
483
- def add_time_zone_to_user
484
- say 'Add time_zone to User model'
485
- generate 'migration AddTimeZoneToUser time_zone:string -s'
486
- end
487
-
488
- def add_profile_models
489
- say 'Creating Profile Models'
490
- generate 'model user_profile first_name:string last_name:string gsm:string user:references -s'
491
- generate 'model admin_profile first_name:string last_name:string gsm:string admin:references -s'
492
- end
493
-
494
- def add_set_user_time_zone_method_to_application_controller
495
- say 'Add set_user_time_zone method to application controller'
496
- inject_into_file 'app/controllers/application_controller.rb', :after => 'protected' do <<-CODE
497
-
498
- def set_user_time_zone
499
- Time.zone = current_user.time_zone if user_signed_in? && current_user.time_zone.present?
500
- end
501
- CODE
502
- end
503
- inject_into_file 'app/controllers/application_controller.rb', :after => 'class ApplicationController < ActionController::Base' do <<-CODE
504
-
505
- before_filter :set_user_time_zone
506
- respond_to :html, :json
507
-
508
- CODE
509
- end
510
- end
511
-
512
- def add_profile_controllers
513
- copy_file 'app/controllers/hq/admin_profiles_controller.rb', 'app/controllers/hq/admin_profiles_controller.rb'
514
- copy_file 'app/controllers/user_profiles_controller.rb', 'app/controllers/user_profiles_controller.rb'
515
- end
516
-
517
- def add_profile_views
518
- directory 'app/views/hq/admin_profiles', 'app/views/hq/admin_profiles'
519
- directory 'app/views/user_profiles', 'app/views/user_profiles'
520
-
521
- inject_into_file 'app/models/user.rb', :after => ":recoverable, :rememberable, :trackable, :validatable\n" do <<-RUBY
522
- has_one :user_profile
523
- accepts_nested_attributes_for :user_profile
524
- RUBY
525
- end
526
-
527
- inject_into_file 'app/models/admin.rb', :after => ":recoverable, :rememberable, :trackable, :validatable\n" do <<-RUBY
528
- has_one :admin_profile
529
- accepts_nested_attributes_for :admin_profile
530
- RUBY
531
- end
532
- end
533
526
 
534
527
  end
535
528
  end