class Renamespace::MoveSpecFile

Attributes

paths[R]

Public Class Methods

new(paths:) click to toggle source
# File lib/renamespace/move_spec_file.rb, line 7
def initialize(paths:)
  @paths = paths
end

Public Instance Methods

call() click to toggle source
# File lib/renamespace/move_spec_file.rb, line 11
def call
  move unless missing? || paths.same?
end

Private Instance Methods

destination_spec_path() click to toggle source
# File lib/renamespace/move_spec_file.rb, line 36
def destination_spec_path
  spec_path(paths.destination)
end
missing?() click to toggle source
# File lib/renamespace/move_spec_file.rb, line 28
def missing?
  !(File.exist?(source_spec_path) || warn_missing)
end
move() click to toggle source
# File lib/renamespace/move_spec_file.rb, line 19
def move
  Renamespace::Directories.create_directories_to_file(destination_spec_path)
  FileUtils.mv(source_spec_path, destination_spec_path)
end
source_spec_path() click to toggle source
# File lib/renamespace/move_spec_file.rb, line 32
def source_spec_path
  spec_path(paths.source)
end
spec_path(path) click to toggle source
# File lib/renamespace/move_spec_file.rb, line 40
def spec_path(path)
  path
    .sub('.rb', '_spec.rb')
    .sub(/^lib/, specs_dir)
end
specs_dir() click to toggle source
# File lib/renamespace/move_spec_file.rb, line 46
def specs_dir
  Dir.exist?('spec/lib') ? 'spec/lib' : 'spec'
end
warn_missing() click to toggle source
# File lib/renamespace/move_spec_file.rb, line 24
def warn_missing
  puts Rainbow("Warning: spec file missing for #{destination_spec_path}").orange
end