thredded_create_app 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0232d103e459c18069f055aba4bb87d2d776148151a2519ceeae3450c0ddfd5
4
- data.tar.gz: 970727679e31aad434d3e5dbe0e0aa1e4b75c668649bd7a60af63d71f3a8af68
3
+ metadata.gz: ec9303aa617905a4fd69c91b11bc536eb21cc15fcc3fd33352042f5c9cfba2b5
4
+ data.tar.gz: fdbc72c7b2f699ab230cbe8c948c49e35a40a2fc90d7a1ad2edac258831fcf11
5
5
  SHA512:
6
- metadata.gz: 334b7ec1e5e6edf199f5dc1bb92f7162d7cdce08adf74d390ecf50d4230a4497351e52581fb31ef373be286aaf8c837beff60803ebd21474d7ea65d796535596
7
- data.tar.gz: 83547babdc8755375d7f5ad6e6e86b29249301f83c745125feb71a6ce692b77bf271a8901d08b7c21c7d3dae4f2487f6d68737f4ee766ce57dc8125f48f797dc
6
+ metadata.gz: b8d789c432d1d1be4b7e6bd9d4504ae86a18b240f3c1db60c10f8b548c8a1097c752554f59a1570fd036fd8a09fac24cf69fb0e95b6703f494742c1672b33296
7
+ data.tar.gz: b55ef560baa372181b06ac28016edf68b8666579ec6d1215d5cd815f5a7880c4c6587a7770bd7efda4b95c45fbc2f0a592d912a3e5370ee803e4ff08bcd4926a
@@ -1,14 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'thredded_create_app/command_error'
4
- require 'thredded_create_app/generator'
5
- require 'thredded_create_app/logging'
6
- require 'thredded_create_app/version'
7
-
8
3
  require 'highline'
4
+ require_relative './command_error'
5
+ require_relative './generator'
6
+ require_relative './logging'
7
+ require_relative './run_command'
8
+ require_relative './version'
9
+
9
10
  module ThreddedCreateApp
10
11
  class CLI # rubocop:disable Metrics/ClassLength
11
12
  include ThreddedCreateApp::Logging
13
+ include ThreddedCreateApp::RunCommand
12
14
 
