From 7814eed9705294772ef9a418ed3bf6c24db89ed4 Mon Sep 17 00:00:00 2001 From: "D.M.G" Date: Sun, 12 Apr 2015 17:02:49 -0300 Subject: [PATCH] Version 1.1.0 * Changed LICENSE.md * Changed ReadMe.md * Files generated does not have anymore "\#encoding: utf-8" on its first line * New options added: --full, --rspec-only, --cucumber-only, --minitest-only, --clean * Rakefile content is generated according to the options passed * Improved feedback from cocot --- Changelog.md | 9 ++ License.md | 4 +- ReadMe.md | 44 ++++++--- data/contenido_de_archivos.cocot | 78 +++++++++++++--- features/cocot_construye_esqueleto.feature | 1 - .../usuario_ingresa_comando_steps.rb | 24 +++++ features/usuario_ingresa_comando.feature | 10 +- lib/cocot/cocot.rb | 4 +- lib/cocot/constructor_de_esqueleto.rb | 76 +++++++++++++-- lib/cocot/contenido_de_archivos.rb | 92 ++++++++++++++++--- lib/cocot/juzgador_de_argumentos.rb | 43 +++++++-- 11 files changed, 322 insertions(+), 63 deletions(-) diff --git a/Changelog.md b/Changelog.md index 9341c0c..f4fe5c5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,12 @@ +1.1.0 +----- +* Changed LICENSE.md +* Changed ReadMe.md +* Files generated does not have anymore "\#encoding: utf-8" on its first line +* New options added: --full, --rspec-only, --cucumber-only, --minitest-only, --clean +* Rakefile content is generated according to the options passed +* Improved feedback from cocot + 1.0.1 ----- * Changed LICENSE.md diff --git a/License.md b/License.md index d6a7c68..fef962a 100644 --- a/License.md +++ b/License.md @@ -1,10 +1,10 @@ -Copyright (c) 2013 cocot +Copyright (c) 2015 cocot Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software with the rights to use, copy, modify, merge, publish and distribute. This software can not be sold, can't get money from it. In case you want to -distribute it around please mention the author, thank you. +distribute it around please mention the author. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS diff --git a/ReadMe.md b/ReadMe.md index 357034d..1ab1557 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,12 +1,12 @@ cocot ===== - Sometimes you have a good 'no-rails' idea, and say for yourself: "what a good idea!", what mostly of the time is followed by "okay, but...I can't, I'm in many proyects and I had to create all the folder and files stuff, will take me 15 minutes, or more, so no". You are lazy and you know it. We are great builders of tools which makes our life easy, **cocot** is one of those. **cocot** is a very simple tool that puts you to work in one second, you just have to tell him which will be the name of your proyect and it's done, it creates you the structure of your **BDD** proyect. + Sometimes you have a good 'no-rails' idea, and say for yourself: "what a good idea!", what mostly of the time is followed by "okay, but...I can't, I'm in many proyects and I had to create all the folder and files stuff, have to check out the file convention arragment, will take me 10 minutes, so no". You are lazy and you know it. We are great builders of tools which make our life easy, **cocot** is one of those. **cocot** is a very simple tool that puts you to work in one second, you just have to tell him which will be the name of your proyect and it's done, it creates you the structure of your **BDD/TDD/"free of tests"** proyect. It supposes that you... ----------------------- - use RSpec and Cucumber for BDD developing, so it creates the conventional files and folders for work with. + may use **RSpec** and/or **Cucumber** and/or **minitest** for **BDD** developing, so it creates the conventional files and folders for work with. How can I install it? ----------------- @@ -21,23 +21,39 @@ How can I use it? Gemfile ------- - If you don't have **RSpec** and **Cucumber** installed on your system(or want to update them) you can do it by calling `bundle install` standing on the main folder of your proyect created by **cocot**. If you neither have **bundler** you will need to install it by calling `gem install bundler`. + If you don't have **RSpec** and **Cucumber** installed on your system(or want to update them) and want to use them you can do it by calling `bundle install` standing on the main folder of your proyect created by **cocot**. If you neither have **bundler** you will need to install it by calling `gem install bundler`. Rakefile -------- - **cocot** packs few pre-defined **rake** tasks: + **cocot** packs few pre-defined **rake** tasks on standard mode: * `rake cucumber` : same like `cucumber` * `rake cucumber_wip` : same like `cucumber --format progress --color --wip --tags @wip:3`, specially for order * `rake spec` : same like `spec --color` * `rake test` : run minitest tests - * `rake rdoc` : create a doc folder with **RDoc** documentation + * `rake rdoc` : same like `rdoc --all --tab-width=1 --format=darkfish --op=doc --force-output`, create a doc folder with **RDoc** documentation -Skeleton --------- + If you pass some option(see below) to the program, the rake task list may be reduced. + +Options +------- + + Version 1.1.0 introduces few nice options: + + * **--full** Builds these extra-folders: "share", "ext" and "data". If your project is kind of big, you may use them for order. - **cocot** builds: + Next ones can be played as solo optionally in conjunction with the above one: + + * **--rspec-only** Builds the standard skeleton minus the folders and files related to Cucumber. + * **--cucumber-only** Builds the standard skeleton minus the folders and files related to RSpec. + * **--minitest-only** Builds the standard skeleton without the support for RSpec and Cucumber and adds the folder "test" with the purpose of placing minitest tests there. + * **--clean** Builds the standard skeleton without the support for RSpec and Cucumber. This option may be fine for very small projects, which will have no unit testing at all. + +Standard skeleton +----------------- + + By default **cocot** builds support for **RSpec** and **Cucumber**:
  bin\
