Ruby: Updated for Ruby 1.9+
authorInge Jørgensen <inge@manualdesign.no>
Fri, 27 Feb 2015 23:36:27 +0000 (00:36 +0100)
committerInge Jørgensen <inge@manualdesign.no>
Fri, 27 Feb 2015 23:36:27 +0000 (00:36 +0100)
17 files changed:
README.md
ruby/core.rb
ruby/mal_readline.rb
ruby/printer.rb
ruby/reader.rb
ruby/step0_repl.rb
ruby/step1_read_print.rb
ruby/step2_eval.rb
ruby/step3_env.rb
ruby/step4_if_fn_do.rb
ruby/step5_tco.rb
ruby/step6_file.rb
ruby/step7_quote.rb
ruby/step8_macros.rb
ruby/step9_try.rb
ruby/stepA_interop.rb
ruby/types.rb

index 612743c..9dac314 100644 (file)
--- a/README.md
+++ b/README.md
@@ -286,7 +286,7 @@ cd racket
 ./stepX_YYY.rb
 ```
 
-### Ruby (1.8)
+### Ruby (1.9+)
 
 ```
 cd ruby
index d55100c..b82bddc 100644 (file)
@@ -1,6 +1,6 @@
 require "readline"
-require "reader"
-require "printer"
+require_relative "reader"
+require_relative "printer"
 
 $core_ns = {
     :"=" =>       lambda {|a,b| a == b},
index 63c5571..3799783 100644 (file)
@@ -4,7 +4,7 @@ $history_loaded = false
 $histfile = "#{ENV['HOME']}/.mal-history"
 
 def _readline(prompt)
-    if not $history_loaded
+    if !$history_loaded && File.exist?($histfile)
         $history_loaded = true
         File.readlines($histfile).each {|l| Readline::HISTORY.push(l.chomp)}
     end
index 37d338a..ef067a5 100644 (file)
@@ -1,4 +1,4 @@
-require "types"
+require_relative "types"
 
 def _pr_str(obj, print_readably=true)
     _r = print_readably
index 641e65c..badc6ec 100644 (file)
@@ -1,4 +1,4 @@
-require "types"
+require_relative "types"
 
 class Reader
     def initialize(tokens)
index 9c03cfa..2f9e6a9 100644 (file)
@@ -1,5 +1,4 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
+require_relative "mal_readline"
 
 # read
 def READ(str)
index ded992a..ef416c3 100644 (file)
@@ -1,8 +1,7 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
 
 # read
 def READ(str)
index 50a135d..d2b7e1a 100644 (file)
@@ -1,8 +1,7 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
 
 # read
 def READ(str)
index 17126c5..ec8405b 100644 (file)
@@ -1,9 +1,8 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
 
 # read
 def READ(str)
index a93463b..151ecf6 100644 (file)
@@ -1,10 +1,9 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
-require "core"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
+require_relative "core"
 
 # read
 def READ(str)
index 38bb204..80be457 100644 (file)
@@ -1,10 +1,9 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
-require "core"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
+require_relative "core"
 
 # read
 def READ(str)
index 0c99cee..4eeca86 100644 (file)
@@ -1,10 +1,9 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
-require "core"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
+require_relative "core"
 
 # read
 def READ(str)
index 48385f1..23d9499 100644 (file)
@@ -1,10 +1,9 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
-require "core"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
+require_relative "core"
 
 # read
 def READ(str)
index 58adaea..488db12 100644 (file)
@@ -1,10 +1,9 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
-require "core"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
+require_relative "core"
 
 # read
 def READ(str)
index 74d0f59..533853b 100644 (file)
@@ -1,10 +1,9 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
-require "core"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
+require_relative "core"
 
 # read
 def READ(str)
index 6123293..3fb4af0 100644 (file)
@@ -1,10 +1,9 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
-require "types"
-require "reader"
-require "printer"
-require "env"
-require "core"
+require_relative "mal_readline"
+require_relative "types"
+require_relative "reader"
+require_relative "printer"
+require_relative "env"
+require_relative "core"
 
 # read
 def READ(str)
index 72d24d1..d64664b 100644 (file)
@@ -1,4 +1,4 @@
-require "env"
+require_relative "env"
 
 class MalException < StandardError
   attr_reader :data