Skip to content

Ruby to EXE - Turn ruby scripts into portable executable apps

License

Notifications You must be signed in to change notification settings

thecodecrate/rb2exe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby to EXE

Turn ruby scripts into portable executable apps.

Installation

gem install rb2exe

Usage

rb2exe RUBY_SCRIPT [options]
    -q, --quiet                      Do not run verbosely
    -a, --add=FOLDER                 Add an entire folder (eg. "--add=.")
    -i  --ignore-folder=FOLDER       Do not add a folder (default=".git")
    -ao --add-output                 Do not ignore output file when adding files
    -o, --output=OUTPUT              Output executable filename
    -d  --daemon                     Runs the app as a background task
    -r, --rails                      Rails support
    -t, --target=[osx|l32|l64|win]   Target platform (binary)
    -h, --help                       Help

Example

echo "puts 'Hello world'" > test.rb

rb2exe test.rb
./test
# Hello world

Example II - Multi source project

mkdir test
cd test
echo "STR = 'Hello world'" > a.rb
echo "load 'a.rb'" > main.rb
echo "puts STR" >> main.rb

rb2exe main.rb --add=.
./main
# Hello world

Example III - Gemfile support

mkdir test
cd test
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'faker'" >> Gemfile
echo "require 'faker'" > a.rb
echo 'puts "Hello #{Faker::Name.name}"' >> a.rb

rb2exe a.rb --add=.
./a
# Hello Abbigail Okuneva

Example IV - Rails support

rails new myproject
cd myproject

rb2exe --rails
./output
# => Booting Puma
# => Rails 5.0.0.1 application starting in production on http://0.0.0.0:3000
# => Run `rails server -h` for more startup options
# Puma starting in single mode...
# * Version 3.6.0 (ruby 2.2.2-p95), codename: Sleepy Sunday Serenity
# * Min threads: 5, max threads: 5
# * Environment: production
# * Listening on tcp://0.0.0.0:3000
# Use Ctrl-C to stop

Example V - OSX binary

rb2exe test.rb --target=osx

Security

rb2exe DOESN'T protects your source code.

In fact, the produced executable file contains all the source files and THEY CAN BE EASILY EXTRACTED.

You can see the list of the added source files when you run rb2exe.

rb2exe just packages your source files (plus a stand-alone ruby) in an auto-extract zip file. It doesn't protects your code in any way.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/loureirorg/rb2exe.

Changelog

  • 0.3.1: Fixes an "incorrect version" bug
  • 0.3.0: Includes a copy of the libruby.so.2.2 file;
  • 0.2.5: Ignore output file when adding files. Add "--add-output" option;
  • 0.2.4: Ignore '.git' folder by default. Add "--ignore-folder" option;
  • 0.2.3: add "--daemon" option;
  • 0.2.1: add missing "bundle" requirement;
  • 0.2.0: adding support to handle ARGV being passed to the ruby script (thanks @dabooze);

TODO

  • Windows executable output;
  • Allow ruby versions other than 2.2.2;
  • Testing suite;

You can also take a look on my article, where I explain how this gem works, step-by-step: http://www.learnwithdaniel.com/2016/08/ruby-to-portable-exe-app/

About

Ruby to EXE - Turn ruby scripts into portable executable apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages