Class: Foobara::Generators::TypeGenerator::WriteTypeToDisk
Constant Summary
TruncatedInspect::MAX_LENGTH
Instance Attribute Summary
#paths_to_source_code
Class Method Summary
collapse
Instance Method Summary
collapse
#delete_old_files_if_needed, #generate_generated_files_json, #generated_files_json_filename, #run_cmd_and_return_output, #run_cmd_and_write_output, #stats, #write_all_files_to_disk, #write_file_to_disk
Methods inherited from Command
install!
#inspect, truncating
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Class Method Details
.generator_key ⇒ Object
8
9
10
|
# File 'src/write_type_to_disk.rb', line 8
def generator_key
"type"
end
|
Instance Method Details
#bundle_install ⇒ Object
49
50
51
52
53
54
55
56
|
# File 'src/write_type_to_disk.rb', line 49
def bundle_install
puts "bundling..."
cmd = "bundle install"
Bundler.with_unbundled_env do
run_cmd_and_write_output(cmd, raise_if_fails: false)
end
end
|
#default_output_directory ⇒ Object
33
34
35
|
# File 'src/write_type_to_disk.rb', line 33
def default_output_directory
"."
end
|
#execute ⇒ Object
21
22
23
24
25
26
27
|
# File 'src/write_type_to_disk.rb', line 21
def execute
generate_file_contents
write_all_files_to_disk
run_post_generation_tasks
stats
end
|
#generate_file_contents ⇒ Object
37
38
39
40
|
# File 'src/write_type_to_disk.rb', line 37
def generate_file_contents
self.paths_to_source_code = run_subcommand!(GenerateType, type_config.attributes)
end
|
#output_directory ⇒ Object
29
30
31
|
# File 'src/write_type_to_disk.rb', line 29
def output_directory
inputs[:output_directory] || default_output_directory
end
|
#rubocop_autocorrect ⇒ Object
58
59
60
61
62
63
64
65
66
67
|
# File 'src/write_type_to_disk.rb', line 58
def rubocop_autocorrect
Open3.popen3("bundle exec rubocop --no-server -A") do |_stdin, _stdout, stderr, wait_thr|
exit_status = wait_thr.value
unless exit_status.success?
raise "could not rubocop -A. #{stderr.read}"
end
end
end
|
#run_post_generation_tasks ⇒ Object
42
43
44
45
46
47
|
# File 'src/write_type_to_disk.rb', line 42
def run_post_generation_tasks
Dir.chdir output_directory do
bundle_install
rubocop_autocorrect
end
end
|