pah 0.0.12 → 0.0.13

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +47 -0
  4. data/CONTRIBUTING.md +6 -31
  5. data/README.md +17 -2
  6. data/bin/pah +2 -1
  7. data/lib/pah/files/.env +1 -0
  8. data/lib/pah/files/Gemfile +35 -28
  9. data/lib/pah/files/Procfile +1 -1
  10. data/lib/pah/files/README.md +15 -9
  11. data/lib/pah/files/app/assets/javascripts/application.js +6 -6
  12. data/lib/pah/files/app/assets/stylesheets/application.scss +4 -6
  13. data/lib/pah/files/app/assets/stylesheets/general.scss +38 -5
  14. data/lib/pah/files/app/views/layouts/application.html.haml +16 -14
  15. data/lib/pah/files/config/initializers/bullet.rb +14 -0
  16. data/lib/pah/files/config/initializers/database_connection.rb +12 -0
  17. data/lib/pah/files/config/initializers/rack_timeout.rb +1 -0
  18. data/lib/pah/files/config/locales/app.pt-BR.yml +13 -0
  19. data/lib/pah/files/config/locales/pt-BR.yml +21 -6
  20. data/lib/pah/files/config/locales/simple_form.pt-BR.yml +25 -0
  21. data/lib/pah/files/lib/tasks/jumpup.rake +3 -6
  22. data/lib/pah/files/public/404.html +69 -0
  23. data/lib/pah/files/public/500.html +59 -0
  24. data/lib/pah/files/spec/acceptance/dummy_spec.rb +1 -1
  25. data/lib/pah/files/spec/support/acceptance_helpers.rb +2 -2
  26. data/lib/pah/files/spec/support/acceptance_macros.rb +4 -4
  27. data/lib/pah/files/spec/support/capybara.rb +1 -1
  28. data/lib/pah/files/spec/support/database_cleaner.rb +18 -0
  29. data/lib/pah/files/spec/support/factory_girl.rb +10 -0
  30. data/lib/pah/files/spec/support/vcr.rb +6 -7
  31. data/lib/pah/partials/_assets.rb +4 -5
  32. data/lib/pah/partials/_bullet.rb +6 -0
  33. data/lib/pah/partials/_canonical_host.rb +2 -5
  34. data/lib/pah/partials/_capybara.rb +2 -5
  35. data/lib/pah/partials/_cleanup.rb +3 -11
  36. data/lib/pah/partials/_database.rb +5 -7
  37. data/lib/pah/partials/_gems.rb +4 -6
  38. data/lib/pah/partials/_generators.rb +2 -5
  39. data/lib/pah/partials/_git.rb +2 -6
  40. data/lib/pah/partials/_heroku.rb +11 -8
  41. data/lib/pah/partials/_jumpup.rb +3 -7
  42. data/lib/pah/partials/_layout.rb +4 -5
  43. data/lib/pah/partials/_letter_opener.rb +2 -5
  44. data/lib/pah/partials/_locale.rb +6 -7
  45. data/lib/pah/partials/_public.rb +9 -4
  46. data/lib/pah/partials/_puma.rb +4 -0
  47. data/lib/pah/partials/_rack_timeout.rb +4 -0
  48. data/lib/pah/partials/_readme.rb +2 -6
  49. data/lib/pah/partials/_rollbar.rb +5 -0
  50. data/lib/pah/partials/_rspec.rb +12 -8
  51. data/lib/pah/partials/_ruby_env.rb +6 -10
  52. data/lib/pah/partials/_secret_token.rb +3 -7
  53. data/lib/pah/partials/_secure_headers.rb +3 -5
  54. data/lib/pah/partials/_simple_form.rb +11 -0
  55. data/lib/pah/template.rb +35 -26
  56. data/lib/pah/version.rb +2 -1
  57. data/pah.gemspec +2 -2
  58. metadata +20 -10
  59. data/lib/pah/files/config/unicorn.rb +0 -43
  60. data/lib/pah/files/spec/support/omniauth.rb +0 -27
  61. data/lib/pah/files/spec/support/paperclip.rb +0 -4
  62. data/lib/pah/partials/_unicorn.rb +0 -33
