pineapples 0.3.34 → 0.3.345

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/bin/pineapples +13 -13
  3. data/lib/pineapples.rb +3 -1
  4. data/lib/pineapples/actions.rb +6 -0
  5. data/lib/pineapples/actions/base/target.rb +41 -91
  6. data/lib/pineapples/actions/bundle.rb +16 -0
  7. data/lib/pineapples/actions/chmod.rb +3 -2
  8. data/lib/pineapples/actions/copy_file.rb +1 -1
  9. data/lib/pineapples/actions/empty_directory.rb +1 -1
  10. data/lib/pineapples/actions/gsub_file.rb +5 -3
  11. data/lib/pineapples/actions/inside.rb +5 -1
  12. data/lib/pineapples/actions/rails/erb_converters.rb +11 -4
  13. data/lib/pineapples/actions/rails/new_hash_syntax_converter.rb +36 -0
  14. data/lib/pineapples/actions/rails/rails.rb +1 -0
  15. data/lib/pineapples/actions/remove_file.rb +28 -28
  16. data/lib/pineapples/actions/shell.rb +43 -9
  17. data/lib/pineapples/app_generator.rb +154 -38
  18. data/lib/pineapples/helpers.rb +31 -0
  19. data/lib/pineapples/parser.rb +42 -37
  20. data/lib/pineapples/setting.rb +155 -155
  21. data/lib/pineapples/settings.rb +31 -31
  22. data/lib/pineapples/templates/.example.env.tt +15 -0
  23. data/lib/pineapples/templates/.gitignore +3 -0
  24. data/lib/pineapples/templates/.simplecov.tt +11 -0
  25. data/lib/pineapples/templates/Gemfile.tt +23 -5
  26. data/lib/pineapples/templates/Procfile +1 -1
  27. data/lib/pineapples/templates/Procfile.dev.tt +2 -0
  28. data/lib/pineapples/templates/app/assets/javascripts/libs.js +4 -2
  29. data/lib/pineapples/templates/app/assets/stylesheets/application.scss +4 -1
  30. data/lib/pineapples/templates/app/controllers/application_controller.rb.tt +0 -2
  31. data/lib/pineapples/templates/app/controllers/auth!=devise!/confirmations_controller.rb +11 -0
  32. data/lib/pineapples/templates/app/controllers/auth!=devise!/passwords_controller.rb.tt +12 -0
  33. data/lib/pineapples/templates/app/controllers/auth!=devise!/registrations_controller.rb.tt +25 -0
  34. data/lib/pineapples/templates/app/controllers/auth!=devise!/sessions_controller.rb.tt +59 -0
  35. data/lib/pineapples/templates/app/models/user!=needs_user_model!.rb.tt +7 -4
  36. data/lib/pineapples/templates/app/policies!=pundit!/application_policy.rb +49 -0
  37. data/lib/pineapples/templates/app/presenters/base_presenter.rb.tt +24 -0
  38. data/lib/pineapples/templates/app/responders/application_responder.rb +9 -0
  39. data/lib/pineapples/templates/app/services/service.rb +7 -0
  40. data/lib/pineapples/templates/app/views/common/_footer.html.erb +3 -3
  41. data/lib/pineapples/templates/app/views/common/_header.html.erb +5 -5
  42. data/lib/pineapples/templates/app/views/layouts/application.html.erb.tt +0 -1
  43. data/lib/pineapples/templates/app/views/pages/home.html.erb +0 -1
  44. data/lib/pineapples/templates/bin/nginx +4 -0
  45. data/lib/pineapples/templates/bin/rails +1 -0
  46. data/lib/pineapples/templates/bin/rspec +19 -0
  47. data/lib/pineapples/templates/bin/setup +111 -21
  48. data/lib/pineapples/templates/config.ru.tt +3 -0
  49. data/lib/pineapples/templates/config/application.rb.tt +3 -3
  50. data/lib/pineapples/templates/config/boot.rb +5 -5
  51. data/lib/pineapples/templates/config/database.yml.tt +1 -1
  52. data/lib/pineapples/templates/config/environments/{development.rb → development.rb.tt} +6 -1
  53. data/lib/pineapples/templates/config/environments/production.rb +1 -1
  54. data/lib/pineapples/templates/config/environments/test.rb +2 -2
  55. data/lib/pineapples/templates/config/i18n-tasks.yml +2 -0
  56. data/lib/pineapples/templates/config/initializers/{carrierwave.rb → carrierwave!=carrierwave!.rb} +22 -22
  57. data/lib/pineapples/templates/config/initializers/devise!=devise!.rb.tt +262 -0
  58. data/lib/pineapples/templates/config/initializers/kaminari.rb +10 -0
  59. data/lib/pineapples/templates/config/initializers/seed_migrations.rb +15 -0
  60. data/lib/pineapples/templates/config/initializers/simple_form.rb +165 -0
  61. data/lib/pineapples/templates/config/locales/devise.en.yml +60 -0
  62. data/lib/pineapples/templates/config/locales/{en.yml → en.yml.tt} +2 -0
  63. data/lib/pineapples/templates/config/locales/kaminari.en.yml +17 -0
  64. data/lib/pineapples/templates/config/locales/simple_form.en.yml +31 -0
  65. data/lib/pineapples/templates/config/nginx.conf.tt +147 -0
  66. data/lib/pineapples/templates/config/puma/development.rb.tt +27 -0
  67. data/lib/pineapples/templates/config/{puma.rb → puma/production.rb} +5 -5
  68. data/lib/pineapples/templates/config/routes.rb.tt +4 -0
  69. data/lib/pineapples/templates/config/spring.rb +4 -0
  70. data/lib/pineapples/templates/lib/devise!=devise!/{ajax_failure.rb → ajax_failure!=ajax_login!.rb} +0 -0
  71. data/lib/pineapples/templates/lib/logging/custom_rack_logger.rb +7 -9
  72. data/lib/pineapples/templates/lib/logging/custom_request_logger.rb +46 -48
  73. data/lib/pineapples/templates/lib/tasks/admin!=user_role_field!.rake +18 -19
  74. data/lib/pineapples/templates/lib/templates/{erb → erb!=erb!}/scaffold/_form.html.erb +0 -0
  75. data/lib/pineapples/templates/lib/templates/haml!=haml!/scaffold/_form.html.haml +9 -0
  76. data/lib/pineapples/templates/lib/templates/slim!=slim!/scaffold/_form.html.slim +9 -0
  77. data/lib/pineapples/templates/spec/i18n_spec.rb +17 -0
  78. data/lib/pineapples/templates/spec/rails_helper.rb +30 -0
  79. data/lib/pineapples/templates/spec/spec_helper.rb +44 -0
  80. data/lib/pineapples/templates/spec/support/capybara.rb +4 -0
  81. data/lib/pineapples/templates/spec/support/database_cleaner.rb +27 -0
  82. data/lib/pineapples/templates/spec/support/email_matchers.rb +17 -0
  83. data/lib/pineapples/templates/spec/support/factory_girl.rb +14 -0
  84. data/lib/pineapples/templates/spec/support/job_helpers.rb +8 -0
  85. data/lib/pineapples/templates/spec/support/matchers.rb +10 -0
  86. data/lib/pineapples/templates/spec/support/rake_tasks.rb +8 -0
  87. data/lib/pineapples/templates/spec/support/shoulda_matchers.rb +24 -0
  88. data/lib/pineapples/version.rb +2 -2
  89. data/pineapples.gemspec +1 -3
  90. metadata +46 -12
  91. data/lib/pineapples/app_builder.rb +0 -70
  92. data/lib/pineapples/build_tasks/root_files.rb +0 -23
  93. data/lib/pineapples/templates/app/controllers/auth/confirmations_controller.rb +0 -2
