voyage 1.0 → 1.44.0.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.
@@ -0,0 +1,37 @@
1
+ require "rails/generators"
2
+
3
+ module Suspenders
4
+ class StylesheetBaseGenerator < Rails::Generators::Base
5
+ source_root File.expand_path(
6
+ File.join("..", "..", "..", "templates"),
7
+ File.dirname(__FILE__))
8
+
9
+ def add_stylesheet_gems
10
+ gem "bourbon", "~> 5.0.0.beta.7"
11
+ gem "neat", "~> 2.0.0.beta.1"
12
+ gem "refills", group: [:development, :test]
13
+ Bundler.with_clean_env { run "bundle install" }
14
+ end
15
+
16
+ def add_css_config
17
+ copy_file(
18
+ "application.scss",
19
+ "app/assets/stylesheets/application.scss",
20
+ force: true,
21
+ )
22
+ end
23
+
24
+ def remove_prior_config
25
+ remove_file "app/assets/stylesheets/application.css"
26
+ end
27
+
28
+ def install_refills
29
+ generate "refills:import", "flashes"
30
+ remove_dir "app/views/refills"
31
+ end
32
+
33
+ def install_bitters
34
+ run "bitters install --path app/assets/stylesheets"
35
+ end
36
+ end
37
+ end
@@ -1,8 +1,8 @@
1
1
  module Suspenders
2
- RAILS_VERSION = "~> 4.2.0".freeze
2
+ RAILS_VERSION = "~> 5.0.0".freeze
3
3
  RUBY_VERSION = IO.
4
4
  read("#{File.dirname(__FILE__)}/../../.ruby-version").
5
5
  strip.
6
6
  freeze
7
- VERSION = "1.39.0".freeze
7
+ VERSION = "1.44.0".freeze
8
8
  end
data/lib/voyage.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'voyage/version'
2
2
 
3
3
  require 'suspenders/generators/app_generator'
4
+ require 'suspenders/generators/static_generator'
5
+ require 'suspenders/generators/stylesheet_base_generator'
4
6
  require 'suspenders/actions'
5
7
  require "suspenders/adapters/heroku"
6
8
  require 'suspenders/app_builder'
@@ -0,0 +1,22 @@
1
+ ## Updating to new Thoughtbot releases
2
+
3
+ ### Files that we change in the mainline of the repo:
4
+
5
+ * bin/voyage
6
+ * suspenders.gemspec
7
+
8
+ Everything else is scoped to lib/voyage, so all of those changes will always apply cleanly after rebasing to upstream/master. Then just go back through each set of commits and make sure our overrides don't need some updating.
9
+
10
+ ### Here are files we're currently overriding:
11
+
12
+ * lib/suspenders/app_generator.rb => lib/voyage/app_generator.rb
13
+ * templates/config_locales_en.yml.erb => lib/voyage/templates/config_locales_en.yml.erb
14
+ * templates/Gemfile.erb => lib/voyage/templates/Gemfile.erb
15
+ * templates/rails_helper.rb.erb => lib/voyage/templates/rails_helper.rb.erb
16
+ * templates/README.md.erb => lib/voyage/templates/README.md.erb
17
+
18
+ Everything else is a new file we want to add.
19
+
20
+ ## Testing
21
+
22
+ Test that the new generator works, manually for now. It'd be awesome to get some [aruba](https://github.com/cucumber/aruba) tests going to test the various command line options / generated app permutations that are possible. For example, with and without devise, which templating language we should use, etc.
@@ -15,38 +15,43 @@ module Suspenders
15
15
  end
16
16
  end
17
17
 
18
+ def update_gemset_in_gemfile
19
+ replace_in_file 'Gemfile', '#ruby-gemset', "#ruby-gemset=#{app_name}"
20
+ end
21
+
18
22
  def use_slim
19
23
  if @@accept_defaults || agree?('Would you like to use slim? (Y/n)')
20
24
  @@use_slim = true
21
25
  run 'gem install html2slim'
26
+ update_application_layout_for_slim
27
+ else
28
+ @@use_slim = false
29
+ end
30
+ end
22
31
 
23
- find = <<-RUBY.gsub(/^ {8}/, '')
24
- <%#
25
- Configure default and controller-, and view-specific titles in
26
- config/locales/en.yml. For more see:
27
- https://github.com/calebthompson/title#usage
28
- %>
29
- RUBY
32
+ def update_application_layout_for_slim
33
+ find = <<-RUBY.gsub(/^ {8}/, '')
34
+ <%#
35
+ Configure default and controller-, and view-specific titles in
36
+ config/locales/en.yml. For more see:
37
+ https://github.com/calebthompson/title#usage
38
+ %>
39
+ RUBY
30
40
 
