Sha256: 91bf8218dd0a50185772e3318bed7a387fbe5846b5ad3164e4bd0078653e210c
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
#!/usr/bin/env ruby # -*- coding: utf-8 -*- require 'rubygems' require 'args_parser' $:.unshift File.expand_path '../lib', File.dirname(__FILE__) require 'babascript' args = ArgsParser.parse ARGV do arg :base, "Linda-Base URL", :default => BabaScript::DEFAULTS[:base] arg :space, "Linda-Space Name", :default => BabaScript::DEFAULTS[:space] arg :version, "show version", :alias => :v arg :help, "show help", :alias => :h validate :base, "invalid URL" do |v| v =~ /^https?:\/\/.+$/ end end binname = File.basename(__FILE__) if args.has_option? :help STDERR.puts "BabaScript VM v#{BabaScript::VERSION}" STDERR.puts args.help exit 1 end if args.has_option? :version STDERR.puts "BabaScript VM v#{BabaScript::VERSION} - ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]" exit 1 end STDERR.puts "(connecting to #{args[:base]}/#{args[:space]})" EM::run do linda = EM::RocketIO::Linda::Client.new args[:base] ts = linda.tuplespace[ args[:space] ] def take_task_and_run(ts) ts.take [:babascript, :eval] do |tuple, info| loop do print %Q{#{tuple[2]}(#{tuple[3].join(', ')}) >} line = STDIN.gets.strip next if line.empty? ts.write [:babascript, :return, tuple[4]["callback"], line] break end take_task_and_run(ts) end end linda.io.on :connect do STDERR.puts "(#{type} connect! You are now BABA.)" take_task_and_run(ts) end linda.io.on :disconnect do STDERR.puts "(#{type} closed)" end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
babascript-0.3.1 | bin/baba-vm |