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 +4 -4
- data/lib/thredded_create_app/cli.rb +12 -15
- data/lib/thredded_create_app/generator.rb +23 -23
- data/lib/thredded_create_app/run_command.rb +12 -0
- data/lib/thredded_create_app/tasks/base.rb +6 -16
- data/lib/thredded_create_app/tasks/create_rails_app.rb +16 -5
- data/lib/thredded_create_app/tasks/setup_app_skeleton/_header.html.erb +1 -1
- data/lib/thredded_create_app/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec9303aa617905a4fd69c91b11bc536eb21cc15fcc3fd33352042f5c9cfba2b5
|
4
|
+
data.tar.gz: fdbc72c7b2f699ab230cbe8c948c49e35a40a2fc90d7a1ad2edac258831fcf11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
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
|
-
|
69
|
-
|
70
|
-
|
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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
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
|
-
|
7
|
-
|
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
|
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
|
-
|
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 ||=
|
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
|
-
|
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"><%=
|
23
|
+
<span class="app-nav-icon"><%= inline_svg_tag 'brightness.svg' %></span>
|
24
24
|
</button>
|
25
25
|
<% end -%>
|
26
26
|
<% 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.
|
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:
|
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.
|
211
|
+
rubygems_version: 3.1.2
|
211
212
|
signing_key:
|
212
213
|
specification_version: 4
|
213
214
|
summary: Rails app generator for Thredded.
|