class Grundler::Commands::Remove

Public Class Methods

new(cli, packages, json_writer) click to toggle source
Calls superclass method Grundler::Commands::Common::new
# File lib/grundler/commands/remove.rb, line 8
def initialize(cli, packages, json_writer)
  super(cli)
  unless File.exist?(Grundler::LOCKFILE_PATH)
    puts "No #{Grundler::LOCKFILE_PATH} file found!"
    return
  end

  if packages.empty?
    puts "Must specify a package name!"
    return
  end

  json_writer.remove(delete(packages))
end

Private Instance Methods

delete(packages) click to toggle source
# File lib/grundler/commands/remove.rb, line 25
def delete(packages)
  packages.each do |package|
    puts "Removing #{package}"
    FileUtils.rm "#{@cli.nodule_path}/#{package}.js" if File.exist?("#{@cli.nodule_path}/#{package}.js")
    remove_directory_if_empty(package)
  end

  packages.map { |package| [package, package] }.to_h
end
remove_directory_if_empty(package) click to toggle source
# File lib/grundler/commands/remove.rb, line 35
def remove_directory_if_empty(package)
  dirname = File.dirname("#{@cli.nodule_path}/#{package}.js")
  FileUtils.rm_rf dirname if Dir.exist?(dirname) && Dir.empty?(dirname)
end