class Playwright::CLI::Utils::FileManager::FileManager
Constants
- CONFIG_YML
- GITIGNORE
Attributes
script_name[R]
type[R]
Public Class Methods
new(script_name: nil, type: nil)
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 28 def initialize script_name: nil, type: nil @script_name = script_name @type = type end
Private Class Methods
all_commands_in_path()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 109 def self.all_commands_in_path @all_commands_in_path ||= path.map do |path_dir| Dir["#{path_dir}/*"].map { |executable| executable.split('/').last } end.flatten end
create_file_structure()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 99 def self.create_file_structure FileUtils.mkdir_p plays_dir FileUtils.touch root_config_file FileUtils.mkdir_p rubies_dir end
dot_playwright_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 83 def self.dot_playwright_dir playwright_parent_dir.join '.playwright' end
executable_path_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 79 def self.executable_path_dir Pathname.new Playwright::CLI.configuration.executable_path_dir end
path()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 105 def self.path ENV['PATH'].split ':' end
plays_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 87 def self.plays_dir dot_playwright_dir.join 'plays' end
playwright_parent_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 75 def self.playwright_parent_dir Pathname.new Playwright::CLI.configuration.home_dir end
root_config_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 91 def self.root_config_file dot_playwright_dir.join 'config.rb' end
rubies_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 95 def self.rubies_dir dot_playwright_dir.join 'rubies' end
Public Instance Methods
install_script(script_name:, type: @script_name = script_name)
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 33 def install_script script_name:, type: @script_name = script_name @type = type create_script_files symlink_ruby_version set_permissions write_templates create_symlinks create_config_yml create_gitignore create_readme git_init open_editor end
list_scripts()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 66 def list_scripts Dir.new(self.class.plays_dir).select do |file_or_dir| Dir.exists?(self.class.plays_dir.join(file_or_dir)) && !['..', '.'].include?(file_or_dir) end end
open_editor(script_name: nil)
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 53 def open_editor script_name: nil @script_name ||= script_name os.open_editor name: @script_name, path: root_dir end
script_name_rb()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 58 def script_name_rb "#{script_name.to_snake_case}.rb" end
script_name_sh()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 62 def script_name_sh "#{script_name}.sh" end
uninstall_script(script_name)
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 48 def uninstall_script script_name @script_name = script_name delete_script_files end
Private Instance Methods
bin_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 130 def bin_dir root_dir.join 'bin' end
config_yml_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 158 def config_yml_file root_dir.join 'config.yml' end
config_yml_file_exists?()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 162 def config_yml_file_exists? File.exists? config_yml_file end
create_config_yml()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 296 def create_config_yml File.open config_yml_file, "w+" do |file| file.write CONFIG_YML.to_yaml end end
create_expanded_files()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 230 def create_expanded_files FileUtils.mkdir_p script_lib_dir FileUtils.touch version_subcommand_file end
create_gitignore()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 290 def create_gitignore File.open root_dir.join(".gitignore"), "w+" do |file| file.write GITIGNORE.join("\n") end end
create_readme()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 302 def create_readme FileUtils.touch root_dir.join("README.md") new_template = Template.new( name: script_name, out_file: root_dir.join("README.md"), type: Template::README_TYPE ) new_template.render end
create_script_files()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 208 def create_script_files validate_before_create_script_files! self.class.create_file_structure FileUtils.mkdir_p root_dir display.print "New Directory Created: #{root_dir}" FileUtils.mkdir_p gems_dir display.print "New Directory Created: #{gems_dir}" FileUtils.mkdir_p bin_dir display.print "New Directory Created: #{bin_dir}" FileUtils.touch root_ruby_file display.print "New File Created: #{root_ruby_file}" FileUtils.touch launch_script_file display.print "New File Created: #{launch_script_file}" create_expanded_files if type == :expanded end
create_symlinks()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 264 def create_symlinks FileUtils.symlink launch_script_file, symlink_file display.print "New Symlink Created: #{symlink_file} from #{launch_script_file}" FileUtils.symlink root_ruby_file, local_symlink_file display.print "New Symlink Created: #{local_symlink_file} from #{root_ruby_file}" end
delete_script_files()
click to toggle source
¶ ↑
DELETE METHODS
¶ ↑
# File lib/playwright/cli/utils/file_manager.rb, line 316 def delete_script_files validate_before_delete_script_files! FileUtils.rm_rf root_dir if Dir.exists? root_dir FileUtils.rm symlink_file if File.symlink? symlink_file display.print "Playwright script '#{script_name}' destroyed!" end
gems_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 134 def gems_dir root_dir.join 'gems' end
git_init()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 284 def git_init git = Git.init root_dir.to_s git.add all: true git.commit 'initial commit' end
launch_script_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 150 def launch_script_file bin_dir.join script_name_sh end
launch_script_file_exists?()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 154 def launch_script_file_exists? File.exists? launch_script_file end
local_symlink_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 174 def local_symlink_file root_dir.join script_name end
local_symlink_file_exists?()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 178 def local_symlink_file_exists? File.symlink? symlink_file end
root_dir()
click to toggle source
root_dir_exists?()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 138 def root_dir_exists? File.exists? root_dir end
root_ruby_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 142 def root_ruby_file root_dir.join script_name_rb end
root_ruby_file_exists?()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 146 def root_ruby_file_exists? File.exists? root_ruby_file end
ruby_version_symlink_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 182 def ruby_version_symlink_file self.class.rubies_dir.join "ruby#{ RUBY_VERSION.gsub '.', '' }" end
ruby_version_symlink_file_exists?()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 186 def ruby_version_symlink_file_exists? File.symlink? ruby_version_symlink_file end
script_lib_dir()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 190 def script_lib_dir root_dir.join 'lib' end
set_permissions()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 235 def set_permissions FileUtils.chmod "u+x", root_ruby_file display.print "Executable Permissions Set: #{root_ruby_file}" FileUtils.chmod "u+x", launch_script_file display.print "Executable Permissions Set: #{launch_script_file}" end
symlink_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 166 def symlink_file self.class.executable_path_dir.join script_name end
symlink_file_exists?()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 170 def symlink_file_exists? File.symlink? symlink_file end
symlink_ruby_version()
click to toggle source
¶ ↑
CREATE METHODS
¶ ↑
# File lib/playwright/cli/utils/file_manager.rb, line 202 def symlink_ruby_version current_ruby = `which ruby`.chomp FileUtils.symlink current_ruby, ruby_version_symlink_file unless ruby_version_symlink_file_exists? display.print "New Symlink Created: #{ruby_version_symlink_file} from #{current_ruby}" end
template()
click to toggle source
validate_before_create_script_files!()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 272 def validate_before_create_script_files! if self.class.all_commands_in_path.include? script_name display.error "There is already a script in your $PATH with that name!" elsif root_ruby_file_exists? if ask.boolean_question "This playwright script already exists! Overwrite it?" delete_script_files else display.abort "Aborting Operation." end end end
validate_before_delete_script_files!()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 323 def validate_before_delete_script_files! if symlink_file_exists? && !root_dir_exists? display.error "The script named '#{script_name}' is not a playright script!" elsif !root_dir_exists? display.error "No play with that name exists!" end end
version_subcommand_file()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 194 def version_subcommand_file script_lib_dir.join 'version.rb' end
write_templates()
click to toggle source
# File lib/playwright/cli/utils/file_manager.rb, line 242 def write_templates template.render if type == Template::EXPANDED_TYPE new_template = Template.new( name: 'version.rb', out_file: version_subcommand_file, type: Template::SUBCOMMAND_TYPE, klass_name: template.klass_name ) new_template.render end launch_script_file_template = Template.new( name: script_name_sh, out_file: launch_script_file, type: Template::SHELL_SCRIPT_TYPE, values: { script_name: script_name } ) launch_script_file_template.render end