@@ -63,22 +79,22 @@ Skeleton
 
  *proyect is replaced by the name of your proyect
 
-TODO
-----
 
- * --full option. It builds you extra folders, like "Data", "Share", and "Test".
- * --git-init option. Initialize a git repository(you will need to have **Git** in your system), and stash all the files created by **cocot**.
+NOTES
+-----
+
+ Only tested on Windows. Should work in most operative systems.
 
 License
 -------
 
-Copyright (c) 2013 cocot
+Copyright (c) 2015 cocot
 
  Permission is hereby granted, free of charge, to any person obtaining a copy of
 this software and associated documentation files (the "Software"), to deal in
 the Software with the rights to use, copy, modify, merge, publish and distribute.
  This software can not be sold, can't get money from it. In case you want to 
-distribute it around please mention the author, thank you.
+distribute it around please mention the author.
 
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
diff --git a/data/contenido_de_archivos.cocot b/data/contenido_de_archivos.cocot
index 3a5bb47..002f904 100644
--- a/data/contenido_de_archivos.cocot
+++ b/data/contenido_de_archivos.cocot
@@ -1,16 +1,13 @@
-{:bin/proyectI"Y#!/usr/bin/env ruby
-#encoding: utf-8
+{:bin/proyectI"H#!/usr/bin/env ruby
 
 require_relative '../lib/name_of_the_proyect'
-:ET:features/support/env.rbI"¿#encoding: utf-8
-
-#if you respect the convention of a Ruby proyect layout then the next lines are fixed
+:ET:features/support/env.rbI"­#if you respect the convention of a Ruby proyect layout then the next lines are fixed
 $LOAD_PATH << File.expand_path('../../../lib', __FILE__)
 require 'name_of_the_proyect'
-;T:lib/proyect.rbI"#encoding: utf-8
-;T:spec/spec_helper.rbI"5#encoding: utf-8
+;T:lib/proyect.rbI"
+;T:spec/spec_helper.rbI"%require 'name_of_the_proyect'
+
 
-require 'name_of_the_proyect'
 ;T:GemfileI"csource 'https://rubygems.org'
 
 gem 'rspec'
@@ -18,20 +15,18 @@ gem 'cucumber'
 gem 'rake'
 gem 'rdoc'
 gem 'bundler'
-;T:
RakefileI"#encoding: utf-8
-
-#necesary for minitest tests
+;T:
rakefileI"v#necessary for minitest tests
 require 'rake/testtask'
-#necesary for cucumber tests
+#necessary for cucumber tests
 require 'cucumber/rake/task'
-#necesary for rspec tests
+#necessary for rspec tests
 require 'rspec/core/rake_task'
 
 #################TASKS#######################
 
 #to execute minitest tests with `rake test`
 Rake::TestTask.new do |t|
-  #search recursively under the folder test for files called test*. You have to create the folder manually.
+  #search recursively under the folder test for files called test*. You may have to create the folder manually.
   t.pattern = 'test/**/test*.rb'
 end
 
@@ -51,6 +46,61 @@ RSpec::Core::RakeTask.new do |t|
   t.rspec_opts = ['--color']
 end
 
+desc 'to generate RDoc documentation'
+task :rdoc do
+  system('rdoc --all --tab-width=1 --format=darkfish --op=doc --force-output')
+end
+;T:rakefile_rspec_onlyI"#necessary for rspec tests
+require 'rspec/core/rake_task'
+
+#################TASKS#######################
+
+#to execute all RSpec tests with `rake spec`
+RSpec::Core::RakeTask.new do |t|
+  #opciones de rspec a correr
+  t.rspec_opts = ['--color']
+end
+
+desc 'to generate RDoc documentation'
+task :rdoc do
+  system('rdoc --all --tab-width=1 --format=darkfish --op=doc --force-output')
+end
+;T:rakefile_cucumber_onlyI"œ#necessary for cucumber tests
+require 'cucumber/rake/task'
+
+#################TASKS#######################
+
+#to execute cucumber tests with `rake cucumber`
+Cucumber::Rake::Task.new
+
+#to execute cucumber wip(work in progress) with 'rake cucumber_wip'. It will kick you if you are working in more than 3 scenarios
+#remember to tag each wip scenarios with @wip above the Scenario keyword in the implicit *.feature
+desc 'Executes cucumber wip'
+task :cucumber_wip do
+  system('cucumber --format progress --color --wip --tags @wip:3')
+end
+
+desc 'to generate RDoc documentation'
+task :rdoc do
+  system('rdoc --all --tab-width=1 --format=darkfish --op=doc --force-output')
+end
+;T:rakefile_minitest_onlyI"É#necessary for minitest tests
+require 'rake/testtask'
+
+#################TASKS#######################
+
+#to execute minitest tests with `rake test`
+Rake::TestTask.new do |t|
+  #search recursively under the folder test for files called test*. You may have to create the folder manually.
+  t.pattern = 'test/**/test*.rb'
+end
+
+desc 'to generate RDoc documentation'
+task :rdoc do
+  system('rdoc --all --tab-width=1 --format=darkfish --op=doc --force-output')
+end
+;T:rakefile_cleanI"¶#################TASKS#######################
+
 desc 'to generate RDoc documentation'
 task :rdoc do
   system('rdoc --all --tab-width=1 --format=darkfish --op=doc --force-output')
diff --git a/features/cocot_construye_esqueleto.feature b/features/cocot_construye_esqueleto.feature
index f060db2..9681e0e 100644
--- a/features/cocot_construye_esqueleto.feature
+++ b/features/cocot_construye_esqueleto.feature
@@ -6,7 +6,6 @@ Característica: cocot construye el esqueleto del proyecto.
   como desarrollador,
   quiero poder lograr que cocot construya el esqueleto del nuevo proyecto en la ruta actual desde donde se está ejecutando la aplicación.
 
-  @wip
   Escenario: genero el árbol de carpetas.
     Dado que el usuario ingresó correctamente el comando para esqueletizar su nuevo proyecto, por ejemplo: "cocot Proyecto",
     Cuando origino sus carpetas,
diff --git a/features/step_definitions/usuario_ingresa_comando_steps.rb b/features/step_definitions/usuario_ingresa_comando_steps.rb
index 4111141..7aba328 100644
--- a/features/step_definitions/usuario_ingresa_comando_steps.rb
+++ b/features/step_definitions/usuario_ingresa_comando_steps.rb
@@ -61,4 +61,28 @@
 
 Dado(/^que existe la carpeta "([^"]*)" en el directorio actual,$/) do |carpeta|
   Dir.exists?(carpeta).should be true
+end
+
+Entonces(/^debo ver generada además de las carpetas convencionales: '\.\/data\/', '\.\/share\/' y '\.\/ext\/'\.$/) do
+  nombre_del_proyecto = 'ProyectoFu'
+  #si estoy dentro del directorio del proyecto...
+  if Dir.getwd[(-(nombre_del_proyecto.length))..-1].==(nombre_del_proyecto)
+    existen_carpetas_extras?.should be true
+  else
+    #si no lo estoy me paso
+    Dir.chdir('./ProyectoFu')
+    existen_carpetas_extras?.should be true
+    #terminado el test..
+    Dir.chdir('..')
+  end
+end
+
+#metodo helper del anterior step definition
+def existen_carpetas_extras?
+  archivos_en_wd = Dir['./*'] #: Array
+  if (archivos_en_wd.include?('./data')) and (archivos_en_wd.include?('./share')) and (archivos_en_wd.include?('./ext'))
+    true
+  else
+    false
+  end
 end
\ No newline at end of file
diff --git a/features/usuario_ingresa_comando.feature b/features/usuario_ingresa_comando.feature
index 0f2f938..5ea3d60 100644
--- a/features/usuario_ingresa_comando.feature
+++ b/features/usuario_ingresa_comando.feature
@@ -42,8 +42,14 @@ Característica: el usuario ingresa un comando y obtiene una respuesta.
 
   Escenario: arranco el programa satisfactoriamente.
     Cuando ejecuto el comando: "cocot ProyectoFu",
-    Entonces debo recibir en consola: "Building skeletal structure for ProyectoFu.",
+    Entonces debo recibir en consola: "Building skeletal structure for ProyectoFu.".
 
   Escenario: arranco el programa satisfactoriamente.
     Cuando ejecuto el comando: "cocot 'Proyecto Fu Fu'", cocot entiende que el nombre del proyecto será "Proyecto Fu Fu",
-    Entonces debo recibir en consola: "Building skeletal structure for Proyecto Fu Fu.",
\ No newline at end of file
+    Entonces debo recibir en consola: "Building skeletal structure for Proyecto Fu Fu.".
+
+  @wip
+  Escenario: paso la opción --full.
+    Cuando ejecuto el comando: "cocot --full ProyectoFu",
+    Entonces debo recibir en consola: "Building skeletal structure for ProyectoFu",
+    Y debo ver generada además de las carpetas convencionales: './data/', './share/' y './ext/'.
\ No newline at end of file
diff --git a/lib/cocot/cocot.rb b/lib/cocot/cocot.rb
index 5e916ac..419f7ea 100644
--- a/lib/cocot/cocot.rb
+++ b/lib/cocot/cocot.rb
@@ -3,7 +3,7 @@
 #Clase principal de la aplicación.
 class Cocot
 
-  attr_reader :salida
+  attr_reader :salida, :juzgador_de_argumentos
 
   def initialize
     @salida = SalidaEstándar.new($stdout)
@@ -56,7 +56,7 @@ def construir_esqueleto
   end
 
   def mostrar_ayuda_en_pantalla
-    msj_de_ayuda = "cocot builds the skeleton layout of your BDD proyects. You just have to give him the name of your proyect like this: `cocot \"name of the proyect\"`.\n"
+    msj_de_ayuda = " cocot builds the skeleton layout of your BDD proyects.\n\n You just have to give him the name of your proyect like this: `cocot \"name of the proyect\"`.\n\n You can pass around these options:\n\n --full\t\t\tBuild extra folders suchs as \"data\", \"share\" and \"ext\".\n\n The next options works as solo and can be combined with previous one:\n\n --rspec-only\t\tStandard skeleton + folders and files needed to work with RSpec.\n --cucumber-only\tStandard skeleton + folders and files needed to work with Cucumber.\n --minitest-only\tStandard skeleton + folders and files needed to work with minitest.\n --clean\t\tStandard skeleton.\n\n If you don't use any of the previous 4 options cocot will build the standard skeleton plus folders and files needed to work with Cucumber and RSpec."
     @salida.escribir(msj_de_ayuda)
   end
 end
\ No newline at end of file
diff --git a/lib/cocot/constructor_de_esqueleto.rb b/lib/cocot/constructor_de_esqueleto.rb
index 9bd3334..b222a64 100644
--- a/lib/cocot/constructor_de_esqueleto.rb
+++ b/lib/cocot/constructor_de_esqueleto.rb
@@ -6,8 +6,14 @@ class ConstructorDeEsqueleto
   attr_reader :inconveniente
 
   #todo lo que sea 'proyect' debe ser reemplazado por el nombre original del proyecto
-  SUBCARPETAS = %w{bin lib lib/proyect spec spec/proyect features features/support features/step_definitions doc}
-  ARCHIVOS = %w{Changelog.md Gemfile Gemfile.lock License.md Rakefile ReadMe.md bin/proyect features/support/env.rb lib/proyect.rb spec/spec_helper.rb}
+  SUBCARPETAS = %w{bin lib lib/proyect doc}
+  SUBCARPETAS_RSPEC = %w{spec spec/proyect}
+  SUBCARPETAS_CUCUMBER = %w{features features/support features/step_definitions}
+  SUBCARPETAS_MINITEST = %w{test}
+  SUBCARPETAS_FULL = %w{data share ext}
+  ARCHIVOS = %w{Changelog.md Gemfile Gemfile.lock License.md Rakefile ReadMe.md bin/proyect lib/proyect.rb}
+  ARCHIVOS_RSPEC = %w{spec/spec_helper.rb}
+  ARCHIVOS_CUCUMBER = %w{features/support/env.rb}
 
   #@param nombre_del_proyecto [String]. @return [TrueClass or FalseClass].
   def construir_esqueleto(nombre_del_proyecto)
@@ -39,25 +45,81 @@ def crear_carpeta_del_proyecto
   end
 
   def crear_subcarpetas
-    SUBCARPETAS.collect {|carpeta| if carpeta.include?('proyect') then carpeta.sub('proyect', @nombre_del_proyecto) else carpeta end}.each do |carpeta|
+    # creo las comunes
+    crear_subcarpetas!(SUBCARPETAS)
+    # chequeo las extras
+    case ::COCOT.juzgador_de_argumentos.modo
+      when '--rspec-only'
+        crear_subcarpetas!(SUBCARPETAS_RSPEC)
+      when '--cucumber-only'
+        crear_subcarpetas!(SUBCARPETAS_CUCUMBER)
+      when '--minitest-only'
+        crear_subcarpetas!(SUBCARPETAS_MINITEST)
+      when nil
+        crear_subcarpetas!(SUBCARPETAS_RSPEC)
+        crear_subcarpetas!(SUBCARPETAS_CUCUMBER)
+      else
+    end
+    # chequeo si el usuario quiere las carpetas extras
+    if ::COCOT.juzgador_de_argumentos.full then crear_subcarpetas!(SUBCARPETAS_FULL) end
+  end
+
+  def crear_subcarpetas!(subcarpetas)
+    subcarpetas.collect {|carpeta| if carpeta.include?('proyect') then carpeta.sub('proyect', @nombre_del_proyecto) else carpeta end}.each do |carpeta|
       Dir.mkdir(carpeta)
       ::COCOT.salida.escribir('.')
     end
   end
 
   def crear_archivos
-    ARCHIVOS.collect {|archivo| if archivo.include?('proyect') then archivo.sub('proyect', @nombre_del_proyecto) else archivo end}.each do |archivo|
+    # creo los archivos principales
+    crear_archivos!(ARCHIVOS)
+    # dependiendo de las opciones pasadas creo resto de archivos
+    case ::COCOT.juzgador_de_argumentos.modo
+      when '--rspec-only'
+        crear_archivos!(ARCHIVOS_RSPEC)
+      when '--cucumber-only'
+        crear_archivos!(ARCHIVOS_CUCUMBER)
+      when nil
+        crear_archivos!(ARCHIVOS_RSPEC)
+        crear_archivos!(ARCHIVOS_CUCUMBER)
+    end
+    # fin de creación de archivos
+    ::COCOT.salida.escribir("\n")
+  end
+
+  def crear_archivos!(archivos)
+    archivos.collect {|archivo| if archivo.include?('proyect') then archivo.sub('proyect', @nombre_del_proyecto) else archivo end}.each do |archivo|
       File.new(archivo, 'w+').close
       ::COCOT.salida.escribir('.')
     end
-    ::COCOT.salida.escribir("\n")
   end
 
   def escribir_archivos
     obtener_contenido_de_archivos() #: Hash
     @contenido_de_archivos.each_pair do |nombre_del_archivo, contenido|
-      File.open(nombre_del_archivo.to_s.sub('proyect', @nombre_del_proyecto), 'w+b') do |archivo|
-        archivo.write(contenido.gsub('name_of_the_proyect', @nombre_del_proyecto))
+      _nombre_del_archivo = nombre_del_archivo.to_s.sub('proyect', @nombre_del_proyecto)
+      # chequeo si el archivo existe
+      if(File.exist?(_nombre_del_archivo))
+        # existe, lo escribo
+        File.open(_nombre_del_archivo, 'w+') do |archivo|
+          archivo.write(contenido.gsub('name_of_the_proyect', @nombre_del_proyecto))
+        end
+      end
+    end
+    # por ultimo escribo el Rakefile
+    File.open('Rakefile', 'w+') do |archivo|
+      case ::COCOT.juzgador_de_argumentos.modo
+        when '--rspec-only'
+          archivo.write(@contenido_de_archivos[:rakefile_rspec_only])
+        when '--cucumber-only'
+          archivo.write(@contenido_de_archivos[:rakefile_cucumber_only])
+        when '--minitest-only'
+          archivo.write(@contenido_de_archivos[:rakefile_minitest_only])
+        when '--clean'
+          archivo.write(@contenido_de_archivos[:rakefile_clean])
+        else
+          archivo.write(@contenido_de_archivos[:rakefile])
       end
     end
   end
diff --git a/lib/cocot/contenido_de_archivos.rb b/lib/cocot/contenido_de_archivos.rb
index 5a7d53f..bc04b34 100644
--- a/lib/cocot/contenido_de_archivos.rb
+++ b/lib/cocot/contenido_de_archivos.rb
@@ -7,15 +7,12 @@ module COCOT; end
 COCOT::CONTENIDO_DE_ARCHIVOS[:'bin/proyect'] = \
 <'`.\n", \
-    dos_o_mas_argumentos_como_nombre: "Error: cocot just need one argument: the name of the further proyect. If its name have more than a word you must put these inside ''.\n", \
-    ayuda_y_esqueletizado_invocados_a_la_vez: "Error: what do you want to do? invoke the help or skeletonize? You can't do both things.\n"}
+    dos_o_mas_argumentos_como_nombre: "Error: cocot just need one argument: the name of the further proyect. If its name have more than a word you must put these inside "".\n"}
+
+  attr_reader :full, :modo
 
   #@param argumentos [Array].
   def juzgar_argumentos(argumentos)
     if argumentos.length.==(0)
       @error_presente_en_argumentos = :ningun_argumento #: Symbol