@@ -1,12 +1,4 @@
1
- puts "Removing unnecessary files ... ".magenta
1
+ git rm: "README.rdoc"
2
+ git rm: "app/views/layouts/application.html.erb"
2
3
 
3
- remove_file "README.rdoc"
4
- remove_file "app/views/layouts/application.html.erb"
5
-
6
- inside "public" do
7
- remove_file "robots.txt"
8
- end
9
-
10
- git :add => '--all'
11
- git :commit => "-aqm 'Removed unnecessary files left over from initial app generation.'"
12
- puts "\n"
4
+ git_commit 'Remove unnecessary files left over from initial app generation.'
@@ -1,13 +1,11 @@
1
1
  copy_static_file 'config/database.yml'
2
2
  gsub_file 'config/database.yml', /PROJECT/, @app_name
3
- git :add => 'config/database.yml'
4
- git :commit => "-qm 'Adding config/database.yml.'"
3
+ git add: 'config/database.yml'
4
+ git_commit 'Add config/database.yml.'
5
5
 
6
6
  in_root do
7
- run "rake db:create db:migrate db:test:clone"
7
+ run "bundle exec rake db:create db:migrate db:test:clone"
8
8
  end
9
9
 
10
- git :add => 'db/schema.rb'
11
- git :commit => "-qm 'Create database, adding db/schema.rb.'"
12
-
13
- puts "\n"
10
+ git add: 'db/schema.rb'
11
+ git_commit 'Create database, adding db/schema.rb.'
@@ -1,8 +1,8 @@
1
- puts "Setting up bundler and installing bundled gems (may take a while) ... ".magenta
2
-
3
1
  copy_static_file 'Gemfile'
4
2
 
5
3
  in_root do
4
+ gsub_file 'Gemfile', /RAILS_VERSION/, ::Pah::RAILS_VERSION
5
+
6
6
  # Since the gemset is likely empty, manually install bundler so it can install the rest
7
7
  run "gem install bundler --no-ri --no-rdoc"
8
8
 
@@ -10,7 +10,5 @@ in_root do
10
10
  run "bundle install"
11
11
  end
12
12
 
13
- git :add => 'Gemfile'
14
- git :add => 'Gemfile.lock'
15
- git :commit => "-qm 'Add Gemfile and Gemfile.lock.'"
16
- puts "\n"
13
+ git add: 'Gemfile*'
14
+ git_commit 'Add Gemfile and Gemfile.lock.'
@@ -1,5 +1,3 @@
1
- puts "Adding generators... ".magenta
2
-
3
1
  generators = <<GENERATORS
4
2
 
5
3
  # Do not generate specs for views and requests. Also, do not generate assets.
@@ -21,6 +19,5 @@ in_root do
21
19
  inject_into_file 'config/application.rb', generators, {after: "Rails::Application", verbose: false}
22
20
  end
23
21
 
24
- git :add => 'config/application.rb'
25
- git :commit => "-qm 'Adding generators.'"
26
-
22
+ git add: 'config/application.rb'
23
+ git_commit 'Add generators.'
@@ -1,9 +1,5 @@
1
- puts "Initializing new Git repo ...".magenta
2
-
3
1
  copy_static_file '.gitignore'
4
2
 
5
3
  git :init
6
- git :add => "--all"
7
- git :commit => "-aqm 'Initial commit.'"
8
-
9
- puts "\n"
4
+ git add: '--all'
5
+ git_commit 'Initial commit.'
@@ -1,5 +1,5 @@
1
1
  class HerokuApp < Rails::Generators::AppGenerator
