class Revealing::CLI
Constants
- TEMPLATES_DIR
Public Class Methods
exit_on_failure?()
click to toggle source
# File lib/revealing/cli.rb, line 15 def self.exit_on_failure? true end
Public Instance Methods
doctor()
click to toggle source
# File lib/revealing/cli.rb, line 20 def doctor anything_missing = false missing_tools = PREREQUISITES.reject(&:available?) if missing_tools.any? anything_missing = true warn 'Error: The following required tools are not available:' missing_tools.each do |tool| warn " * #{tool} - install it with `#{tool.install_hint}`" end end missing_files = target_files_in(Pathname.getwd).reject(&:exist?) if missing_files.any? anything_missing = true warn 'Error: The following files do not exist:' missing_files.each do |missing| warn " * #{missing.relative_path_from(Pathname.getwd)}" end warn 'Consider running `revealing init` to create them.' end exit 1 if anything_missing end
init(directory = '.')
click to toggle source
# File lib/revealing/cli.rb, line 47 def init(directory = '.') project_directory = Pathname(directory) project_directory.mkdir unless project_directory.exist? # FileUtils.cp_r overwrites the target if it exists, but we want to preserve it # and print information about what happened template_files.zip(target_files_in(project_directory)).each do |src, target| if target.exist? warn "#{target} exists; skipping" else target.dirname.mkpath FileUtils.cp(src, target) puts "#{target} created" end end end
version()
click to toggle source
# File lib/revealing/cli.rb, line 65 def version puts "revealing #{Revealing::VERSION}" end
Private Instance Methods
target_files_in(dir)
click to toggle source
# File lib/revealing/cli.rb, line 78 def target_files_in(dir) template_files.map{|f| dir / f.relative_path_from(TEMPLATES_DIR)} end
template_files()
click to toggle source
# File lib/revealing/cli.rb, line 74 def template_files TEMPLATES_DIR.glob("**/*", File::FNM_DOTMATCH).select(&:file?) end