lib/gem_hadar/setup.rb
# A class that handles the initialization and setup of a new gem project # structure. # # This class is responsible for creating the basic directory layout and # configuration files needed for a Ruby gem project. It ensures that essential # components like the lib directory, VERSION file, and Rakefile are in place, # providing a solid foundation for gem development. # # @example Setting up a new gem project # setup = GemHadar::Setup.new # setup.perform class GemHadar::Setup include FileUtils # The perform method sets up the basic project structure by creating the lib # directory, initializing a VERSION file with '0.0.0' if it doesn't exist, # and creating a default Rakefile with basic GemHadar configuration if one # doesn't already exist. def perform mkdir_p 'lib' unless File.exist?('VERSION') File.open('VERSION', 'w') do |output| output.puts '0.0.0' end end unless File.exist?('Rakefile') File.open('Rakefile', 'w') do |output| output.puts <<~EOT # vim: set filetype=ruby et sw=2 ts=2: require 'gem_hadar' GemHadar do #developing true #name 'TODO' module_type :class #author 'TODO' #email 'todo@example.com' #homepage "https://github.com/TODO/NAME" #summary 'TODO' description 'TODO' test_dir 'spec' ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.AppleDouble', '.bundle', '.yardoc', 'tags' readme 'README.md' #executables << 'bin/TODO' #dependency 'TODO', '~>1.2.3' #licenses << 'TODO end EOT end end end end