-    elsif ((argumentos.length).!=(cantidad_de_argumentos_sin_help = (argumentos.select {|arg| arg.!=('--help')}.length))) && (argumentos.!=(['--help']))
-      @error_presente_en_argumentos = :ayuda_y_esqueletizado_invocados_a_la_vez
-    elsif cantidad_de_argumentos_sin_help.>(1)
-      @error_presente_en_argumentos = :dos_o_mas_argumentos_como_nombre
-    elsif argumentos[0].==('--help')
+    elsif argumentos.include?('--help')
       @ayuda_solicitada = true
     else
-      @nombre_del_proyecto = argumentos[0]
+      # voy a limpiar los argumentos opciones para que me quede(n) el potencial nombre del proyecto
+      if(_argumentos = argumentos.select {|i| i[0..1].!=('--')}).length == 1
+        @full = \
+          if argumentos.include?('--full')
+            ::COCOT.salida.escribir("\"Full\" option detected.\n")
+            true
+          else
+            false
+          end
+        @modo = \
+          if argumentos.include?('--rspec-only')
+            ::COCOT.salida.escribir("\"RSpec only\" option detected.\n")
+            '--rspec-only'
+          elsif argumentos.include?('--cucumber-only')
+            ::COCOT.salida.escribir("\"Cucumber only\" option detected.\n")
+            '--cucumber-only'
+          elsif argumentos.include?('--minitest-only')
+            ::COCOT.salida.escribir("\"Minitest only\" option detected.\n")
+            '--minitest-only'
+          elsif argumentos.include?('--clean')
+            ::COCOT.salida.escribir("\"Clean\" option detected.\n")
+            '--clean'
+          else
+            ::COCOT.salida.escribir("Attempting to make a normal instalation(RSpec and Cucumber support).\n")
+            nil
+          end
+        @nombre_del_proyecto = _argumentos[0].strip
+      else
+        @error_presente_en_argumentos = :dos_o_mas_argumentos_como_nombre #: Symbol
+      end
     end
   end
 
+
   def hubo_algun_error?
     true if @error_presente_en_argumentos
   end