31
- replace = <<-RUBY.gsub(/^ {8}/, '')
32
- <% # Configure default and controller-, and view-specific titles in
33
- # config/locales/en.yml. For more see:
34
- # https://github.com/calebthompson/title#usage %>
35
- RUBY
41
+ replace = <<-RUBY.gsub(/^ {8}/, '')
42
+ <% # Configure default and controller-, and view-specific titles in
43
+ # config/locales/en.yml. For more see:
44
+ # https://github.com/calebthompson/title#usage %>
45
+ RUBY
36
46
 
37
- replace_in_file 'app/views/layouts/application.html.erb', find, replace
47
+ replace_in_file 'app/views/layouts/application.html.erb', find, replace
38
48
 
39
- if @@use_slim
40
- inside('lib') do # arbitrary, run in context of newly generated app
41
- run "erb2slim '../app/views/layouts' '../app/views/layouts'"
42
- run "erb2slim -d '../app/views/layouts'"
49
+ inside('lib') do # arbitrary, run in context of newly generated app
50
+ run "erb2slim '../app/views/layouts' '../app/views/layouts'"
51
+ run "erb2slim -d '../app/views/layouts'"
43
52
 
44
- run "erb2slim '../app/views/application' '../app/views/application'"
45
- run "erb2slim -d '../app/views/application'"
46
- end
47
- end
48
- else
49
- @@use_slim = false
53
+ run "erb2slim '../app/views/application' '../app/views/application'"
54
+ run "erb2slim -d '../app/views/application'"
50
55
  end
51
56
  end
52
57
 
@@ -121,31 +126,36 @@ module Suspenders
121
126
  protected
122
127
 
123
128
  def configure_permitted_parameters
124
- devise_parameter_sanitizer.for(:sign_up) do |u|
125
- u.permit(
129
+ devise_parameter_sanitizer.permit(
130
+ :sign_up,
131
+ keys: [
126
132
  #{':first_name,' if adding_first_and_last_name}
127
133
  #{':last_name,' if adding_first_and_last_name}
128
134
  :email,
129
135
  :password,
130
136
  :password_confirmation,
131
137
  :remember_me,
132
- )
133
- end
134
-
135
- devise_parameter_sanitizer.for(:sign_in) do |u|
136
- u.permit(:login, :email, :password, :remember_me)
137
- end
138
-
139
- devise_parameter_sanitizer.for(:account_update) do |u|
140
- u.permit(
138
+ ]
139
+ )
140
+
141
+ devise_parameter_sanitizer.permit(
142
+ :sign_in,
143
+ keys: [
144
+ :login, :email, :password, :remember_me
145
+ ]
146
+ )
147
+
148
+ devise_parameter_sanitizer.permit(
149
+ :account_update,
150
+ keys: [
141
151
  #{':first_name,' if adding_first_and_last_name}
142
152
  #{':last_name,' if adding_first_and_last_name}
143
153
  :email,
144
154
  :password,
145
155
  :password_confirmation,
146
156
  :current_password,
147
- )
148
- end
157
+ ]
158
+ )
149
159
  end
150
160
  RUBY
151
161
  end
@@ -237,7 +247,7 @@ module Suspenders
237
247
 
238
248
  trait :admin do
239
249
  roles [:admin]
240
- sequence(:email) { |n| "admin_#{n}@example.com" }
250
+ email 'admin@example.com'
241
251
  end
242
252
  RUBY
243
253
  end
@@ -255,7 +265,7 @@ module Suspenders
255
265
  # ----------------
256
266
 
257
267
  def generate_seeder_templates(using_devise:)
258
- config = { force: true, using_devise: true }
268
+ config = { force: true, using_devise: using_devise }
259
269
  template '../templates/seeder.rb.erb', 'lib/seeder.rb', config
260
270
  template '../templates/seeds.rb.erb', 'db/seeds.rb', config
261
271
  end
@@ -296,6 +306,18 @@ module Suspenders
296
306
  end
297
307
  end
298
308
 
309
+ # --------
310
+ # TEMP FIX
311
+ # https://github.com/thoughtbot/bourbon/issues/993
312
+ # https://github.com/thoughtbot/refills/issues/400
313
+ # --------
314
+ def downgrade_neat_1_8_so_refills_media_mixin_works
315
+ replace_in_file 'Gemfile', "gem 'neat', '~> 2.0.0.beta.1'", "gem 'neat', '~> 1.8.0'"
316
+ end
317
+ # ------------
318
+ # END TEMP FIX
319
+ # ------------
320
+
299
321
 
300
322
  # -------------------------
301
323
  # ADDING REFILLS COMPONENTS