@@ -0,0 +1,8 @@
1
+ require 'rake'
2
+
3
+ # To test rake tasks with rspec
4
+ RSpec.configure do |config|
5
+ config.before(:suite) do
6
+ Rails.application.load_tasks
7
+ end
8
+ end
@@ -0,0 +1,24 @@
1
+ require 'shoulda/matchers'
2
+
3
+ # Collection of useful matchers for testing web-apps
4
+ # --------------
5
+ # Docs:
6
+ # https://gist.github.com/kyletcarlson/6234923
7
+ # https://github.com/thoughtbot/shoulda-matchers#activemodel-matchers
8
+ # http://thoughtbot.github.io/shoulda-matchers/
9
+ # http://thoughtbot.github.io/shoulda-matchers/docs/v3.0.0.rc1/
10
+ # http://thoughtbot.github.io/shoulda-matchers/docs/v3.0.0.rc1/Shoulda/Matchers/ActiveModel.html
11
+ # http://thoughtbot.github.io/shoulda-matchers/docs/v3.0.0.rc1/Shoulda/Matchers/ActiveRecord.html
12
+
13
+ Shoulda::Matchers.configure do |config|
14
+ config.integrate do |with|
15
+ with.test_framework :rspec
16
+
17
+ # Choose one or more libraries:
18
+ # with.library :active_record
19
+ # with.library :active_model
20
+ # with.library :action_controller
21
+ # Or, choose the following (which implies all of the above):
22
+ with.library :rails
23
+ end
24
+ end
@@ -1,5 +1,5 @@
1
1
  module Pineapples
