inline_forms_installer 7.13.12 → 7.13.13
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 040522701135611fb98f42262dde130ed4abf544dbcab5d61cb4bac8c4cdb381
|
|
4
|
+
data.tar.gz: 59e927280fe2d3de6d027e8adcd6ae432174225d7cf619ff26fc4b4982520864
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 578ebcf29d67df3e127a0eff5049a8cb2799fd9abb503ac89c5487e36f11ae475d5a4cfbf37bbdd8efeb69ade61caa8d1267aa9d88ed3f74dcd008abc4d9d402
|
|
7
|
+
data.tar.gz: 95fa9bfad065ed0810f84093baa5b513a207ae2cc2fe3b5ac182b3e2baf46ae70a09a32eee095242f6f208ed3263e0fb00d38ae04d47bebd7129d2cac9b39092
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
require "fileutils"
|
|
3
|
+
require "shellwords"
|
|
4
|
+
|
|
5
|
+
module InlineFormsInstaller
|
|
6
|
+
module CreateLog
|
|
7
|
+
module_function
|
|
8
|
+
|
|
9
|
+
def basename_for(started_at = Time.now)
|
|
10
|
+
"inline_forms_create-#{started_at.strftime('%Y%m%d-%H%M%S')}.log"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def final_path(app_name, started_at = Time.now)
|
|
14
|
+
File.expand_path(File.join(app_name, "log", basename_for(started_at)))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def tee_rails_new(app_name, shell_command, started_at: Time.now)
|
|
18
|
+
final = final_path(app_name, started_at)
|
|
19
|
+
tmp = File.expand_path(basename_for(started_at))
|
|
20
|
+
ENV["INLINE_FORMS_INSTALLER_LOG"] = final
|
|
21
|
+
ENV["INLINE_FORMS_CREATE_STARTED_AT"] = started_at.iso8601
|
|
22
|
+
|
|
23
|
+
ok = system(
|
|
24
|
+
"bash", "-c",
|
|
25
|
+
"#{shell_command} 2>&1 | tee #{Shellwords.escape(tmp)}; exit ${PIPESTATUS[0]}"
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
if ok && File.directory?(app_name)
|
|
29
|
+
FileUtils.mkdir_p(File.join(app_name, "log"))
|
|
30
|
+
FileUtils.mv(tmp, final) if File.exist?(tmp)
|
|
31
|
+
elsif File.exist?(tmp)
|
|
32
|
+
FileUtils.mkdir_p(File.dirname(final))
|
|
33
|
+
FileUtils.mv(tmp, final)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
[ok, final]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def append_section(path, title, body)
|
|
40
|
+
return if path.to_s.strip.empty?
|
|
41
|
+
|
|
42
|
+
FileUtils.mkdir_p(File.dirname(path))
|
|
43
|
+
File.open(path, "a") { |f| f.puts "\n=== #{title} ===\n#{body}" }
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
|
2
2
|
require "securerandom"
|
|
3
3
|
require "thor"
|
|
4
|
+
require_relative "create_log"
|
|
4
5
|
|
|
5
6
|
module InlineFormsInstaller
|
|
6
7
|
class Creator < Thor
|
|
@@ -20,7 +21,6 @@ module InlineFormsInstaller
|
|
|
20
21
|
method_option :example, :type => :boolean, :desc => "install the example app. uses sqlite as development database"
|
|
21
22
|
method_option :email, :aliases => "-e", :default => "admin@example.com", :desc => "specify admin email"
|
|
22
23
|
method_option :password, :aliases => "-p", :default => "admin999", :desc => "specify admin password"
|
|
23
|
-
method_option :runtest, :aliases => "--run-test", :default => false, :desc => "run tests"
|
|
24
24
|
method_option :skiprvm, :aliases => "--no-rvm", :type => :boolean, :default => false, :desc => "install inline_forms without RVM"
|
|
25
25
|
|
|
26
26
|
def create(app_name)
|
|
@@ -28,10 +28,6 @@ module InlineFormsInstaller
|
|
|
28
28
|
options[:skiprvm]
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
def self.runtest
|
|
32
|
-
options[:runtest]
|
|
33
|
-
end
|
|
34
|
-
|
|
35
31
|
def self.install_example?
|
|
36
32
|
options[:example]
|
|
37
33
|
end
|
|
@@ -117,17 +113,43 @@ module InlineFormsInstaller
|
|
|
117
113
|
rails_invocation = compatible_rails ? "rails _#{compatible_rails}_" : "rails"
|
|
118
114
|
say "Generating app with: #{rails_invocation} new ...", :green
|
|
119
115
|
|
|
120
|
-
|
|
116
|
+
started_at = Time.now
|
|
117
|
+
log_path = InlineFormsInstaller::CreateLog.final_path(app_name, started_at)
|
|
118
|
+
say "Install log: #{log_path}", :green
|
|
119
|
+
|
|
120
|
+
shell_cmd = [
|
|
121
|
+
rails_invocation, "new", app_name, "-m", app_template_file,
|
|
122
|
+
"--skip-bundle", "--skip-bootsnap", "--javascript=importmap"
|
|
123
|
+
].join(" ")
|
|
124
|
+
|
|
125
|
+
ok, log_path = InlineFormsInstaller::CreateLog.tee_rails_new(app_name, shell_cmd, started_at: started_at)
|
|
126
|
+
unless ok
|
|
121
127
|
say "Rails could not create the app '#{app_name}', maybe because it is a reserved word...", :red
|
|
128
|
+
say "Install log: #{log_path}", :red
|
|
122
129
|
exit 1
|
|
123
130
|
end
|
|
124
131
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
132
|
+
print_create_summary(app_name, log_path, started_at)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def print_create_summary(app_name, log_path, started_at)
|
|
136
|
+
duration = (Time.now - started_at).round(1)
|
|
137
|
+
bundle_ok = false
|
|
138
|
+
Dir.chdir(app_name) do
|
|
139
|
+
bundle_ok = system("bundle", "check", out: File::NULL, err: File::NULL)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
test_summary = ENV["INLINE_FORMS_CREATE_TEST_SUMMARY"].to_s
|
|
143
|
+
test_summary = "(not run — create without --example)" if test_summary.empty?
|
|
144
|
+
|
|
145
|
+
say ""
|
|
146
|
+
say "Install complete (#{duration}s)", :green
|
|
147
|
+
say " inline_forms #{InlineFormsInstaller.inline_forms_version} / inline_forms_installer #{InlineFormsInstaller::VERSION}", :green
|
|
148
|
+
say " bundle check: #{bundle_ok ? 'ok' : 'FAILED'}", bundle_ok ? :green : :red
|
|
149
|
+
say " tests: #{test_summary}", :green
|
|
150
|
+
say "Install log: #{log_path}", :green
|
|
130
151
|
end
|
|
152
|
+
private :print_create_summary
|
|
131
153
|
end
|
|
132
154
|
end
|
|
133
155
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
require "open3"
|
|
2
|
+
|
|
1
3
|
INSTALLER_ROOT = File.expand_path(ENV.fetch("INLINE_FORMS_INSTALLER_ROOT", File.expand_path("..", __dir__)))
|
|
2
4
|
INLINE_FORMS_ROOT = File.expand_path(ENV.fetch("INLINE_FORMS_ROOT", INSTALLER_ROOT))
|
|
5
|
+
require File.join(INSTALLER_ROOT, "lib", "inline_forms_installer", "create_log")
|
|
3
6
|
|
|
4
7
|
def bundle_install!
|
|
5
8
|
say "- Running bundle install..."
|
|
@@ -95,6 +98,7 @@ gem_group :development do
|
|
|
95
98
|
gem 'capistrano', require: false
|
|
96
99
|
gem 'capistrano3-unicorn'
|
|
97
100
|
gem 'listen'
|
|
101
|
+
gem 'foreman'
|
|
98
102
|
gem 'puma', '>= 5.0'
|
|
99
103
|
gem 'rvm-capistrano', :require => false
|
|
100
104
|
gem 'rvm1-capistrano3', require: false
|
|
@@ -111,17 +115,13 @@ gem_group :production do
|
|
|
111
115
|
end
|
|
112
116
|
|
|
113
117
|
say "- Running bundle..."
|
|
114
|
-
run "gem install bundler"
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
File.
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
vh_gem = vh_gem_dirs.flat_map { |dir| Dir[File.join(dir, "validation_hints-*.gem")] }.sort.last
|
|
122
|
-
if vh_gem && File.file?(vh_gem)
|
|
123
|
-
say "- Installing #{File.basename(vh_gem)} (local build; not on RubyGems yet)..."
|
|
124
|
-
run "gem install #{vh_gem} --no-document"
|
|
118
|
+
run "gem install bundler --no-document"
|
|
119
|
+
if (vh_root = ENV["VALIDATION_HINTS_ROOT"]) && File.directory?(vh_root)
|
|
120
|
+
vh_gem = Dir[File.join(vh_root, "validation_hints-*.gem")].sort.last
|
|
121
|
+
if vh_gem && File.file?(vh_gem)
|
|
122
|
+
say "- Installing #{File.basename(vh_gem)} from VALIDATION_HINTS_ROOT..."
|
|
123
|
+
run "gem install #{vh_gem} --no-document"
|
|
124
|
+
end
|
|
125
125
|
end
|
|
126
126
|
bundle_install!
|
|
127
127
|
|
|
@@ -1049,19 +1049,27 @@ if ENV['install_example'] == 'true'
|
|
|
1049
1049
|
route 'get "apartments/name_list", to: "apartments#name_list", as: :apartment_name_list'
|
|
1050
1050
|
route "root :to => 'apartments#index'"
|
|
1051
1051
|
|
|
1052
|
-
say "- Adding example app regression tests (bundle exec rails test)..."
|
|
1053
1052
|
example_tests_root = File.join(INSTALLER_ROOT, "lib/installer_templates/example_app_tests")
|
|
1054
1053
|
Dir.glob(File.join(example_tests_root, "**", "*.rb")).sort.each do |abs|
|
|
1055
1054
|
rel = abs.delete_prefix(example_tests_root + File::SEPARATOR).tr("\\", "/")
|
|
1056
1055
|
create_file rel, File.read(abs)
|
|
1057
1056
|
end
|
|
1058
1057
|
|
|
1058
|
+
say "- Running example regression tests (bundle exec rails test)..."
|
|
1059
|
+
test_out, test_status = Open3.capture2e("bundle", "exec", "rails", "test")
|
|
1060
|
+
if (log_path = ENV["INLINE_FORMS_INSTALLER_LOG"]).to_s != ""
|
|
1061
|
+
InlineFormsInstaller::CreateLog.append_section(log_path, "bundle exec rails test", test_out)
|
|
1062
|
+
end
|
|
1063
|
+
summary_line = test_out.lines.reverse.find { |l| l =~ /\d+ runs,/ }
|
|
1064
|
+
ENV["INLINE_FORMS_CREATE_TEST_SUMMARY"] = summary_line&.strip || "failed (no summary line)"
|
|
1065
|
+
abort "ERROR: bundle exec rails test failed during --example install.\n#{test_out}" unless test_status.success?
|
|
1066
|
+
|
|
1059
1067
|
say "\nDone! Example app (Photo + Apartment + Owner) is ready.", :yellow
|
|
1060
|
-
say " bundle exec rails
|
|
1061
|
-
say "
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1068
|
+
say " cd #{File.basename(Dir.pwd)} && rvm use . && bundle exec rails s", :yellow
|
|
1069
|
+
say " http://localhost:3000/apartments — #{ENV["email"]} / #{ENV["password"]}", :yellow
|
|
1070
|
+
if (log_path = ENV["INLINE_FORMS_INSTALLER_LOG"]).to_s != ""
|
|
1071
|
+
say " Install log: #{log_path}", :yellow
|
|
1072
|
+
end
|
|
1065
1073
|
end
|
|
1066
1074
|
# done!
|
|
1067
1075
|
say "\nDone! Now make your tables with 'bundle exec rails g inline_forms ...", :yellow
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: inline_forms_installer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.13.
|
|
4
|
+
version: 7.13.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ace Suares
|
|
@@ -78,6 +78,7 @@ files:
|
|
|
78
78
|
- inline_forms_installer.gemspec
|
|
79
79
|
- lib/inline_forms_installer.rb
|
|
80
80
|
- lib/inline_forms_installer/app_template.rb
|
|
81
|
+
- lib/inline_forms_installer/create_log.rb
|
|
81
82
|
- lib/inline_forms_installer/creator.rb
|
|
82
83
|
- lib/inline_forms_installer/installer_core.rb
|
|
83
84
|
- lib/inline_forms_installer/version.rb
|