2
- DEFAULT_ADDONS = %w(pgbackups:auto-month loggly:mole sendgrid:starter)
2
+ DEFAULT_ADDONS = %w(heroku-postgresql:dev pgbackups:auto-month loggly:mole sendgrid:starter rollbar)
3
3
 
4
4
  attr_reader :name, :description, :config
5
5
 
@@ -12,6 +12,7 @@ class HerokuApp < Rails::Generators::AppGenerator
12
12
  add_timezone_config
13
13
  add_addons
14
14
  add_heroku_git_remote
15
+ add_rollbar_initialize_file
15
16
  check_canonical_domain
16
17
  check_collaborators
17
18
  end
@@ -50,12 +51,17 @@ class HerokuApp < Rails::Generators::AppGenerator
50
51
 
51
52
  def open
52
53
  say "Pushing application to heroku...".magenta
53
-
54
+
54
55
  system "git push heroku master"
55
56
 
56
57
  system "heroku open --app #{name}"
57
58
  end
58
59
 
60
+ def add_rollbar_initialize_file
61
+ say "Adding rollbar to initializers".magenta
62
+ system "bundle exec rails generate rollbar"
63
+ end
64
+
59
65
  private
60
66
  def check_canonical_domain
61
67
  domain = @config[:heroku][:domain]
@@ -71,15 +77,12 @@ class HerokuApp < Rails::Generators::AppGenerator
71
77
  end
72
78
  end
73
79
 
74
- say "Configuring Heroku application...".magenta
75
-
76
80
  copy_static_file 'Procfile'
77
- git :add => 'Procfile'
78
- git :commit => "-qm 'Add Procfile'"
81
+ git add: 'Procfile'
82
+ git_commit 'Add Procfile'
79
83
 
80
84
  if @config[:heroku][:create?]
81
-
82
85
  production_app = HerokuApp.new @config
83
-
84
86
  production_app.open if @config[:heroku][:deploy?]
87
+ apply_n :rollbar, 'Setting up rollbar...'
85
88
  end
@@ -1,12 +1,8 @@
1
- puts "Setting up Jumpup... ".magenta
2
-
3
1
  copy_static_file 'lib/tasks/jumpup.rake'
4
2
  copy_static_file 'config/initializers/jumpup_heroku.rb'
5
3
 
6
4
  gsub_file 'config/initializers/jumpup_heroku.rb', /PROJECT/, (@config[:heroku][:name] || @app_name)
7
5
 
8
- git :add => 'lib/tasks/jumpup.rake'
9
- git :add => 'config/initializers/jumpup_heroku.rb'
10
- git :commit => "-qm 'Adding jumpup tasks and configuration.'"
11
-
12
- puts "\n"
6
+ git add: 'lib/tasks/jumpup.rake'
7
+ git add: 'config/initializers/jumpup_heroku.rb'
8
+ git_commit 'Add jumpup tasks and configuration.'
@@ -1,9 +1,8 @@
1
- puts "Adding layout files ...".magenta
2
-
3
1
  copy_static_file 'app/views/layouts/application.html.haml'
4
2
  copy_static_file 'app/views/application/_error_messages.html.haml'
5
3
  copy_static_file 'app/views/application/_flash_messages.html.haml'
6
4
 
7
- git :add => '.'
8
- git :commit => "-aqm 'Add layout files.'"
9
- puts "\n"
5
+ gsub_file 'app/views/layouts/application.html.haml', /= page_title(app_name: 'example')/, "= page_title(app_name: '#{@app_name}')"
6
+
7
+ git add: 'app/views/'
8
+ git_commit 'Add layout files.'
@@ -1,5 +1,3 @@
1
- puts "Adding letter_opener... ".magenta
2
-
3
1
  letter_opener_config = <<LETTER_OPENER
4
2
 
5
3
  # Letter openner config