2
2
  RAILS_VERSION = '~> 4.2'
3
- RUBY_VERSION = IO.read("#{File.dirname(__FILE__)}/../../.ruby-version").strip
4
- VERSION = '0.3.34'
3
+ RUBY_VERSION = IO.read("#{__dir__}/../../.ruby-version").strip
4
+ VERSION = '0.3.345'
5
5
  end
@@ -28,9 +28,7 @@ Rails app generator based on Suspenders by Thoughtbot and Raygun by Carbon Five
28
28
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
29
29
  spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
30
30
 
31
-
32
-
33
- spec.add_dependency 'rails', Pineapples::RAILS_VERSION
31
+ spec.add_dependency 'activesupport', '~> 4.2'
34
32
  spec.add_dependency 'bundler', '~> 1.10'
35
33
  spec.add_dependency 'colorize', '~> 0'
36
34
  spec.add_dependency 'inquirer', '~> 0.2'
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pineapples
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.34
4
+ version: 0.3.345
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Glukhov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-21 00:00:00.000000000 Z
11
+ date: 2015-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
@@ -179,6 +179,7 @@ files:
179
179
  - lib/pineapples/actions/apply.rb
180
180
  - lib/pineapples/actions/base/action.rb
181
181
  - lib/pineapples/actions/base/target.rb
182
+ - lib/pineapples/actions/bundle.rb
182
183
  - lib/pineapples/actions/chmod.rb
183
184
  - lib/pineapples/actions/copy_file.rb
184
185
  - lib/pineapples/actions/create_file.rb
@@ -193,14 +194,13 @@ files:
193
194
  - lib/pineapples/actions/prepend_to_class.rb
194
195
  - lib/pineapples/actions/rails/copy_migration.rb
195
196
  - lib/pineapples/actions/rails/erb_converters.rb
197
+ - lib/pineapples/actions/rails/new_hash_syntax_converter.rb
196
198
  - lib/pineapples/actions/rails/rails.rb
197
199
  - lib/pineapples/actions/remove_file.rb
198
200
  - lib/pineapples/actions/ruby.rb
199
201
  - lib/pineapples/actions/shell.rb
200
202
  - lib/pineapples/actions/template.rb
