class Yard2steep::CLI
Public Class Methods
new(argv)
click to toggle source
@param [Array<String>] argv
# File lib/yard2steep/cli.rb, line 12 def initialize(argv) @option = Option.new @option.parse!(argv) end
run!(argv)
click to toggle source
@param [Array<String>] argv @return [void]
# File lib/yard2steep/cli.rb, line 7 def self.run!(argv) CLI.new(argv).run! end
Public Instance Methods
run!()
click to toggle source
@return [void]
# File lib/yard2steep/cli.rb, line 18 def run! traverse_dir!(src_dir) end
Private Instance Methods
dst_dir()
click to toggle source
@return [String]
# File lib/yard2steep/cli.rb, line 30 def dst_dir @dst_dir ||= File.expand_path(@option.dst) end
src_dir()
click to toggle source
@return [String]
# File lib/yard2steep/cli.rb, line 25 def src_dir @src_dir ||= File.expand_path(@option.src) end
translate!(f)
click to toggle source
@param [String] f @return [void]
# File lib/yard2steep/cli.rb, line 52 def translate!(f) text = File.read(f) dst_file = File.join( dst_dir, f.gsub(/^#{Regexp.escape(src_dir)}/, '').gsub(/\.rb$/, '.rbi') ) dst_dir = File.dirname(dst_file) FileUtils.mkdir_p(dst_dir) result = Engine.execute( f, text, debug: @option.debug, debug_ast: @option.debug_ast, ) File.write(dst_file, result) end
traverse_dir!(dir)
click to toggle source
@param [String] dir @return [void]
# File lib/yard2steep/cli.rb, line 36 def traverse_dir!(dir) Dir.glob(File.join(dir, '*')).each do |f| if File.file?(f) if File.extname(f) == '.rb' translate!(f) end elsif File.directory?(f) traverse_dir!(f) else # Do nothing end end end