13
15
  DEFAULTS = {
14
16
  auto_confirm: false,
@@ -31,7 +33,7 @@ module ThreddedCreateApp
31
33
 
32
34
  def start
33
35
  auto_output_coloring do
34
- run
36
+ run_cli
35
37
  rescue OptionParser::ParseError, ArgvError => e
36
38
  error e.message, 64
37
39
  rescue ThreddedCreateApp::CommandError => e
@@ -49,7 +51,7 @@ module ThreddedCreateApp
49
51
 
50
52
  private
51
53
 
52
- def run # rubocop:disable Metrics/AbcSize
54
+ def run_cli # rubocop:disable Metrics/AbcSize
53
55
  options = optparse
54
56
  generator = ThreddedCreateApp::Generator.new(options)
55
57
  log_info 'Will do the following:'
@@ -65,14 +67,9 @@ module ThreddedCreateApp
65
67
 
66
68
  def start_app_server!(app_path)
67
69
  log_info 'Changing directory and starting the app server'
68
- command = "cd #{Shellwords.escape(app_path)} && " \
69
- 'bundle exec rails s'
70
- log_command command
71
- if defined?(Bundler)
72
- Bundler.with_clean_env { exec command }
73
- else
74
- exec command
75
- end
70
+ ENV['BUNDLE_GEMFILE'] = 'Gemfile'
71
+ run "cd #{Shellwords.escape(app_path)} && bundle exec rails s",
72
+ run_method: :exec
76
73
  end
77
74
 
78
75
  # rubocop:disable Metrics/AbcSize,Metrics/BlockLength,Metrics/MethodLength
@@ -1,22 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bundler'
3
4
  require 'fileutils'
4
5
  require 'shellwords'
5
- require 'thredded_create_app/tasks/base'
6
- require 'thredded_create_app/tasks/create_rails_app'
7
- require 'thredded_create_app/tasks/add_rails_config'
8
- require 'thredded_create_app/tasks/add_simple_form'
9
- require 'thredded_create_app/tasks/add_devise'
10
- require 'thredded_create_app/tasks/add_roadie'
11
- require 'thredded_create_app/tasks/add_rails_email_preview'
12
- require 'thredded_create_app/tasks/add_thredded'
13
- require 'thredded_create_app/tasks/add_display_name_to_users'
14
- require 'thredded_create_app/tasks/add_invisible_captcha'
15
- require 'thredded_create_app/tasks/setup_database'
16
- require 'thredded_create_app/tasks/setup_app_skeleton'
17
- require 'thredded_create_app/tasks/production_configs'
18
- require 'thredded_create_app/tasks/add_memcached_support'
19
- require 'thredded_create_app/tasks/docker'
6
+ require_relative './tasks/base'
7
+ require_relative './tasks/create_rails_app'
8
+ require_relative './tasks/add_rails_config'
9
+ require_relative './tasks/add_simple_form'
10
+ require_relative './tasks/add_devise'
11
+ require_relative './tasks/add_roadie'
12
+ require_relative './tasks/add_rails_email_preview'
13
+ require_relative './tasks/add_thredded'
14
+ require_relative './tasks/add_display_name_to_users'
15
+ require_relative './tasks/add_invisible_captcha'
16
+ require_relative './tasks/setup_database'
17
+ require_relative './tasks/setup_app_skeleton'
18
+ require_relative './tasks/production_configs'
19
+ require_relative './tasks/add_memcached_support'
20
+ require_relative './tasks/docker'
21
+
20
22
  module ThreddedCreateApp
21
23
  class Generator < Tasks::Base
22
24
  def initialize(**options)
@@ -49,17 +51,15 @@ module ThreddedCreateApp
49
51
  private
50
52
 
51
53
  def in_app_env
52
- if defined?(Bundler)
53
- Bundler.with_clean_env do
54
- Dir.chdir app_path do
55
- yield
56
- end
57
- end
58
- else
59
- Dir.chdir app_path do
54
+ bundle_gemfile_was = ENV['BUNDLE_GEMFILE']
55
+ Dir.chdir app_path do
56
+ Bundler.with_original_env do
57
+ ENV['BUNDLE_GEMFILE'] = 'Gemfile'
60
58
  yield
61
59
  end
62
60
  end
61
+ ensure
62
+ ENV['BUNDLE_GEMFILE'] = bundle_gemfile_was
63
63
  end
64
64
 
65
65
  def tasks
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ThreddedCreateApp
4
+ module RunCommand
5
+ def run(*args, log: true, run_method: :system)
6
+ if log
7
+ log_command args.length == 1 ? args[0] : Shellwords.shelljoin(args)
8
+ end
9
+ exit 1 unless send(run_method, *args)
10
+ end
11
+ end
12
+ end
@@ -3,13 +3,16 @@
3
3
  require 'shellwords'
4
4
  require 'fileutils'
5
5
  require 'erb'
6
- require 'thredded_create_app/logging'
7
- require 'thredded_create_app/command_error'
6
+ require_relative '../logging'
7
+ require_relative '../command_error'
8
+ require_relative '../run_command'
9
+
8
10
  module ThreddedCreateApp
9
11
  module Tasks
10
12
  # @abstract
11
- class Base # rubocop:disable Metrics/ClassLength
13
+ class Base
12
14
  include ThreddedCreateApp::Logging
15
+ include ThreddedCreateApp::RunCommand
13
16
 
14
17
  attr_reader :app_name, :app_hostname, :app_path, :gems
15
18
 
@@ -149,19 +152,6 @@ module ThreddedCreateApp
149
152
  run "bundle exec rails g #{generate_args}#{' --quiet' unless verbose?}"
150
153
  end
151
154
 
152
- def run(*args, log: true)
153
- if log
154
- log_command args.length == 1 ? args[0] : Shellwords.shelljoin(args)
155
- end
156
- ok =
157
- if Bundler.respond_to?(:with_unbundled_env)
158
- Bundler.with_unbundled_env { system(*args) }
159
- else
160
- Bundler.with_clean_env { system(*args) }
161
- end
162
- exit 1 unless ok
163
- end
164
-
165
155
  def verbose?
166
156
  @verbose
167
157
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bundler'
3
4
  require 'yaml'
4
- require 'thredded_create_app/tasks/base'
5
+ require_relative './base'
5
6
 
6
7
  module ThreddedCreateApp
7
8
  module Tasks
@@ -26,12 +27,15 @@ module ThreddedCreateApp
26
27
  install_gem 'bundler'
27
28
  install_gem 'rails', version: @rails_version
28
29
  end
29
- @rails_version ||= latest_installed_rails_version
30
+ @rails_version ||=
31
+ Bundler.with_original_env { latest_installed_rails_version }
30
32
 
31
33
  run "rails _#{@rails_version}_ new . --skip-bundle" \
32
- " --database=#{rails_database} " \
33
- " --skip-test#{verbose? ? ' --verbose' : ' --quiet'}" \
34
- "#{' --skip-javascript' unless webpack_js?}"
34
+ " --database=#{rails_database}" \
35
+ ' --skip-webpack-install' \
36
+ "#{' --skip-javascript' unless webpack_js?}" \
37
+ ' --skip-test' \
38
+ "#{verbose? ? ' --verbose' : ' --quiet'}"
35
39
  run 'rm', 'Gemfile.lock' if File.exist?('Gemfile.lock')
36
40
  replace 'Gemfile', /gem 'sass-rails'.*$/, "gem 'sassc-rails'"
37
41
  add_gem 'rspec-rails', version: '>= 4.0.0.beta3', groups: %i[test]
@@ -42,10 +46,17 @@ module ThreddedCreateApp
42
46
  def after_bundle
43
47
  run_generator 'rspec:install'
44
48
  git_commit 'rails g rspec:install'
49
+
50
+ webpacker_install if webpack_js?
45
51
  end
46
52
 
47
53
  private
48
54
 
55
+ def webpacker_install
56
+ run 'bundle exec rails webpacker:install'
57
+ git_commit 'bundle exec rails webpacker:install'
58
+ end
59
+
49
60
  def install_gem(gem_name, version: nil)
50
61
  run ["gem install #{gem_name} --no-document",
51
62
  ('--user' if @user_install),
@@ -20,7 +20,7 @@
20
20
  <% else -%>
21
21
  <button type="button">
22
22
  <span class="app-nav-text"><%= theme_name %></span>
23
- <span class="app-nav-icon"><%= inline_svg 'brightness.svg' %></span>
23
+ <span class="app-nav-icon"><%= inline_svg_tag 'brightness.svg' %></span>
24
24
  </button>
25
25
  <% end -%>
26
26
  <% end -%>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ThreddedCreateApp
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thredded_create_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Mazovetskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-21 00:00:00.000000000 Z
11
+ date: 2020-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -116,6 +116,7 @@ files:
116
116
  - lib/thredded_create_app/command_error.rb
117
117
  - lib/thredded_create_app/generator.rb
118
118
  - lib/thredded_create_app/logging.rb
119
+ - lib/thredded_create_app/run_command.rb
119
120
  - lib/thredded_create_app/tasks/add_devise.rb
120
121
  - lib/thredded_create_app/tasks/add_devise/registrations_controller.rb
121
122
  - lib/thredded_create_app/tasks/add_devise/sessions_controller.rb
@@ -207,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
208
  - !ruby/object:Gem::Version
208
209
  version: '0'
209
210
  requirements: []
210
- rubygems_version: 3.0.6
211
+ rubygems_version: 3.1.2
211
212
  signing_key:
212
213
  specification_version: 4
213
214
  summary: Rails app generator for Thredded.