201
- - lib/pineapples/app_builder.rb
202
203
  - lib/pineapples/app_generator.rb
203
- - lib/pineapples/build_tasks/root_files.rb
204
204
  - lib/pineapples/error.rb
205
205
  - lib/pineapples/helpers.rb
206
206
  - lib/pineapples/parser.rb
@@ -211,29 +211,40 @@ files:
211
211
  - lib/pineapples/templates/.example.env.tt
212
212
  - lib/pineapples/templates/.example.rspec
213
213
  - lib/pineapples/templates/.gitignore
214
+ - lib/pineapples/templates/.simplecov.tt
214
215
  - lib/pineapples/templates/Aptfile
215
216
  - lib/pineapples/templates/Gemfile.tt
216
217
  - lib/pineapples/templates/Guardfile
217
218
  - lib/pineapples/templates/Procfile
219
+ - lib/pineapples/templates/Procfile.dev.tt
218
220
  - lib/pineapples/templates/README.md.tt
219
221
  - lib/pineapples/templates/Rakefile
220
222
  - lib/pineapples/templates/app/assets/javascripts/application.js
221
223
  - lib/pineapples/templates/app/assets/javascripts/libs.js
222
224
  - lib/pineapples/templates/app/assets/stylesheets/application.scss
223
225
  - lib/pineapples/templates/app/controllers/application_controller.rb.tt
224
- - lib/pineapples/templates/app/controllers/auth/confirmations_controller.rb
226
+ - lib/pineapples/templates/app/controllers/auth!=devise!/confirmations_controller.rb
227
+ - lib/pineapples/templates/app/controllers/auth!=devise!/passwords_controller.rb.tt
228
+ - lib/pineapples/templates/app/controllers/auth!=devise!/registrations_controller.rb.tt
229
+ - lib/pineapples/templates/app/controllers/auth!=devise!/sessions_controller.rb.tt
225
230
  - lib/pineapples/templates/app/controllers/pages_controller.rb
226
231
  - lib/pineapples/templates/app/helpers/application_helper.rb
227
232
  - lib/pineapples/templates/app/helpers/title_helper.rb
228
233
  - lib/pineapples/templates/app/models/user!=needs_user_model!.rb.tt
234
+ - lib/pineapples/templates/app/policies!=pundit!/application_policy.rb
235
+ - lib/pineapples/templates/app/presenters/base_presenter.rb.tt
236
+ - lib/pineapples/templates/app/responders/application_responder.rb
237
+ - lib/pineapples/templates/app/services/service.rb
229
238
  - lib/pineapples/templates/app/views/common/_flashes.html.erb
230
239
  - lib/pineapples/templates/app/views/common/_footer.html.erb
231
240
  - lib/pineapples/templates/app/views/common/_header.html.erb
232
241
  - lib/pineapples/templates/app/views/layouts/application.html.erb.tt
233
242
  - lib/pineapples/templates/app/views/pages/home.html.erb
234
243
  - lib/pineapples/templates/bin/bundle
244
+ - lib/pineapples/templates/bin/nginx
235
245
  - lib/pineapples/templates/bin/rails
236
246
  - lib/pineapples/templates/bin/rake
247
+ - lib/pineapples/templates/bin/rspec
237
248
  - lib/pineapples/templates/bin/setup
238
249
  - lib/pineapples/templates/bin/spring
239
250
  - lib/pineapples/templates/browserlist
@@ -242,31 +253,41 @@ files:
242
253
  - lib/pineapples/templates/config/boot.rb
243
254
  - lib/pineapples/templates/config/database.yml.tt
244
255
  - lib/pineapples/templates/config/environment.rb
245
- - lib/pineapples/templates/config/environments/development.rb
256
+ - lib/pineapples/templates/config/environments/development.rb.tt
246
257
  - lib/pineapples/templates/config/environments/production.rb