@@ -11,6 +9,5 @@ in_root do
11
9
  inject_into_file 'config/environments/development.rb', letter_opener_config, { before: /^end/, verbose: false }
12
10
  end
13
11
 
14
- git :add => 'config/environments/development.rb'
15
- git :commit => "-qm 'Adding letter_opener config.'"
16
-
12
+ git add: 'config/environments/development.rb'
13
+ git_commit 'Add letter_opener config.'
@@ -1,8 +1,8 @@
1
- puts "Adding locale... ".magenta
2
-
3
1
  copy_static_file 'config/locales/pt-BR.yml'
4
- git :add => 'config/locales/pt-BR.yml'
5
- git :commit => "-qm 'Add pt-BR locale.'"
2
+ copy_static_file 'config/locales/app.pt-BR.yml'
3
+
4
+ git add: 'config/locales/*.yml'
5
+ git_commit 'Add pt-BR locale files.'
6
6
 
7
7
  time_zone_config = <<TIME_ZONE
8
8
 
@@ -24,6 +24,5 @@ in_root do
24
24
  inject_into_file 'config/application.rb', locale_config, { after: "# config.i18n.default_locale = :de", verbose: false }
25
25
  end
26
26
 
27
- git :add => 'config/application.rb'
28
- git :commit => "-qm 'Adding locale config.'"
29
-
27
+ git add: 'config/application.rb'
28
+ git_commit 'Add locale config.'
@@ -1,11 +1,16 @@
1
- puts "Adding public files ...".magenta
2
-
3
1
  inside "public" do
4
2
  remove_file "robots.txt"
3
+ remove_file "404.html"
4
+ remove_file "500.html"
5
5
  end
6
6
 
7
7
  copy_static_file 'public/robots.txt'
8
+ copy_static_file 'public/404.html'
9
+ copy_static_file 'public/500.html'
10
+
11
+ git add: 'public/robots.txt'
12
+ git add: 'public/404.html'
13
+ git add: 'public/500.html'
8
14
 
9
- git :add => '--all'
10
- git :commit => "-aqm 'Add public files.'"
15
+ git_commit 'Add public files.'
11
16
  puts "\n"
@@ -0,0 +1,4 @@
1
+ copy_static_file 'config/initializers/database_connection.rb'
2
+
3
+ git add: 'config/initializers/database_connection.rb'
4
+ git_commit 'Configure Puma.'
@@ -0,0 +1,4 @@
1
+ copy_static_file 'config/initializers/rack_timeout.rb'
2
+
3
+ git add: 'config/initializers/rack_timeout.rb'
4
+ git_commit 'Add Rack::Timeout configuration.'
@@ -1,9 +1,5 @@
1
- puts "Adding default README... ".magenta
2
-
3
1
  copy_static_file 'README.md'
4
2
  gsub_file 'README.md', /PROJECT/, @app_name
5
3
 
6
- git :add => 'README.md'
7
- git :commit => "-qm 'Adding README file.'"
8
-
9
- puts "\n"
4
+ git add: 'README.md'
5
+ git_commit 'Add README file.'
@@ -0,0 +1,5 @@
1
+ gsub_file 'config/initializers/rollbar.rb', /Rails\.env\.test\?/, "Rails.env.production?"
2
+ gsub_file 'config/initializers/rollbar.rb', /config\.enabled = false/, "config.enabled = true"
3
+
4
+ git add: 'config/initializers/rollbar.rb'
5
+ git_commit 'Add rollbar initialize file.'
@@ -1,13 +1,17 @@
1
- puts "Setting up RSpec ... ".magenta
2
-
3
- remove_dir 'test'
4
-
5
1
  copy_static_file 'spec/spec_helper.rb'
6
2
 
