aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2015-02-28 11:30:45 -0600
committerJoel Martin <github@martintribe.org>2015-02-28 11:30:45 -0600
commitf2a758cb13a0f253ba03f881826f6255d654d131 (patch)
tree238df551e3b6ba6bceb0997de876f52312ba1712
parent757397e6ed998212971bd41528894c2898d67d5a (diff)
parent107d969497d482b07c33c4f28123727fa0a0b263 (diff)
downloadmal-f2a758cb13a0f253ba03f881826f6255d654d131.tar.gz
mal-f2a758cb13a0f253ba03f881826f6255d654d131.zip
Merge branch 'ruby1.9' of https://github.com/elektronaut/mal into elektronaut-ruby1.9
-rw-r--r--README.md2
-rw-r--r--ruby/core.rb4
-rw-r--r--ruby/mal_readline.rb2
-rw-r--r--ruby/printer.rb2
-rw-r--r--ruby/reader.rb2
-rw-r--r--ruby/step0_repl.rb3
-rw-r--r--ruby/step1_read_print.rb9
-rw-r--r--ruby/step2_eval.rb9
-rw-r--r--ruby/step3_env.rb11
-rw-r--r--ruby/step4_if_fn_do.rb13
-rw-r--r--ruby/step5_tco.rb13
-rw-r--r--ruby/step6_file.rb13
-rw-r--r--ruby/step7_quote.rb13
-rw-r--r--ruby/step8_macros.rb13
-rw-r--r--ruby/step9_try.rb13
-rw-r--r--ruby/stepA_mal.rb13
-rw-r--r--ruby/types.rb2
17 files changed, 63 insertions, 74 deletions
diff --git a/README.md b/README.md
index 2a5494d..1885174 100644
--- a/README.md
+++ b/README.md
@@ -286,7 +286,7 @@ cd racket
./stepX_YYY.rb
```
-### Ruby (1.8)
+### Ruby (1.9+)
```
cd ruby
diff --git a/ruby/core.rb b/ruby/core.rb
index d55100c..b82bddc 100644
--- a/ruby/core.rb
+++ b/ruby/core.rb
@@ -1,6 +1,6 @@
require "readline"
-require "reader"
-require "printer"
+require_relative "reader"
+require_relative "printer"
$core_ns = {
:"=" => lambda {|a,b| a == b},
diff --git a/ruby/mal_readline.rb b/ruby/mal_readline.rb
index 63c5571..3799783 100644
--- a/ruby/mal_readline.rb
+++ b/ruby/mal_readline.rb
@@ -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
diff --git a/ruby/printer.rb b/ruby/printer.rb
index 37d338a..ef067a5 100644
--- a/ruby/printer.rb
+++ b/ruby/printer.rb
@@ -1,4 +1,4 @@
-require "types"
+require_relative "types"
def _pr_str(obj, print_readably=true)
_r = print_readably
diff --git a/ruby/reader.rb b/ruby/reader.rb
index 641e65c..badc6ec 100644
--- a/ruby/reader.rb
+++ b/ruby/reader.rb
@@ -1,4 +1,4 @@
-require "types"
+require_relative "types"
class Reader
def initialize(tokens)
diff --git a/ruby/step0_repl.rb b/ruby/step0_repl.rb
index 9c03cfa..2f9e6a9 100644
--- a/ruby/step0_repl.rb
+++ b/ruby/step0_repl.rb
@@ -1,5 +1,4 @@
-$: << File.expand_path(File.dirname(__FILE__))
-require "mal_readline"
+require_relative "mal_readline"
# read
def READ(str)
diff --git a/ruby/step1_read_print.rb b/ruby/step1_read_print.rb
index ded992a..ef416c3 100644
--- a/ruby/step1_read_print.rb
+++ b/ruby/step1_read_print.rb
@@ -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)
diff --git a/ruby/step2_eval.rb b/ruby/step2_eval.rb
index 50a135d..d2b7e1a 100644
--- a/ruby/step2_eval.rb
+++ b/ruby/step2_eval.rb
@@ -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)
diff --git a/ruby/step3_env.rb b/ruby/step3_env.rb
index 17126c5..ec8405b 100644
--- a/ruby/step3_env.rb
+++ b/ruby/step3_env.rb
@@ -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)
diff --git a/ruby/step4_if_fn_do.rb b/ruby/step4_if_fn_do.rb
index a93463b..151ecf6 100644
--- a/ruby/step4_if_fn_do.rb
+++ b/ruby/step4_if_fn_do.rb
@@ -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)
diff --git a/ruby/step5_tco.rb b/ruby/step5_tco.rb
index 38bb204..80be457 100644
--- a/ruby/step5_tco.rb
+++ b/ruby/step5_tco.rb
@@ -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)
diff --git a/ruby/step6_file.rb b/ruby/step6_file.rb
index 0c99cee..4eeca86 100644
--- a/ruby/step6_file.rb
+++ b/ruby/step6_file.rb
@@ -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)
diff --git a/ruby/step7_quote.rb b/ruby/step7_quote.rb
index 48385f1..23d9499 100644
--- a/ruby/step7_quote.rb
+++ b/ruby/step7_quote.rb
@@ -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)
diff --git a/ruby/step8_macros.rb b/ruby/step8_macros.rb
index 58adaea..488db12 100644
--- a/ruby/step8_macros.rb
+++ b/ruby/step8_macros.rb
@@ -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)
diff --git a/ruby/step9_try.rb b/ruby/step9_try.rb
index 74d0f59..533853b 100644
--- a/ruby/step9_try.rb
+++ b/ruby/step9_try.rb
@@ -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)
diff --git a/ruby/stepA_mal.rb b/ruby/stepA_mal.rb
index 1eff1f1..115fc8a 100644
--- a/ruby/stepA_mal.rb
+++ b/ruby/stepA_mal.rb
@@ -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)
diff --git a/ruby/types.rb b/ruby/types.rb
index 72d24d1..d64664b 100644
--- a/ruby/types.rb
+++ b/ruby/types.rb
@@ -1,4 +1,4 @@
-require "env"
+require_relative "env"
class MalException < StandardError
attr_reader :data