Module: Multirb
- Defined in:
- lib/multirb.rb,
lib/multirb/version.rb
Constant Summary collapse
- ALL_VERSIONS =
%w{1.8.7 1.9.2 1.9.3 2.0.0 jruby}
- DEFAULT_VERSIONS =
%w{1.8.7 1.9.3 2.0.0}
- RBENV_INSTALLED_VERSIONS =
`rbenv versions`.split("\n").map { |version| version.delete('*').strip.split.first }
- VERSION =
"0.0.5"
Instance Method Summary collapse
- #create_and_save_code(lines) ⇒ Object
- #create_code(lines) ⇒ Object
- #determine_versions(lines, defaults = DEFAULT_VERSIONS) ⇒ Object
- #read_lines ⇒ Object
- #run_code(*args) ⇒ Object
Instance Method Details
#create_and_save_code(lines) ⇒ Object
58 59 60 61 62 63 |
# File 'lib/multirb.rb', line 58 def create_and_save_code(lines) f = Tempfile.new('multirb') f.puts create_code(lines) f.close f end |
#create_code(lines) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/multirb.rb', line 39 def create_code(lines) %{# encoding: utf-8 ARRAY = ['a', 'b', 'c'] HASH = { :name => "Jenny", :age => 40, :gender => :female, :hobbies => %w{chess cycling baking} } ARRAY2 = [1,2,3] STRING = "Hello" STRING2 = "çé" STRING3 = "ウabcé" o = begin "\e[32m" + eval(<<-'CODEHERE' #{lines.join("\n")} CODEHERE ).inspect + "\e[0m" rescue Exception => e "\e[31m!! \#{e.class}: \#{e.message}\e[0m" end print o} end |
#determine_versions(lines, defaults = DEFAULT_VERSIONS) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/multirb.rb', line 27 def determine_versions(lines, defaults = DEFAULT_VERSIONS) defaults = DEFAULT_VERSIONS if defaults.empty? case lines.last when /\#\s?all$/ ALL_VERSIONS when /\#\s?([^"']+)$/ [*$1.strip.split(',').map(&:strip)] else defaults end end |
#read_lines ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/multirb.rb', line 13 def read_lines lines = [] begin print "\e[0m" line = Readline::readline("> ") return nil if line.nil? Readline::HISTORY << line line.chomp! lines << line exit if line =~ /^exit$/i end while line =~ /\s+$/ lines end |
#run_code(*args) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/multirb.rb', line 65 def run_code(*args) case installed_ruby_version_manager when :rvm run_rvm(*args) when :rbenv run_rbenv(*args) when :none raise "You don't have either RVM or RBENV installed" end end |