Eu tive a vontade de passar meus programas que são interpretados em Ruby para programas executaveis, quem não sabe Ruby é uma linguagem interpretada e não precisa ser compilada para ser executada, assim como Perl ou Python, porém existe um arquivo que pode passar seus arquivos em Ruby para executaveis que é o RubyScript2Exe que pode ser encontrado em http://www.erikveen.dds.nl/rubyscript2exe/#6.0.0.
Porém ao tentar executa-lo dando
# ruby rubyscript2exe.rb testing.rb
me retornou o seguinte erro:
rubyscript2exe.rb:621:in `replace': can't modify frozen string (TypeError)
from rubyscript2exe.rb:621
from rubyscript2exe.rb:577:in `newlocation'
from rubyscript2exe.rb:505:in `newlocation'
from rubyscript2exe.rb:472:in `newlocation'
from rubyscript2exe.rb:505:in `newlocation'
from rubyscript2exe.rb:577:in `newlocation'
from rubyscript2exe.rb:619
Então procurei na internet e achei um blog que me ajudou veja o blog(ingles).
Nele diz como corrigir, e tal correção me ajudou e resolveu meu problema, veja o que deve ser feito:
Na linha 621 ou próximo, procure por
$0.replace(File.expand_path("./init.rb"))
Altere para
$_0 = File.expand_path("./init.rb")
alias $__0 $0
alias $0 $_0
Pronto salve o arquivo e tente novamente, comigo funcionou, só nao gostei do fato de um simples #print "Hello World" ter ficado com 699Kb, isso achei meio triste pacas, mas vou fazer alguns testes agora, próximo post vou falar mais sobre os erros encontrados.
Abraços