Ruby on Rails #07: Entendendo as Tarefas
Publicado em 14 de outubro de 2016
Em Programação, Ruby on Rails

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.