7
- %w{vcr.rb deferred_garbage_collection.rb http_basic_auth.rb matchers.rb uploaded_file.rb suppress_log.rb}.each do |component|
3
+ %w{
4
+ database_cleaner.rb
5
+ deferred_garbage_collection.rb
6
+ factory_girl.rb
7
+ http_basic_auth.rb
8
+ matchers.rb
9
+ suppress_log.rb
10
+ uploaded_file.rb
11
+ vcr.rb
12
+ }.each do |component|
8
13
  copy_static_file "spec/support/#{component}"
9
14
  end
10
15
 
11
- git :add => '--all'
12
- git :commit => "-aqm 'Configured RSpec.'"
13
- puts "\n"
16
+ git add: 'spec'
17
+ git_commit 'Add RSpec support files'
@@ -1,6 +1,4 @@
1
- puts "Setting up ruby env ... ".magenta
2
-
3
- current_ruby = 'ruby-2.1.0'
1
+ current_ruby = '2.1.1'
4
2
  current_gemset = @app_name
5
3
 
6
4
  copy_static_file '.ruby-version'
@@ -9,12 +7,10 @@ gsub_file '.ruby-version', /RUBY_VERSION/, current_ruby
9
7
  copy_static_file '.ruby-gemset'
10
8
  gsub_file '.ruby-gemset', /GEMSET/, current_gemset
11
9
 
12
- git :add => '.ruby-version'
13
- git :add => '.ruby-gemset'
14
- git :commit => "-qm 'Add .ruby-version and .ruby-gemset'"
10
+ git add: '.ruby-version'
11
+ git add: '.ruby-gemset'
12
+ git_commit 'Add .ruby-version and .ruby-gemset'
15
13
 
16
14
  copy_static_file '.env'
17
- git :add => '.env'
18
- git :commit => "-qm 'Add .env file'"
19
-
20
- puts "\n"
15
+ git add: '.env'
16
+ git_commit 'Add .env file'
@@ -1,5 +1,3 @@
1
- puts "Replacing secret token with environment variable...".magenta
2
-
3
1
  in_root do
4
2
  append_to_file '.env', "SECRET_TOKEN: #{SecureRandom::hex(60)}\n"
5
3
 
@@ -7,8 +5,6 @@ in_root do
7
5
  gsub_file 'config/initializers/secret_token.rb', /config.secret_key_base = '(.*?)'/, "config.secret_key_base = ENV['SECRET_TOKEN']"
8
6
  end
9
7
 
10
- git :add => 'config/initializers/secret_token.rb'
11
- git :add => '.env'
12
- git :commit => "-qm 'Replace secret token with environment variable.'"
13
-
14
- puts "\n"
8
+ git add: 'config/initializers/secret_token.rb'
9
+ git add: '.env'
10
+ git_commit 'Replace secret token with environment variable.'
@@ -1,4 +1,3 @@
1
- puts "Adding secure headers... ".magenta
2
1
  content = <<EOF
3
2
 
4
3
  ensure_security_headers # See more: https://github.com/twitter/secureheaders
@@ -17,7 +16,6 @@ create_file "config/initializers/secure_headers.rb" do
17
16
  end
18
17
  EOF
19
18
  end
20
- git :add => 'app/controllers/application_controller.rb'
21
- git :commit => "-qm 'Adding secure headers.'"
22
-
23
- puts "\n"
19
+ git add: 'app/controllers/application_controller.rb'
20
+ git add: 'config/initializers/secure_headers.rb'
21
+ git_commit 'Add secure headers.'
@@ -0,0 +1,11 @@
1
+ in_root do
2
+ run "bundle exec rails generate simple_form:install"
3
+ end
4
+
5
+ git add: 'config'
6
+ git add: 'lib/templates'
7
+ git_commit 'Run `rails generate simple_form:install`'
8
+
9
+ copy_static_file 'config/locales/simple_form.pt-BR.yml'
10
+ git add: 'config'
11
+ git_commit 'Add simple_form pt-BR locale.'
data/lib/pah/template.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require File.expand_path(File.join('..', 'pah', 'version.rb'), File.dirname(__FILE__))
2
+
1
3
  %w{colored}.each do |component|