@@ -421,7 +443,7 @@ module Suspenders
421
443
  # setup_test_environment overrides
422
444
  # --------------------------------
423
445
  def generate_factories_file
424
- # NOTE: (2016-02-03) jonk => don't want this
446
+ # NOTE: (2016-02-03) jonk => don't want this, we use individual factories
425
447
  end
426
448
 
427
449
  def configure_ci
@@ -439,29 +461,6 @@ module Suspenders
439
461
  # End setup_test_environment overrides
440
462
  # ------------------------------------
441
463
 
442
-
443
- # -------------
444
- # Configure App
445
- # -------------
446
- def configure_active_job
447
- configure_application_file(
448
- "config.active_job.queue_adapter = :delayed_job"
449
- )
450
- configure_environment "test", "config.active_job.queue_adapter = :inline"
451
- end
452
-
453
- def configure_puma
454
- # NOTE: (2016-02-03) jonk => don't want this
455
- end
456
-
457
- def set_up_forego
458
- # NOTE: (2016-02-03) jonk => don't want this
459
- end
460
- # -----------------
461
- # End Configure App
462
- # -----------------
463
-
464
-
465
464
  def remove_config_comment_lines
466
465
  # NOTE: (2016-02-09) jonk => don't want this
467
466
  end
@@ -1,11 +1,5 @@
1
1
  module Suspenders
2
2
  class AppGenerator < Rails::Generators::AppGenerator
3
- class_option :skip_turbolinks, type: :boolean, default: false,
4
- desc: "Skip turbolinks gem"
5
-
6
- class_option :skip_bundle, type: :boolean, aliases: "-B", default: true,
7
- desc: "Don't run bundle install"
8
-
9
3
  def self.start
10
4
  preflight_check
11
5
  accept_defaults
@@ -29,6 +23,7 @@ module Suspenders
29
23
 
30
24
  def finish_template
31
25
  invoke :suspenders_customization
26
+ invoke :update_gemset_in_gemfile
32
27
  invoke :use_slim
33
28
  invoke :install_devise
34
29
  invoke :customize_application_js
@@ -36,6 +31,7 @@ module Suspenders
36
31
  invoke :generate_ruby_version_and_gemset
37
32
  invoke :generate_data_migrations
38
33
  invoke :add_high_voltage_static_pages
34
+ invoke :downgrade_neat_1_8_so_refills_media_mixin_works # this should be temporary until they get refills re-written to take advantage of Neat 2.0
39
35
  invoke :generate_refills
40
36
  invoke :generate_test_environment
41
37
  invoke :update_test_environment
@@ -49,6 +45,10 @@ module Suspenders
49
45
  super
50
46
  end
51
47
 
48
+ def update_gemset_in_gemfile
49
+ build :update_gemset_in_gemfile
50
+ end
51
+
52
52
  def use_slim
53
53
  build :use_slim
54
54
  end
@@ -77,6 +77,10 @@ module Suspenders
77
77
  build :add_high_voltage_static_pages
78
78
  end
79
79
 
80
+ def downgrade_neat_1_8_so_refills_media_mixin_works
81
+ build :downgrade_neat_1_8_so_refills_media_mixin_works
82
+ end
83
+
80
84
  def generate_refills
81
85
  build :generate_refills
82
86
  end
@@ -113,6 +117,7 @@ module Suspenders
113
117
 
114
118
  def bon_voyage
115
119
  say 'Congratulations! You just pulled our suspenders, Headway style!'
120
+ say honeybadger_outro
116
121
  end
117
122
  end
118
123
  end
@@ -2,23 +2,24 @@
2
2
  source "https://rubygems.org"
3
3
 
4
4
  ruby "<%= Voyage::RUBY_VERSION %>"
5
- #ruby-gemset=<%= @app_name %>
5
+ #ruby-gemset
6
6
 
7
7
  gem "autoprefixer-rails"
8
- gem "bourbon", "~> 4.2.0"
9
- gem "coffee-rails", "~> 4.1.0"
10
8
  gem "delayed_job_active_record"
11
9
  gem "flutie"
12
- gem "high_voltage"
10
+ gem "honeybadger"
13
11
  gem "jquery-rails"
14
- gem "neat", "~> 1.7.0"
15
12
  gem "normalize-rails", "~> 3.0.0"
16
13
  gem "pg"
14
+ gem "puma"
17
15
  gem "rack-canonical-host"
18
16
  gem "rails", "<%= Voyage::RAILS_VERSION %>"
19
17
  gem "recipient_interceptor"
20
18
  gem "sass-rails", "~> 5.0"
21
19
  gem "simple_form"