247
258
  - lib/pineapples/templates/config/environments/test.rb
248
259
  - lib/pineapples/templates/config/i18n-tasks.yml
249
260
  - lib/pineapples/templates/config/initializers/assets.rb
250
261
  - lib/pineapples/templates/config/initializers/backtrace_silencers.rb
251
- - lib/pineapples/templates/config/initializers/carrierwave.rb
262
+ - lib/pineapples/templates/config/initializers/carrierwave!=carrierwave!.rb
252
263
  - lib/pineapples/templates/config/initializers/cookies_serializer.rb
264
+ - lib/pineapples/templates/config/initializers/devise!=devise!.rb.tt
253
265
  - lib/pineapples/templates/config/initializers/filter_parameters_logging.rb
254
266
  - lib/pineapples/templates/config/initializers/inflections.rb
267
+ - lib/pineapples/templates/config/initializers/kaminari.rb
255
268
  - lib/pineapples/templates/config/initializers/mime_types.rb
256
269
  - lib/pineapples/templates/config/initializers/pry.rb
257
270
  - lib/pineapples/templates/config/initializers/redis.rb
271
+ - lib/pineapples/templates/config/initializers/seed_migrations.rb
258
272
  - lib/pineapples/templates/config/initializers/session_store.rb.tt
273
+ - lib/pineapples/templates/config/initializers/simple_form.rb
259
274
  - lib/pineapples/templates/config/initializers/wrap_parameters.rb
260
- - lib/pineapples/templates/config/locales/en.yml
261
- - lib/pineapples/templates/config/puma.rb
275
+ - lib/pineapples/templates/config/locales/devise.en.yml
276
+ - lib/pineapples/templates/config/locales/en.yml.tt
277
+ - lib/pineapples/templates/config/locales/kaminari.en.yml
278
+ - lib/pineapples/templates/config/locales/simple_form.en.yml
279
+ - lib/pineapples/templates/config/nginx.conf.tt
280
+ - lib/pineapples/templates/config/puma/development.rb.tt
281
+ - lib/pineapples/templates/config/puma/production.rb
262
282
  - lib/pineapples/templates/config/routes.rb.tt
263
283
  - lib/pineapples/templates/config/secrets.yml
264
284
  - lib/pineapples/templates/config/smtp.rb
285
+ - lib/pineapples/templates/config/spring.rb
265
286
  - lib/pineapples/templates/db/migrate/01_enable_postgres_extensions.rb
266
287
  - lib/pineapples/templates/db/migrate/02_create_data_migrations.rb
267
288
  - lib/pineapples/templates/db/migrate/03_devise_create_users.rb
268
289
  - lib/pineapples/templates/db/migrate/04_add_role_field_to_users.rb
269
- - lib/pineapples/templates/lib/devise!=devise!/ajax_failure.rb
290
+ - lib/pineapples/templates/lib/devise!=devise!/ajax_failure!=ajax_login!.rb
270
291
  - lib/pineapples/templates/lib/extensions/form_builder.rb
271
292
  - lib/pineapples/templates/lib/extensions/http_errors.rb
272
293
  - lib/pineapples/templates/lib/extensions/to_boolean.rb
@@ -276,13 +297,26 @@ files:
276
297
  - lib/pineapples/templates/lib/simple_form/components/prepend.rb
277
298
  - lib/pineapples/templates/lib/tasks/admin!=user_role_field!.rake
278
299
  - lib/pineapples/templates/lib/tasks/auto_annotate_models.rake
279
- - lib/pineapples/templates/lib/templates/erb/scaffold/_form.html.erb
300
+ - lib/pineapples/templates/lib/templates/erb!=erb!/scaffold/_form.html.erb
301
+ - lib/pineapples/templates/lib/templates/haml!=haml!/scaffold/_form.html.haml
302
+ - lib/pineapples/templates/lib/templates/slim!=slim!/scaffold/_form.html.slim
280
303
  - lib/pineapples/templates/lib/virtus/virtus.rb
