class Jekyll::Compose::FileCreator

Attributes

file[R]
force[R]
root[R]

Public Class Methods

new(file_info, force = false, root = nil) click to toggle source
# File lib/jekyll-compose/file_creator.rb, line 7
def initialize(file_info, force = false, root = nil)
  @file = file_info
  @force = force
  @root = root
end

Public Instance Methods

create!() click to toggle source
# File lib/jekyll-compose/file_creator.rb, line 13
def create!
  return unless create?

  ensure_directory_exists
  write_file
end
file_path() click to toggle source
# File lib/jekyll-compose/file_creator.rb, line 20
def file_path
  return file.path if root.nil? || root.empty?

  File.join(root, file.path)
end

Private Instance Methods

create?() click to toggle source
# File lib/jekyll-compose/file_creator.rb, line 28
def create?
  return true if force
  return true unless File.exist?(file_path)

  Jekyll.logger.warn "A #{file.resource_type} already exists at #{file_path}"
  false
end
ensure_directory_exists() click to toggle source
# File lib/jekyll-compose/file_creator.rb, line 36
def ensure_directory_exists
  dir = File.dirname file_path
  FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
end
write_file() click to toggle source
# File lib/jekyll-compose/file_creator.rb, line 41
def write_file
  File.open(file_path, "w") do |f|
    f.puts(file.content)
  end

  Jekyll.logger.info "New #{file.resource_type} created at #{file_path.cyan}"
end