20
+ gem "skylight"
21
+ gem "sprockets", ">= 3.0.0"
22
+ gem 'suspenders'
22
23
  gem "title"
23
24
  gem "uglifier"
24
25
 
@@ -44,12 +45,11 @@ gem 'paper_trail'
44
45
  gem 'settingslogic' # yaml settings (project wide, non-editable), this is implemented with the model Settings.rb
45
46
 
46
47
  # Want these here for debugging on production
48
+ gem 'pry-byebug' # stepwise debugging inside pry
47
49
  gem 'pry-rails' # better REPL than irb
48
- gem 'pry-awesome_print'
49
- gem 'pry-byebug'
50
+ gem 'pry-awesome_print' # make pry output legible
50
51
  gem 'pry-remote'
51
52
 
52
- gem 'librato-rails' # general monitoring of things
53
53
  gem 'nondestructive_migrations'
54
54
  gem 'carrierwave'
55
55
  gem 'mini_magick'
@@ -58,8 +58,7 @@ gem 'whenever', require: false # provides a clear syntax for writing and deployi
58
58
  gem 'whenever-web'
59
59
 
60
60
  group :development do
61
- gem "quiet_assets"
62
- gem "refills"
61
+ gem "listen"
63
62
  gem "spring"
64
63
  gem "spring-commands-rspec"
65
64
  gem "web-console"
@@ -67,26 +66,28 @@ group :development do
67
66
  # Customizations
68
67
  gem 'annotate' # annotate models automatically when rake db:migrate is called
69
68
  gem 'rails-erd' # auto gen ERD Diagram of models in the app on rake db:migrate
70
- gem 'zenflow', github: 'zencoder/zenflow'
69
+ gem 'zenflow', git: 'https://github.com/zencoder/zenflow.git'
71
70
  gem 'better_errors' # A better error page for rails when a local 500 (or similar) is thrown
72
71
  gem 'binding_of_caller' # REPL in better_errors to debug in the browser at the point at which it failed
73
72
  gem 'meta_request' # for chrome rails console plugin found here: https://chrome.google.com/webstore/detail/railspanel/gjpfobpafnhjhbajcjgccbbdofdckggg?hl=en-US
74
- gem 'bitters', '~> 1.2'
73
+ gem 'bitters', '~> 1.3'
75
74
  gem 'redcarpet' # used to render the readme inside a static welcome page from the high_voltage gem
76
75
  end
77
76
 
78
77
  group :development, :test do
79
78
  gem "awesome_print"
80
79
  gem "bullet"
81
- gem "bundler-audit", require: false
80
+ gem "bundler-audit", ">= 0.5.0", require: false
82
81
  gem "dotenv-rails"
83
82
  gem "factory_girl_rails"
84
- gem "rspec-rails", "~> 3.4.0"
83
+ <%# gem "pry-byebug" %>
84
+ <%# gem "pry-rails" %>
85
+ gem "rspec-rails", "~> 3.5"
85
86
 
86
87
  # Customizations
87
88
  gem 'faker' # provides auto generated names for factories, can be customized
88
89
 
89
- gem 'rubocop', '0.36.0', require: false # lock to keep in sync with Hound
90
+ gem 'rubocop'
90
91
  gem 'rubocop-rspec', require: false
91
92
 
92
93
  gem 'letter_opener' # auto-open emails when they're sent
@@ -97,6 +98,7 @@ group :development, :staging do
97
98
  end
98
99
 
99
100
  group :test do
101
+ <%# gem "capybara-webkit" # We don't want this. %>
100
102
  gem "database_cleaner"
101
103
  gem "formulaic"
102
104
  gem "launchy"
@@ -1,7 +1,7 @@
1
1
  require 'simplecov'
2
2
  SimpleCov.command_name 'Rspec'
3
3
 
4
- ENV["RAILS_ENV"] = "test"
4
+ ENV["RACK_ENV"] = "test"
5
5
 
6
6
  require File.expand_path("../../config/environment", __FILE__)
7
7
  abort("DATABASE_URL environment variable is set") if ENV["DATABASE_URL"]
@@ -1,8 +1,9 @@
1
1
  module Voyage
2
- RAILS_VERSION = "~> 4.2".freeze
3
- RUBY_VERSION = IO.
4
- read("#{File.dirname(__FILE__)}/../../.ruby-version").
5
- strip.
6
- freeze
7
- VERSION = '1.0'.freeze
2
+ RAILS_VERSION = '~> 5.0.1'.freeze
3
+ RUBY_VERSION =
4
+ IO
5
+ .read("#{File.dirname(__FILE__)}/../../.ruby-version")
6
+ .strip
7
+ .freeze
8
+ VERSION = '1.44.0.1'.freeze
8
9
  end