Sha256: 08d99c60efd14711fe38174ca05283c49d75f232a914c9e2dce44ccb812a9ede

Contents?: true

Size: 1.54 KB

Versions: 3

Compression:

Stored size: 1.54 KB

Contents

require 'fileutils'
require 'erb'

module Shining

module FileMethods
  def file? file
    File.exists? file
  end

  def dir? dir
    File.directory? dir
  end

  def change_dir to
    Dir.chdir to
  end

  def move from, to
    Shining.say("  Moving\t#{from} to #{to}") {
      Dir[from].each do |something| FileUtils.mv something, to end
    }
  end

  def copy from, to
    Shining.say("  Copying\t#{from} to #{to}") {
      Dir[from].each do |something|
        File.directory?(something) ? FileUtils.cp_r(something, to) : FileUtils.cp(something, to)
      end
    }
  end

  def new_dir dir, careful = true
    confirm "#{dir} already exists. Proceed?" if careful and dir?(dir)
    Shining.say("  Creating\t#{dir}") { FileUtils.mkdir_p dir }
  end

  def read_file file
    File.read file
  end

  def erb file
    ERB.new(read_file(file)).result(binding)
  end

  def json file
    JSON.parse read_file(file)
  end

  def expand path
    File.expand_path path
  end

  def dirname file
    File.dirname file
  end

  def extname file
    File.extname file
  end

  def basename file, take = ''
    File.basename file, take
  end

  def delete! file
    dir?(file) ? FileUtils.rm_rf(file) : FileUtils.rm(file)
  end

  def new_file path
    Shining.say "Creating file #{path}" do
      File.open path, 'w' do |file|
        yieldage = yield if block_given?
        file.write yieldage unless yieldage.empty? or not yieldage.is_a?(String)
      end
    end
  end

  private
  def confirm text
    Shining.say text
    !!(STDIN.gets =~ /yes|y/i) ? true : exit(-2)
  end
end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shining-1.3.2 lib/ext/filemethods.rb
shining-1.3.1 lib/ext/filemethods.rb
shining-1.3.0 lib/ext/filemethods.rb