Como usar o compilador Ruby online
- Escreva ou cole código Ruby no editor. Restaurar exemplo traz de volta o programa inicial.
- Pressione Executar ou use Ctrl + Enter (⌘ + Enter no Mac).
- A saída de
puts,printepaparece no painel Saída. Exceções e mensagens escritas em$stderrsão destacadas como erros. - Escolha um limite de tempo de 5, 15 ou 60 segundos. Uma execução que demore mais é interrompida automaticamente, e Parar a encerra na hora.
A primeira execução baixa o runtime do Ruby e sua biblioteca padrão, cerca de 36 MB, então pode demorar um pouco em uma conexão lenta. Seu navegador guarda isso em cache, e as visitas seguintes começam bem mais rápido. Use Copiar ou main.rb para salvar seu programa.
O Ruby roda em um Web Worker no seu próprio navegador. Seu código nunca é enviado e não é armazenado em nossos servidores. O editor guarda seu último programa no armazenamento local do navegador e em nenhum outro lugar.
O que é compatível
O compilador usa o Ruby 3.3 por meio da build oficial ruby.wasm, o interpretador CRuby (MRI) compilado para WebAssembly.
- A linguagem Ruby 3.3 completa: classes, módulos, mixins, blocos, procs e lambdas, pattern matching com
case/in, métodos endless (def name = ...), argumentos nomeados e refinements. - Classes do núcleo, como
String,Array,Hash,Range,Enumerable,Enumerator,StructeComparable. - A biblioteca padrão:
require "json","set","date","time","securerandom","digest"e outras bibliotecas incluídas carregam normalmente.
Limitações:
- Sem instalação de gems. Só estão disponíveis as bibliotecas que acompanham o Ruby, e
gem installe o Bundler não funcionam. - Sem acesso à rede e sem entrada padrão. Coloque os dados de teste direto no script em vez de lê-los com
gets. - O interpretador é reaproveitado entre as execuções. Classes e constantes que você definiu antes continuam existindo na próxima execução. Pressione Parar para recomeçar com um interpretador limpo.
Referência rápida de Ruby
require "json"
Book = Struct.new(:title, :year)
books = [
Book.new("Eloquent Ruby", 2011),
Book.new("Practical Object-Oriented Design", 2012),
]
recent = books.select { |b| b.year >= 2012 }.map(&:title)
puts "Recent: #{recent.join(', ')}"
result = { status: "ok", count: books.size }
case result
in { status: "ok", count: Integer => n }
puts "Found #{n} books"
end
puts books.map(&:to_h).to_json
| Tarefa | Sintaxe |
|---|---|
| Imprimir com quebra de linha | puts "Hello" |
| Inspecionar um valor | p [1, :a, nil] |
| Interpolação de string | "Total: #{sum}" |
| Iterar com um bloco | items.each { |x| puts x } |
| Hash com chaves de símbolo | { name: "Ada", age: 36 } |
| Navegação segura | user&.email |
Dicas
- Use
pem vez deputsao depurar. Ele mostra a forma inspecionada, então você distinguenil,""e"nil". - Encadeie métodos de
Enumerable, comomap,select,group_by,tallyeeach_slice, para transformar dados sem laços manuais. - Se aparecer
warning: already initialized constant, o interpretador ainda lembra de uma execução anterior. Pressione Parar e depois Executar de novo. - Confira o JSON gerado com o Formatador e validador de JSON e teste expressões regulares com o Testador de regex. A sintaxe JavaScript dele cobre a maioria dos padrões comuns do Ruby.
Perguntas frequentes
É Ruby de verdade?
Sim. O ruby.wasm é a versão oficial do CRuby para WebAssembly, mantida como parte do projeto Ruby. A linguagem e as classes do núcleo se comportam como no seu computador.
Por que o primeiro carregamento é lento?
O interpretador e sua biblioteca padrão têm cerca de 36 MB. O download acontece uma vez e depois é servido do cache do seu navegador.
Posso usar gems como Rails ou Nokogiri?
Não. Só a biblioteca padrão está incluída, e gems não podem ser instaladas no navegador. Esta ferramenta é ideal para aprender Ruby, praticar algoritmos e testar trechos de código.
Que outras linguagens posso executar?
Experimente o Compilador Python online ou os compiladores de Lua, PHP, JavaScript, TypeScript e SQL, que também rodam no seu navegador.
Atualizado