class MinitestToRspec::CLI
Command-Line Interface (CLI
) instantiated by `bin/mt2rspec`
Constants
- BANNER
- E_CANNOT_CREATE_TARGET_DIR
- E_CONVERT_FAIL
- E_FILE_ALREADY_EXISTS
- E_FILE_NOT_FOUND
- E_USAGE
- OPT_MOCHA
- OPT_RAILS
Attributes
source[R]
target[R]
Public Class Methods
new(args)
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 34 def initialize(args) opts = parse_args(args) @rails = opts[:rails] @mocha = opts[:mocha] case args.length when 2 @source, @target = args when 1 @source = args[0] @target = infer_target_from @source else warn 'Please specify source file' exit E_USAGE end end
Public Instance Methods
run()
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 50 def run assert_file_exists(source) assert_file_does_not_exist(target) ensure_target_directory(target) write_target(converter.convert(read_source, source)) rescue Error => e warn "Failed to convert: #{e}" exit E_CONVERT_FAIL end
Private Instance Methods
assert_file_does_not_exist(file)
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 69 def assert_file_does_not_exist(file) if File.exist?(file) warn "File already exists: #{file}" exit(E_FILE_ALREADY_EXISTS) end end
assert_file_exists(file)
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 62 def assert_file_exists(file) unless File.exist?(file) warn "File not found: #{file}" exit(E_FILE_NOT_FOUND) end end
converter()
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 76 def converter Converter.new(mocha: @mocha, rails: @rails) end
ensure_target_directory(target)
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 80 def ensure_target_directory(target) dir = File.dirname(target) return if Dir.exist?(dir) begin FileUtils.mkdir_p(dir) rescue SystemCallError => e warn "Cannot create target dir: #{dir}" warn e.message exit E_CANNOT_CREATE_TARGET_DIR end end
infer_target_from(source)
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 92 def infer_target_from(source) source .gsub(/\Atest/, 'spec') .gsub(/_test.rb\Z/, '_spec.rb') end
parse_args(args)
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 98 def parse_args(args) Trollop.options(args) do version MinitestToRspec.gem_version.to_s banner BANNER opt :rails, OPT_RAILS, short: :none opt :mocha, OPT_MOCHA, short: :none end end
read_source()
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 107 def read_source File.read(source) end
write_target(str)
click to toggle source
# File lib/minitest_to_rspec/cli.rb, line 111 def write_target(str) File.write(target, str) end