281
304
  - lib/pineapples/templates/public/404.html
282
305
  - lib/pineapples/templates/public/422.html
283
306
  - lib/pineapples/templates/public/500.html
284
307
  - lib/pineapples/templates/public/favicon.ico
285
308
  - lib/pineapples/templates/public/robots.txt
309
+ - lib/pineapples/templates/spec/i18n_spec.rb
310
+ - lib/pineapples/templates/spec/rails_helper.rb
311
+ - lib/pineapples/templates/spec/spec_helper.rb
312
+ - lib/pineapples/templates/spec/support/capybara.rb
313
+ - lib/pineapples/templates/spec/support/database_cleaner.rb
314
+ - lib/pineapples/templates/spec/support/email_matchers.rb
315
+ - lib/pineapples/templates/spec/support/factory_girl.rb
316
+ - lib/pineapples/templates/spec/support/job_helpers.rb
317
+ - lib/pineapples/templates/spec/support/matchers.rb
318
+ - lib/pineapples/templates/spec/support/rake_tasks.rb
319
+ - lib/pineapples/templates/spec/support/shoulda_matchers.rb
286
320
  - lib/pineapples/version.rb
287
321
  - pineapples.gemspec
288
322
  homepage: http://github.com/pineapplethief/pineapples
@@ -1,70 +0,0 @@
1
- require 'pineapples/actions'
2
- #require 'pineapples/build_tasks/root_files'
3
-
4
- module Pineapples
5
- class AppBuilder
6
- include Pineapples::Actions
7
-
8
- def root_files
9
- create_file '.ruby-version', "#{Pineapples::RUBY_VERSION}\n"
10
- create_file '.ruby-gemset', app_name
11
-
12
- template 'config.ru'
13
- template 'Gemfile'
14
- copy_file 'Guardfile'
15
- copy_file 'Procfile'
16
- copy_file 'Rakefile'
17
-
18
- copy_file '.gitignore'
19
-
20
- template 'README.md.tt'
21
- copy_file 'browserlist'
22
- copy_file '.editor-config'
23
-
24
- template '.example.env.tt'
25
-
26
- if options.heroku?
27
- copy_file '.buildpacks'
28
- template 'Aptfile'
29
- end
30
-
31
- if !options.skip_test?
32
- copy_file '.example.rspec'
33
- end
34
- end
35
-
36
- def app_files
37
- directory 'app', except: 'user.rb'
38
-
39
- inside 'app' do
40
- keep_file 'assets/fonts'
41
- keep_file 'assets/images'
42
- if create_user_model?
43
- template 'models/user.rb.tt'
44
- else
45
- keep_file 'models'
46
- end
47
- keep_file 'mailers'
48
-
49
- keep_file 'controllers/concerns'
50
- keep_file 'models/concerns'
51
- end
52
-
53
- end
54
-
55
- def bin_files
56
- directory 'bin' do |content|
57
- "#{shebang}\n" + content
58
- end
59
- chmod 'bin', 0755 & ~File.umask, verbose: false
60
- end
61
-
62
- def config_files
63
- directory 'config'
64
-
65
- inside 'config' do
66
- end
67
- end
68
-
69
- end
70
- end
@@ -1,23 +0,0 @@
1
- module Pineapples
2
- module BuildTasks
3
- module RootFiles
4
- def readme
5
- end
6
-
7
- def rakefile
8
- end
9
-
10
- def configru
11
- end
12
-
13
- def gitignore
14
- end
15
-
16
- def gemfile
17
- end
18
-
19
- # build(:) if !options.skip_git?
20
- # build(:gemfile) if !options.skip_gemfile?
21
- end
22
- end
23
- end
@@ -1,2 +0,0 @@
1
- class Auth::ConfirmationsController < Devise::ConfirmationsController
2
- end