2
4
  if Gem::Specification.find_all_by_name(component).empty?
3
5
  run "gem install #{component}"
@@ -17,14 +19,16 @@ require "bundler"
17
19
 
18
20
  # Copy a static file from the template into the new application
19
21
  def copy_static_file(path)
20
- # puts "Installing #{path}...".magenta
21
22
  remove_file path
22
23
  file path, File.read(File.join(@static_files, path))
23
- # puts "\n"
24
24
  end
25
25
 
26
- def apply_n(partial)
26
+ def apply_n(partial, message='')
27
+ puts message.magenta
28
+
27
29
  apply "#{@partials}/_#{partial}.rb"
30
+
31
+ puts "\n"
28
32
  end
29
33
 
30
34
  def will_you_like_to?(question)
@@ -43,36 +47,41 @@ def ask_unless_test(*params)
43
47
  ask(*params)
44
48
  end
45
49
 
50
+ def git_commit(message)
51
+ message = "#{message}\n\nGenerated by pah version #{Pah::VERSION}"
52
+ git commit: "-qm '#{message}'"
53
+ end
54
+
46
55
  puts "\n========================================================="
47
56
  puts " Pah".yellow.bold
48
57
  puts "=========================================================\n"
49
58
 
50
- # TODO: timezone, Add rspec extensions
51
59
 
52
60
  apply_n :config
53
- apply_n :git
54
- apply_n :ruby_env
55
- apply_n :cleanup
56
- apply_n :gems
57
- apply_n :database
58
- apply_n :rspec
59
- apply_n :layout
60
- apply_n :assets
61
- apply_n :public
62
- apply_n :secure_headers
63
- apply_n :secret_token
64
- apply_n :capybara
65
- apply_n :generators
66
- apply_n :letter_opener
67
- apply_n :locale
68
- apply_n :canonical_host
69
- apply_n :unicorn
70
- apply_n :jumpup
71
- apply_n :readme
72
- apply_n :heroku
61
+ apply_n :git, 'Initializing new Git repo...'
62
+ apply_n :ruby_env, 'Setting up ruby env...'
63
+ apply_n :cleanup, 'Removing unnecessary files...'
64
+ apply_n :gems, 'Setting up bundler and installing bundled gems (may take a while)...'
65
+ apply_n :database, 'Initializing databases...'
66
+ apply_n :rspec, 'Setting up RSpec...'
67
+ apply_n :layout, 'Adding layout files...'
68
+ apply_n :assets, 'Adding asset files...'
69
+ apply_n :public, 'Adding public files...'
70
+ apply_n :secure_headers, 'Adding secure headers...'
71
+ apply_n :secret_token, 'Replacing secret token with environment variable...'
72
+ apply_n :capybara, 'Adding capybara helpers...'
73
+ apply_n :generators, 'Adding generators...'
74
+ apply_n :simple_form, 'Configuring simple_form...'
75
+ apply_n :letter_opener, 'Adding letter_opener...'
76
+ apply_n :bullet, 'Setting up bullet...'
77
+ apply_n :locale, 'Adding locale...'
78
+ apply_n :canonical_host, 'Configuring canonical hosts...'
79
+ apply_n :puma, 'Configuring Puma...'
80
+ apply_n :rack_timeout, 'Setting up Rack::Timeout...'
81
+ apply_n :jumpup, 'Setting up Jumpup...'
82
+ apply_n :readme, 'Adding default README...'
83
+ apply_n :heroku, 'Configuring Heroku application...'
73
84
 
74
- # apply_n :omniauth # TODO: add spec support files
75
- # TODO: take care of facebook when user is not logged in on facebook (when app)
76
85
 
77
86
  puts "\n========================================================="
78
87
  puts " CONGRATS! INSTALLATION COMPLETE!".yellow.bold