thredded_create_app 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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.