Publicado em 14 de outubro de 2016  
Em ,  


Eu mencionei a existência de mais comandos do Ruby on Rails anteriormente, mas deixei para me aprofundar no assunto num post futuro. Sei que demorei um pouco para cumprir com o prometido, então vamos direto ao ponto.

Introdução

Como sempre, abra o diretório do projeto no Terminal (exemplo, cd /caminho/do/diretorio/example) e execute o comando rake -T (ou bin/rails --help na última versão – 5 – do RoR).

rake about                              # List versions of all Rails frameworks and the environment
rake assets:clean[keep]                 # Remove old compiled assets
rake assets:clobber                     # Remove compiled assets
rake assets:environment                 # Load asset compile environment
rake assets:precompile                  # Compile all the assets named in config.assets.precompile
rake cache_digests:dependencies         # Lookup first-level dependencies for TEMPLATE (like messages/show or comments/_comment.html)
rake cache_digests:nested_dependencies  # Lookup nested dependencies for TEMPLATE (like messages/show or comments/_comment.html)
rake db:create                          # Creates the database from DATABASE_URL or config/database.yml for the current RAILS_ENV ...
rake db:drop                            # Drops the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (u...
rake db:fixtures:load                   # Load fixtures into the current environment's database
rake db:migrate                         # Migrate the database (options: VERSION=x, VERBOSE=false, SCOPE=blog)
rake db:migrate:status                  # Display status of migrations
rake db:rollback                        # Rolls the schema back to the previous version (specify steps w/ STEP=n)
rake db:schema:cache:clear              # Clear a db/schema_cache.dump file
rake db:schema:cache:dump               # Create a db/schema_cache.dump file
rake db:schema:dump                     # Create a db/schema.rb file that is portable against any DB supported by AR
rake db:schema:load                     # Load a schema.rb file into the database
rake db:seed                            # Load the seed data from db/seeds.rb
rake db:setup                           # Create the database, load the schema, and initialize with the seed data (use db:reset to...
rake db:structure:dump                  # Dump the database structure to db/structure.sql
rake db:structure:load                  # Recreate the databases from the structure.sql file
rake db:version                         # Retrieves the current schema version number
rake doc:app                            # Generate docs for the app -- also available doc:rails, doc:guides (options: TEMPLATE=/rd...
rake log:clear                          # Truncates all *.log files in log/ to zero bytes (specify which logs with LOGS=test,devel...
rake middleware                         # Prints out your Rack middleware stack
rake notes                              # Enumerate all annotations (use notes:optimize, :fixme, :todo for focus)
rake notes:custom                       # Enumerate a custom annotation, specify with ANNOTATION=CUSTOM
rake rails:template                     # Applies the template supplied by LOCATION=(/path/to/template) or URL
rake rails:update                       # Update configs and some other initially generated files (or use just update:configs or u...
rake routes                             # Print out all defined routes in match order, with names
rake secret                             # Generate a cryptographically secure secret key (this is typically used to generate a sec...
rake stats                              # Report code statistics (KLOCs, etc) from the application or engine
rake test                               # Runs all tests in test folder
rake test:all                           # Run tests quickly by merging all types and not resetting db
rake test:all:db                        # Run tests quickly, but also reset db
rake test:db                            # Run tests quickly, but also reset db
rake time:zones:all                     # Displays all time zones, also available: time:zones:us, time:zones:local -- filter with ...
rake tmp:clear                          # Clear session, cache, and socket files from tmp/ (narrow w/ tmp:sessions:clear, tmp:cach...
rake tmp:create                         # Creates tmp directories for sessions, cache, sockets, and pids

Essa é a lista de todas as tarefas disponíveis no projeto.

Personalização

Obviamente o RoR nos dá a opção de criar tarefas específicas para o projeto, execute o comando rails g task temp.

      create lib/tasks/temp.rake

Abra o arquivo criado pelo gerador e coloque o código a seguir:

namespace :temp do
    desc "A temporary task"
    task write: :environment do
        puts "Hello World"
    end
end

Se você executar novamente o comando rake -T irá encontra-la na lista.

Conclusão

As tarefas são ideais para serem executadas em background, as possibilidades são infinitas.