code: def init options={}
      if File.exist?('.spectro/config') && !options[:f]
        abort "\n" + "Project already initialized. If you want to reset the curret setup you can run ".black.on_yellow + " spectro init -f ".white.on_light_black + "\n\n"
      end
  
      Dir.exist?('.spectro') || Dir.mkdir('.spectro')
      Dir.exist?('.spectro/cache') || Dir.mkdir('.spectro/cache')
      File.open('.spectro/config', 'w') do |file|
        file.write <<-CONFIG
  #!/usr/bin/env ruby
  
  Spectro.configure do |config|
  # Sets a custom API Hostname if needed
  # config.api_hostname = 'localhost:9292'
  #
  # Instead of failing in case of unfulfilled functions it will try to use the local specs to get a result
  # config.enable_mocks!
  end
        CONFIG
      end
      File.open('.spectro/index.yml', 'w') do |file|
      end
      File.open('.spectro/undefined.yml', 'w') do |file|
      end
  
      puts "\n" + "The project has been successfully initialized".black.on_blue + "\n\n"
  
      return self
    end
docs: Init the current folder as an Spectro project, creating all the required files and folders
   `.spectro` confg file
   `.spectro/index.yml` which will hold the mappings between Files/Method names and defined lambdas
   `.spectro/undefined.yml` which will hold the collection of spec definitions not yet fulfilled
   `.spectro/cache` folder that will hold the source code of the retrieved lambdas
  
   @return [Spectro::Compiler] self