class Sign::Generator

Public Instance Methods

create(license, name, year) click to toggle source
# File lib/sign/generator.rb, line 3
def create(license, name, year)
  raise ArgumentError, "#{license} is not available." unless File.readable?(license)

  license_template = File.read(license)
  name = get_name if name.nil?
  year = get_year if year.nil?
  
  if placeholders_exist?(license_template)
    new_license = license_template.gsub("[AUTHOR]", name)
    new_license = new_license.gsub("[YEAR]", year)
  else
    new_license = license_template
  end
  
  create_new_file(new_license)
end
create_new_file(new_license) click to toggle source
# File lib/sign/generator.rb, line 26
def create_new_file(new_license)
  new_file = File.new("LICENSE", "w")
  new_file.puts(new_license)
  new_file.close
  puts "License created \033[91m<3\033[0m"
end
find_name() click to toggle source
# File lib/sign/generator.rb, line 41
def find_name
  File.foreach("#{gitconfig_path}/.gitconfig").detect do |line| 
    if line.match("\tname")
      return line.scan(/= (.*)/).last[0]
    end
  end
end
get_name() click to toggle source
# File lib/sign/generator.rb, line 33
def get_name
  if gitconfig_exist?
    find_name
  else
    return ""
  end
end
get_year() click to toggle source
# File lib/sign/generator.rb, line 49
def get_year
  return Time.new.year.to_s
end
gitconfig_exist?() click to toggle source
# File lib/sign/generator.rb, line 53
def gitconfig_exist?
  File.exist?("#{gitconfig_path}/.gitconfig")
end
gitconfig_path() click to toggle source
# File lib/sign/generator.rb, line 57
def gitconfig_path
  File.expand_path("~/", __dir__)
end
placeholders_exist?(license_template) click to toggle source
# File lib/sign/generator.rb, line 20
def placeholders_exist?(license_template)
  placeholders = ["[YEAR]", "[AUTHOR]"]
  
  placeholders.any? { |placeholder| license_template.include?(placeholder) }
end