thredded_create_app 0.1.16 → 0.1.17
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 +8 -2
- data/lib/thredded_create_app/tasks/add_devise.rb +2 -2
- data/lib/thredded_create_app/tasks/add_display_name_to_users.rb +2 -2
- data/lib/thredded_create_app/tasks/create_rails_app.rb +30 -10
- data/lib/thredded_create_app/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 317de5cb8dc2f463948d4aaa240ad6d546e88440
|
4
|
+
data.tar.gz: 6f61cf6b2c942359d761e45f3e85dd7026e5cc7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5be5c1c0ad6a6eaef3a0e8a2e19eee17251486e42d383e75108e7ed1cb6d815a35d25afd950b4abd2d0fde8e70aeb4ec64f514466b3c7a2f35aa1171ee130529
|
7
|
+
data.tar.gz: a4d0710842921f74c8fdde1b9a47aa9f339a2cd5f1ef7eb0f3be2cd18d38cb4c71e5d8288a8129640e3cb5ff01b550023a2abb5d02b213b6b3052824d64e1ca8
|
@@ -16,7 +16,8 @@ module ThreddedCreateApp
|
|
16
16
|
install_gem_bundler_rails: true,
|
17
17
|
start_server: true,
|
18
18
|
simple_form: true,
|
19
|
-
database: :postgresql
|
19
|
+
database: :postgresql,
|
20
|
+
rails_version: nil
|
20
21
|
}.freeze
|
21
22
|
|
22
23
|
def self.start(argv)
|
@@ -85,13 +86,18 @@ module ThreddedCreateApp
|
|
85
86
|
) do |op|
|
86
87
|
flags = Flags.new(op, options)
|
87
88
|
|
88
|
-
db_adapters = %i
|
89
|
+
db_adapters = %i[postgresql mysql2 sqlite3]
|
89
90
|
op.on '--database DATABASE', db_adapters,
|
90
91
|
"The database adapter, one of: #{db_adapters.join(', ')} " \
|
91
92
|
"(default: #{DEFAULTS[:database]})" do |v|
|
92
93
|
options[:database] = v.to_sym
|
93
94
|
end
|
94
95
|
|
96
|
+
op.on '--rails-version VERSION',
|
97
|
+
'The exact version of Rails to use (default: latest)' do |value|
|
98
|
+
options[:rails_version] = value
|
99
|
+
end
|
100
|
+
|
95
101
|
flags.bool :simple_form, '--[no-]simple-form', 'Use simple_form'
|
96
102
|
|
97
103
|
op.separator "\nOther options:"
|
@@ -57,8 +57,8 @@ module ThreddedCreateApp
|
|
57
57
|
replace 'app/views/devise/registrations/edit.html.erb',
|
58
58
|
', :back %>', ', back_url %>'
|
59
59
|
# Make the views render-able outside Devise controllers
|
60
|
-
%w
|
61
|
-
app/views/devise/shared/_links.html.erb
|
60
|
+
%w[app/views/devise/sessions/new.html.erb
|
61
|
+
app/views/devise/shared/_links.html.erb].each do |path|
|
62
62
|
replace path, 'resource_class', 'User', optional: true
|
63
63
|
replace path, /resource_name(?!:)/, ':user'
|
64
64
|
replace path, /resource(?!:)/, ':user', optional: true
|
@@ -39,8 +39,8 @@ module ThreddedCreateApp
|
|
39
39
|
inject_into_file 'app/controllers/application_controller.rb',
|
40
40
|
after: /protect_from_forgery.*\n/,
|
41
41
|
content: devise_permitted_params_rb
|
42
|
-
%w
|
43
|
-
app/views/devise/registrations/edit.html.erb
|
42
|
+
%w[app/views/devise/registrations/new.html.erb
|
43
|
+
app/views/devise/registrations/edit.html.erb].each do |path|
|
44
44
|
autofocus = File.read(path).include?(', autofocus: true')
|
45
45
|
replace path, ', autofocus: true', '' if autofocus
|
46
46
|
if @simple_form
|
@@ -1,33 +1,41 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'yaml'
|
3
4
|
require 'thredded_create_app/tasks/base'
|
5
|
+
|
4
6
|
module ThreddedCreateApp
|
5
7
|
module Tasks
|
6
8
|
class CreateRailsApp < Base
|
7
|
-
def initialize(install_gem_bundler_rails:, database:,
|
9
|
+
def initialize(install_gem_bundler_rails:, rails_version:, database:,
|
10
|
+
**args)
|
8
11
|
super
|
9
12
|
@install_gem_bundler_rails = install_gem_bundler_rails
|
10
13
|
@database = database
|
14
|
+
@rails_version = rails_version
|
15
|
+
@user_install = !File.writable?(Gem.dir)
|
11
16
|
end
|
12
17
|
|
13
18
|
def summary
|
14
|
-
"Create Rails app #{app_name.inspect} with
|
19
|
+
"Create a Rails v#{@rails_version} app #{app_name.inspect} with"\
|
20
|
+
" #{rails_database} and rspec"
|
15
21
|
end
|
16
22
|
|
17
23
|
def before_bundle
|
18
24
|
if @install_gem_bundler_rails
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
"#{' --user' if user_install}"
|
25
|
+
run 'gem update --system --no-document --quiet' unless @user_install
|
26
|
+
install_gem 'bundler'
|
27
|
+
install_gem 'rails', version: @rails_version
|
23
28
|
end
|
29
|
+
@rails_version ||= latest_installed_rails_version
|
30
|
+
|
24
31
|
# I have no idea why this bundle exec is necessary on Travis.
|
25
32
|
run "#{'bundle exec ' if ENV['TRAVIS']}" \
|
26
|
-
"rails new . --skip-bundle
|
27
|
-
"--
|
33
|
+
"rails _#{@rails_version}_ new . --skip-bundle" \
|
34
|
+
" --database=#{rails_database} " \
|
35
|
+
" --skip-test#{verbose? ? ' --verbose' : ' --quiet'}"
|
28
36
|
replace 'Gemfile', /gem 'sass-rails'.*$/, "gem 'sassc-rails'"
|
29
|
-
add_gem 'rspec-rails', groups: %i
|
30
|
-
add_gem 'capybara', groups: %i
|
37
|
+
add_gem 'rspec-rails', groups: %i[test]
|
38
|
+
add_gem 'capybara', groups: %i[test]
|
31
39
|
git_commit summary
|
32
40
|
end
|
33
41
|
|
@@ -38,9 +46,21 @@ module ThreddedCreateApp
|
|
38
46
|
|
39
47
|
private
|
40
48
|
|
49
|
+
def install_gem(gem_name, version: nil)
|
50
|
+
run ["gem install #{gem_name} --no-document",
|
51
|
+
('--user' if @user_install),
|
52
|
+
("-v #{version}" if version)].compact.join(' ')
|
53
|
+
end
|
54
|
+
|
41
55
|
def rails_database
|
42
56
|
{ mysql2: :mysql }.fetch(@database, @database)
|
43
57
|
end
|
58
|
+
|
59
|
+
def latest_installed_rails_version
|
60
|
+
# rubocop:disable Security/YAMLLoad
|
61
|
+
YAML.load(`gem specification rails`).version.to_s
|
62
|
+
# rubocop:enable Security/YAMLLoad
|
63
|
+
end
|
44
64
|
end
|
45
65
|
end
|
46
66
|
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.1.
|
4
|
+
version: 0.1.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gleb Mazovetskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: term-ansicolor
|
@@ -205,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
205
|
version: '0'
|
206
206
|
requirements: []
|
207
207
|
rubyforge_project:
|
208
|
-
rubygems_version: 2.6.
|
208
|
+
rubygems_version: 2.6.12
|
209
209
|
signing_key:
|
210
210
|
specification_version: 4
|
211
211
|
summary: Rails app generator for Thredded.
|