lib/nydp.rb in nydp-0.0.1 vs lib/nydp.rb in nydp-0.0.2
- old
+ new
@@ -1,6 +1,20 @@
module Nydp
+ LOADFILES = []
+
+ def self.rake_tasks
+ load relative_path 'tasks/tests.rake'
+ end
+
+ def self.relative_path name
+ File.join File.expand_path(File.dirname(__FILE__)), name
+ end
+
+ LOADFILES << relative_path('lisp/boot.nydp')
+ LOADFILES << relative_path('lisp/test-runner.nydp')
+ Dir.glob(relative_path 'lisp/tests/**/*.nydp').each { |f| LOADFILES << f }
+
def self.compile_and_eval vm, expr
vm.thread Pair.new(Compiler.compile(expr, Nydp.NIL), Nydp.NIL)
end
def self.setup ns
@@ -102,27 +116,19 @@
def self.repl
puts "welcome to nydp"
root_ns = { }
setup(root_ns)
vm = VM.new
- boot_path = File.join File.expand_path(File.dirname(__FILE__)), 'lisp/boot.nydp'
- StreamRunner.new(vm, root_ns, File.new(boot_path)).run
+ LOADFILES.each { |f| StreamRunner.new(vm, root_ns, File.new(f)).run }
Repl.new(vm, root_ns, $stdin).run
end
def self.tests
puts "welcome to nydp : running tests"
root_ns = { }
setup(root_ns)
vm = VM.new
- boot_path = File.join File.expand_path(File.dirname(__FILE__)), 'lisp/boot.nydp'
- test_runner_path = File.join File.expand_path(File.dirname(__FILE__)), 'lisp/test-runner.nydp'
- tests = Dir.glob(File.join File.expand_path(File.dirname(__FILE__)), 'lisp/tests/**/*.nydp')
- StreamRunner.new(vm, root_ns, File.new(boot_path)).run
- StreamRunner.new(vm, root_ns, File.new(test_runner_path)).run
- tests.each do |tst|
- StreamRunner.new(vm, root_ns, File.new(tst)).run
- end
+ LOADFILES.each { |f| StreamRunner.new(vm, root_ns, File.new(f)).run }
StreamRunner.new(vm, root_ns, "(run-all-tests)").run
end
end
require "nydp/error"