Class: Yanapiri::CLI
- Inherits:
-
Thor
- Object
- Thor
- Yanapiri::CLI
- Includes:
- ActionView::Helpers::DateHelper, Thor::Actions
- Defined in:
- lib/yanapiri/cli.rb
Class Method Summary collapse
Instance Method Summary collapse
- #actualizar(nombre) ⇒ Object
- #clonar(nombre) ⇒ Object
- #corregir(nombre) ⇒ Object
- #init ⇒ Object
-
#initialize(args = [], local_options = {}, config = {}) ⇒ CLI
constructor
A new instance of CLI.
- #preparar(nombre) ⇒ Object
- #setup ⇒ Object
- #ultimo_commit(nombre) ⇒ Object
- #version ⇒ Object
- #whoami ⇒ Object
Constructor Details
#initialize(args = [], local_options = {}, config = {}) ⇒ CLI
Returns a new instance of CLI.
9 10 11 12 |
# File 'lib/yanapiri/cli.rb', line 9 def initialize(args = [], = {}, config = {}) super(args, , config) @bot = crear_bot end |
Class Method Details
.exit_on_failure? ⇒ Boolean
14 15 16 |
# File 'lib/yanapiri/cli.rb', line 14 def self.exit_on_failure? true end |
Instance Method Details
#actualizar(nombre) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/yanapiri/cli.rb', line 63 def actualizar(nombre) path_repo_base = "#{nombre}-base" `git clone [email protected]:#{options.repo_base}.git #{path_repo_base}` foreach_repo(nombre) do `git remote rm base` `git remote add base ../../#{path_repo_base}` `git pull base master` `git push origin master` end `rm -rf #{path_repo_base}` end |
#clonar(nombre) ⇒ Object
57 58 59 |
# File 'lib/yanapiri/cli.rb', line 57 def clonar(nombre) @bot.clonar_entrega!(nombre) end |
#corregir(nombre) ⇒ Object
88 89 90 91 92 93 |
# File 'lib/yanapiri/cli.rb', line 88 def corregir(nombre) info "Comenzando corrección de #{nombre}. #{opciones_correccion}" foreach_entrega(nombre) do |entrega| @bot.preparar_correccion! entrega, .renombrar_proyecto_wollok ? [TransformacionWollok] : [] end end |
#init ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/yanapiri/cli.rb', line 43 def init config = OpenStruct.new config.orga = ask 'Nombre de la organización:', default: File.basename(Dir.pwd) leer_opciones_comunes! config success "De ahora en más, trabajaré con la organización #{config.orga} siempre que estés dentro de esta carpeta. #{opciones_correccion config}" dump_local_config! config end |
#preparar(nombre) ⇒ Object
79 80 81 |
# File 'lib/yanapiri/cli.rb', line 79 def preparar(nombre) @bot.preparar_entrega! nombre, .repo_base end |
#setup ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/yanapiri/cli.rb', line 25 def setup say '¡Kamisaraki! Yo soy Yanapiri, tu ayudante, y necesito algunos datos antes de empezar:', :bold config = OpenStruct.new config.github_token = ask 'Token de GitHub (lo necesito para armar los pull requests):', default: .github_token config.orga = ask 'Organización por defecto:', default: .orga leer_opciones_comunes! config begin bot = crear_bot config success "Los pull requests serán creados por @#{bot.github_user.login}, asegurate de que tenga los permisos necesarios en las organizaciones que uses." dump_global_config! config rescue Octokit:: raise 'El access token de GitHub no es correcto, revisalo por favor.' end end |
#ultimo_commit(nombre) ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/yanapiri/cli.rb', line 99 def ultimo_commit(nombre) print_table entregas(nombre) .select {|e| not .solo_excedidos or e.fuera_de_termino?} .sort_by(&:fecha) .reverse! .map(&method(:fila_ultimo_commit)) end |
#version ⇒ Object
20 21 22 |
# File 'lib/yanapiri/cli.rb', line 20 def version say "yanapiri version #{VERSION}" end |
#whoami ⇒ Object
52 53 54 |
# File 'lib/yanapiri/cli.rb', line 52 def whoami say "Estoy trabajando en la organización #{@bot.organization}, commiteando con el usuario #{@bot.git_author}." end |