Bake ModernizeSourceBakeModernize

module Modernize

Nested

Definitions

def self.template_path_for(path)

Compute the template root path relative to the gem root.

Implementation

def self.template_path_for(path)
	TEMPLATE_ROOT + path
end

def self.stale?(source_path, destination_path)

Check if the destination path is stale compared to the source path.

Implementation

def self.stale?(source_path, destination_path)
	if File.exist?(destination_path)
		return !FileUtils.identical?(source_path, destination_path)
	end
	
	return true
end

def self.copy_template(source_path, destination_path)

Copy files from the source path to the destination path.

Signature

parameter source_path String

The source path.

parameter destination_path String

The destination path.

Implementation

def self.copy_template(source_path, destination_path)
	glob = Build::Files::Glob.new(source_path, "**/*")
	
	glob.each do |path|
		full_path = File.join(destination_path, path.relative_path)
		
		if File.directory?(path)
			unless File.directory?(full_path)
				FileUtils.mkdir_p(full_path)
			end
		else
			if stale?(path, full_path)
				FileUtils::Verbose.cp(path, full_path)
			end
		end
	end
end