diff --git a/.gitignore b/.gitignore index 9c6aa7e..b029c26 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ .tags TAGS target/ -*lt_client.log +*lt_client.log \ No newline at end of file diff --git a/rb-src/handle_specs.rb b/rb-src/handle_specs.rb index 3d03fee..6ee2be8 100644 --- a/rb-src/handle_specs.rb +++ b/rb-src/handle_specs.rb @@ -98,4 +98,17 @@ def send_response! client.send_response result.eval_id, message_name, result_hash end end + + class SpecPlugin + def handle?(cmd,args) + res = (cmd == "editor.eval.ruby") && (args['name'] =~ /_spec\.rb$/) + !!res + end + def handle(id,cmd,args,client) + run = HandleSpecs::Run.new(:client => client, :eval_id => id, :args => args) + run.result.send_responses! + end + + LtRuby::Plugin.register self + end end diff --git a/rb-src/lt_client.rb b/rb-src/lt_client.rb index 7a9beb3..da84d52 100644 --- a/rb-src/lt_client.rb +++ b/rb-src/lt_client.rb @@ -22,7 +22,9 @@ def add(*args, &block) logger = LOGGER_CLASS.new(LOGFILE) +load File.dirname(__FILE__) + "/plugin.rb" load File.dirname(__FILE__) + "/handle_specs.rb" +load File.dirname(__FILE__) + "/project_file.rb" logger.debug "Client started with command:" logger.debug($0) @@ -31,6 +33,7 @@ def add(*args, &block) class LtClient < EM::Connection include MethodSource::CodeHelpers + include LtRuby::PluginMod attr_accessor :currentId, :eval_queue @@ -59,14 +62,25 @@ def connection_completed $stderr = LtPrinter.new(self) self.eval_queue = "" - load_project_file!(FileUtils.pwd) + LtRuby::Plugin.setup_user_plugins!(ARGV[2]) + + invoke_plugin(:connection_completed) + end + + def dispatch(id,cmd,args) + return if dispatch_to_plugin(id,cmd,args) + dispatch_built_in(id,cmd,args) end - def load_project_file!(dir) - file = "#{dir}/.lighttable" - load(file) if FileTest.exist?(file) - rescue => exp - logger.error "Error loading project file #{file}: #{exp.message}" + def dispatch_built_in(id,cmd,args) + case cmd + when "editor.eval.ruby" + eval_ruby(id, args) + when "client.close" + logger.debug("Disconnecting") + close_connection + exit(0) + end end def receive_data(data) @@ -84,18 +98,7 @@ def receive_data(data) # Dispatch on cmd if id && cmd - case cmd - when "editor.eval.ruby" - if args['name'] =~ /_spec\.rb$/ - eval_spec(id,args) - else - eval_ruby(id, args) - end - when "client.close" - logger.debug("Disconnecting") - close_connection - exit(0) - end + dispatch(id,cmd,args) else logger.debug "Ignoring invalid input" end @@ -143,11 +146,6 @@ def run_shell(cmd) `#{cmd} 2>&1` end - def eval_spec(id,args) - run = HandleSpecs::Run.new(:client => self, :eval_id => id, :args => args) - run.result.send_responses! - end - def response_meta(request_meta) result = request_meta || {} result["start"] ||= 1 diff --git a/rb-src/lt_client_runner.sh b/rb-src/lt_client_runner.sh index bb20825..894f9ac 100755 --- a/rb-src/lt_client_runner.sh +++ b/rb-src/lt_client_runner.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Usage -# lt_client_runner.sh +# lt_client_runner.sh if [ -n "$LT_USE_RVM" ] @@ -16,4 +16,4 @@ fi cd $1 -echo $2 $3 $4 | xargs ruby +echo $2 $3 $4 $5 | xargs ruby diff --git a/rb-src/plugin.rb b/rb-src/plugin.rb new file mode 100644 index 0000000..87eda99 --- /dev/null +++ b/rb-src/plugin.rb @@ -0,0 +1,54 @@ +module LtRuby + class Plugins + def plugins + @plugins ||= [] + end + include Enumerable + def each(&b) + plugins.each(&b) + end + def register(plugin) + self.plugins << plugin.new + end + + def invoke(method,*args) + plugins.each do |plugin| + plugin.send(method,*args) if plugin.respond_to?(method) + end + end + end + + class Plugin + class << self + def plugins + @plugins ||= Plugins.new + end + + def method_missing(sym,*args,&b) + plugins.send(sym,*args,&b) + end + + def setup_user_plugins!(plugin_str) + plugin_str.split(",").each do |x| + logger.debug "loading plugin #{x}" + require x + end + end + end + end + + module PluginMod + def invoke_plugin(method) + LtRuby::Plugin.invoke(method,:client => self) + end + def dispatch_to_plugin(id,cmd,args) + plugin = LtRuby::Plugin.plugins.find { |x| x.respond_to?("handle?") && x.handle?(cmd,args) } + if plugin + plugin.handle(id,cmd,args,self) + true + else + false + end + end + end +end diff --git a/rb-src/project_file.rb b/rb-src/project_file.rb new file mode 100644 index 0000000..138c081 --- /dev/null +++ b/rb-src/project_file.rb @@ -0,0 +1,16 @@ +module ProjectFile + class ProjectFilePlugin + def connection_completed(*args) + load_project_file! FileUtils.pwd + end + + def load_project_file!(dir) + file = "#{dir}/.lighttable" + load(file) if FileTest.exist?(file) + rescue => exp + #logger.error "Error loading project file #{file}: #{exp.message}" + end + + LtRuby::Plugin.register self + end +end diff --git a/rb-src/spec/client_spec.rb b/rb-src/spec/client_spec.rb index 30e231b..f86d120 100644 --- a/rb-src/spec/client_spec.rb +++ b/rb-src/spec/client_spec.rb @@ -28,9 +28,14 @@ def eval_code(code, ops={}) client.eval_ruby ops[:id], 'code' => code end + let(:spec_plugin) do + LtRuby::Plugin.plugins.find { |x| x.class == HandleSpecs::SpecPlugin } + end + def eval_spec(code, ops={}) ops[:id] ||= 1 - client.eval_spec ops[:id], 'code' => code, 'name' => ops[:file], 'path' => (ops[:path]||ops[:file]) + args = {'code' => code, 'name' => ops[:file], 'path' => (ops[:path]||ops[:file])} + spec_plugin.handle ops[:id], nil, args, client end end @@ -101,7 +106,7 @@ def make_data(ops) it 'receive spec file' do data = make_data :code => "a = 42", :file => "main_spec.rb" client.should_not_receive(:eval_ruby) - client.should_receive(:eval_spec) + spec_plugin.should_receive(:handle) client.receive_data(data) end end diff --git a/ruby instarepl_compiled.js b/ruby instarepl_compiled.js index 3a25057..c92e276 100644 --- a/ruby instarepl_compiled.js +++ b/ruby instarepl_compiled.js @@ -87,20 +87,20 @@ lt.objs.langs.ruby.escape_spaces = (function escape_spaces(s){if(cljs.core._EQ_. }); lt.objs.langs.ruby.bash_escape_spaces = (function bash_escape_spaces(s){return clojure.string.replace.call(null,s," ","\\ "); }); -lt.objs.langs.ruby.run_rb = (function run_rb(p__8189){var map__8191 = p__8189;var map__8191__$1 = ((cljs.core.seq_QMARK_.call(null,map__8191))?cljs.core.apply.call(null,cljs.core.hash_map,map__8191):map__8191);var info = map__8191__$1;var client = cljs.core.get.call(null,map__8191__$1,new cljs.core.Keyword(null,"client","client",3951159101));var name = cljs.core.get.call(null,map__8191__$1,new cljs.core.Keyword(null,"name","name",1017277949));var project_path = cljs.core.get.call(null,map__8191__$1,new cljs.core.Keyword(null,"project-path","project-path",1907176907));var path = cljs.core.get.call(null,map__8191__$1,new cljs.core.Keyword(null,"path","path",1017337751));var n = lt.objs.notifos.working.call(null,"Connecting..");var obj = lt.object.create.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","connecting-notifier","lt.objs.langs.ruby/connecting-notifier",1639010209),client);var use_runner = (function (){var or__6743__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","use-rvm?","lt.objs.langs.ruby/use-rvm?",3656895808).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby));if(cljs.core.truth_(or__6743__auto__)) -{return or__6743__auto__; +lt.objs.langs.ruby.run_rb = (function run_rb(p__8973){var map__8975 = p__8973;var map__8975__$1 = ((cljs.core.seq_QMARK_.call(null,map__8975))?cljs.core.apply.call(null,cljs.core.hash_map,map__8975):map__8975);var info = map__8975__$1;var client = cljs.core.get.call(null,map__8975__$1,new cljs.core.Keyword(null,"client","client",3951159101));var name = cljs.core.get.call(null,map__8975__$1,new cljs.core.Keyword(null,"name","name",1017277949));var project_path = cljs.core.get.call(null,map__8975__$1,new cljs.core.Keyword(null,"project-path","project-path",1907176907));var path = cljs.core.get.call(null,map__8975__$1,new cljs.core.Keyword(null,"path","path",1017337751));var n = lt.objs.notifos.working.call(null,"Connecting..");var obj = lt.object.create.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","connecting-notifier","lt.objs.langs.ruby/connecting-notifier",1639010209),client);var use_runner = (function (){var or__6755__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","use-rvm?","lt.objs.langs.ruby/use-rvm?",3656895808).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby));if(cljs.core.truth_(or__6755__auto__)) +{return or__6755__auto__; } else {return new cljs.core.Keyword("lt.objs.langs.ruby","use-rbenv?","lt.objs.langs.ruby/use-rbenv?",615998644).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby)); } -})();var keys__GT_env = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("lt.objs.langs.ruby","use-rbenv?","lt.objs.langs.ruby/use-rbenv?",615998644),new cljs.core.Keyword(null,"LT_USE_RBENV","LT_USE_RBENV",3640591680),new cljs.core.Keyword("lt.objs.langs.ruby","use-rvm?","lt.objs.langs.ruby/use-rvm?",3656895808),new cljs.core.Keyword(null,"LT_USE_RVM","LT_USE_RVM",4685907820),new cljs.core.Keyword("lt.objs.langs.ruby","enable-client-logging?","lt.objs.langs.ruby/enable-client-logging?",1197315652),new cljs.core.Keyword(null,"LT_ENABLE_CLIENT_LOGGING","LT_ENABLE_CLIENT_LOGGING",1714721026)], null);var env = cljs.core.zipmap.call(null,cljs.core.map.call(null,keys__GT_env,cljs.core.keys.call(null,cljs.core.select_keys.call(null,cljs.core.deref.call(null,lt.objs.langs.ruby.ruby),cljs.core.keys.call(null,keys__GT_env)))),cljs.core.cycle.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [true], null)));var command = (cljs.core.truth_(use_runner)?"bash":(function (){var or__6743__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","ruby-exe","lt.objs.langs.ruby/ruby-exe",1735754269).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby));if(cljs.core.truth_(or__6743__auto__)) -{return or__6743__auto__; +})();var keys__GT_env = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("lt.objs.langs.ruby","use-rbenv?","lt.objs.langs.ruby/use-rbenv?",615998644),new cljs.core.Keyword(null,"LT_USE_RBENV","LT_USE_RBENV",3640591680),new cljs.core.Keyword("lt.objs.langs.ruby","use-rvm?","lt.objs.langs.ruby/use-rvm?",3656895808),new cljs.core.Keyword(null,"LT_USE_RVM","LT_USE_RVM",4685907820),new cljs.core.Keyword("lt.objs.langs.ruby","enable-client-logging?","lt.objs.langs.ruby/enable-client-logging?",1197315652),new cljs.core.Keyword(null,"LT_ENABLE_CLIENT_LOGGING","LT_ENABLE_CLIENT_LOGGING",1714721026)], null);var env = cljs.core.zipmap.call(null,cljs.core.map.call(null,keys__GT_env,cljs.core.keys.call(null,cljs.core.select_keys.call(null,cljs.core.deref.call(null,lt.objs.langs.ruby.ruby),cljs.core.keys.call(null,keys__GT_env)))),cljs.core.cycle.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [true], null)));var command = (cljs.core.truth_(use_runner)?"bash":(function (){var or__6755__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","ruby-exe","lt.objs.langs.ruby/ruby-exe",1735754269).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby));if(cljs.core.truth_(or__6755__auto__)) +{return or__6755__auto__; } else {return "ruby"; } -})());var args = (cljs.core.truth_(use_runner)?new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.objs.langs.ruby.runner_path,project_path,lt.objs.langs.ruby.bash_escape_spaces.call(null,lt.objs.langs.ruby.rb_path),lt.objs.clients.tcp.port,lt.objs.clients.__GT_id.call(null,client)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.objs.langs.ruby.escape_spaces.call(null,lt.objs.langs.ruby.rb_path),lt.objs.clients.tcp.port,lt.objs.clients.__GT_id.call(null,client)], null));return lt.objs.proc.exec.call(null,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"command","command",1964298941),command,new cljs.core.Keyword(null,"args","args",1016906831),args,new cljs.core.Keyword(null,"cwd","cwd",1014003170),project_path,new cljs.core.Keyword(null,"env","env",1014004831),env,new cljs.core.Keyword(null,"obj","obj",1014014057),obj], null)); +})());var plugin_arg = clojure.string.join.call(null,",",cljs.core.keys.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","plugins","lt.objs.langs.ruby/plugins",3510837788).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby))));var args = (cljs.core.truth_(use_runner)?new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.objs.langs.ruby.runner_path,project_path,lt.objs.langs.ruby.bash_escape_spaces.call(null,lt.objs.langs.ruby.rb_path),lt.objs.clients.tcp.port,lt.objs.clients.__GT_id.call(null,client),plugin_arg], null):new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [lt.objs.langs.ruby.escape_spaces.call(null,lt.objs.langs.ruby.rb_path),lt.objs.clients.tcp.port,lt.objs.clients.__GT_id.call(null,client),plugin_arg], null));return lt.objs.proc.exec.call(null,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"command","command",1964298941),command,new cljs.core.Keyword(null,"args","args",1016906831),args,new cljs.core.Keyword(null,"cwd","cwd",1014003170),project_path,new cljs.core.Keyword(null,"env","env",1014004831),env,new cljs.core.Keyword(null,"obj","obj",1014014057),obj], null)); }); -lt.objs.langs.ruby.check_ruby = (function check_ruby(obj){return cljs.core.assoc.call(null,obj,new cljs.core.Keyword(null,"ruby","ruby",1017416012),(function (){var or__6743__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","ruby-exe","lt.objs.langs.ruby/ruby-exe",1735754269).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby));if(cljs.core.truth_(or__6743__auto__)) -{return or__6743__auto__; +lt.objs.langs.ruby.check_ruby = (function check_ruby(obj){return cljs.core.assoc.call(null,obj,new cljs.core.Keyword(null,"ruby","ruby",1017416012),(function (){var or__6755__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","ruby-exe","lt.objs.langs.ruby/ruby-exe",1735754269).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby));if(cljs.core.truth_(or__6755__auto__)) +{return or__6755__auto__; } else {return lt.objs.langs.ruby.shell.which("ruby"); } @@ -109,11 +109,11 @@ lt.objs.langs.ruby.check_ruby = (function check_ruby(obj){return cljs.core.assoc lt.objs.langs.ruby.check_client = (function check_client(obj){return cljs.core.assoc.call(null,obj,new cljs.core.Keyword(null,"ruby-client","ruby-client",4412625552),lt.objs.files.exists_QMARK_.call(null,lt.objs.langs.ruby.rb_path)); }); lt.objs.langs.ruby.find_project = (function find_project(obj){var p = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(obj);var roots = lt.objs.files.get_roots.call(null);var cur = p;var prev = "";while(true){ -if(cljs.core.truth_((function (){var or__6743__auto__ = cljs.core.empty_QMARK_.call(null,cur);if(or__6743__auto__) -{return or__6743__auto__; +if(cljs.core.truth_((function (){var or__6755__auto__ = cljs.core.empty_QMARK_.call(null,cur);if(or__6755__auto__) +{return or__6755__auto__; } else -{var or__6743__auto____$1 = roots.call(null,cur);if(cljs.core.truth_(or__6743__auto____$1)) -{return or__6743__auto____$1; +{var or__6755__auto____$1 = roots.call(null,cur);if(cljs.core.truth_(or__6755__auto____$1)) +{return or__6755__auto____$1; } else {return cljs.core._EQ_.call(null,cur,prev); } @@ -121,19 +121,19 @@ if(cljs.core.truth_((function (){var or__6743__auto__ = cljs.core.empty_QMARK_.c })())) {return cljs.core.assoc.call(null,obj,new cljs.core.Keyword(null,"project-path","project-path",1907176907),(cljs.core.truth_(lt.objs.files.dir_QMARK_.call(null,p))?p:lt.objs.files.parent.call(null,p))); } else -{if(cljs.core.truth_((function (){var and__6731__auto__ = lt.objs.files.dir_QMARK_.call(null,cur);if(cljs.core.truth_(and__6731__auto__)) +{if(cljs.core.truth_((function (){var and__6743__auto__ = lt.objs.files.dir_QMARK_.call(null,cur);if(cljs.core.truth_(and__6743__auto__)) {return lt.objs.files.exists_QMARK_.call(null,lt.objs.files.join.call(null,cur,"Gemfile")); } else -{return and__6731__auto__; +{return and__6743__auto__; } })())) {return cljs.core.assoc.call(null,obj,new cljs.core.Keyword(null,"project-path","project-path",1907176907),cur); } else {{ -var G__8246 = lt.objs.files.parent.call(null,cur); -var G__8247 = cur; -cur = G__8246; -prev = G__8247; +var G__9020 = lt.objs.files.parent.call(null,cur); +var G__9021 = cur; +cur = G__9020; +prev = G__9021; continue; } } @@ -141,7 +141,7 @@ continue; break; } }); -lt.objs.langs.ruby.notify = (function notify(obj){var map__8193 = obj;var map__8193__$1 = ((cljs.core.seq_QMARK_.call(null,map__8193))?cljs.core.apply.call(null,cljs.core.hash_map,map__8193):map__8193);var client = cljs.core.get.call(null,map__8193__$1,new cljs.core.Keyword(null,"client","client",3951159101));var ruby_client = cljs.core.get.call(null,map__8193__$1,new cljs.core.Keyword(null,"ruby-client","ruby-client",4412625552));var path = cljs.core.get.call(null,map__8193__$1,new cljs.core.Keyword(null,"path","path",1017337751));var project_path = cljs.core.get.call(null,map__8193__$1,new cljs.core.Keyword(null,"project-path","project-path",1907176907));var ruby = cljs.core.get.call(null,map__8193__$1,new cljs.core.Keyword(null,"ruby","ruby",1017416012));if((cljs.core.not.call(null,ruby)) || (cljs.core.empty_QMARK_.call(null,ruby))) +lt.objs.langs.ruby.notify = (function notify(obj){var map__8977 = obj;var map__8977__$1 = ((cljs.core.seq_QMARK_.call(null,map__8977))?cljs.core.apply.call(null,cljs.core.hash_map,map__8977):map__8977);var client = cljs.core.get.call(null,map__8977__$1,new cljs.core.Keyword(null,"client","client",3951159101));var ruby_client = cljs.core.get.call(null,map__8977__$1,new cljs.core.Keyword(null,"ruby-client","ruby-client",4412625552));var path = cljs.core.get.call(null,map__8977__$1,new cljs.core.Keyword(null,"path","path",1017337751));var project_path = cljs.core.get.call(null,map__8977__$1,new cljs.core.Keyword(null,"project-path","project-path",1907176907));var ruby = cljs.core.get.call(null,map__8977__$1,new cljs.core.Keyword(null,"ruby","ruby",1017416012));if((cljs.core.not.call(null,ruby)) || (cljs.core.empty_QMARK_.call(null,ruby))) {lt.objs.clients.rem_BANG_.call(null,client); lt.objs.notifos.done_working.call(null); lt.objs.popup.popup_BANG_.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"header","header",4087600639),"We couldn't find Ruby.",new cljs.core.Keyword(null,"body","body",1016933652),"In order to evaluate in Ruby files, a Ruby interpreter has to be installed and on your system PATH.",new cljs.core.Keyword(null,"buttons","buttons",1255256819),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"label","label",1116631654),"Download Ruby",new cljs.core.Keyword(null,"action","action",3885920680),(function (){return lt.objs.platform.open.call(null,"https://www.ruby-lang.org/en/downloads/"); @@ -165,7 +165,7 @@ return obj; }); lt.objs.langs.ruby.check_all = (function check_all(obj){return lt.objs.langs.ruby.notify.call(null,lt.objs.langs.ruby.find_project.call(null,lt.objs.langs.ruby.check_client.call(null,lt.objs.langs.ruby.check_ruby.call(null,obj)))); }); -lt.objs.langs.ruby.try_connect = (function try_connect(p__8194){var map__8196 = p__8194;var map__8196__$1 = ((cljs.core.seq_QMARK_.call(null,map__8196))?cljs.core.apply.call(null,cljs.core.hash_map,map__8196):map__8196);var info = cljs.core.get.call(null,map__8196__$1,new cljs.core.Keyword(null,"info","info",1017141280));var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info);var client = lt.objs.clients.client_BANG_.call(null,new cljs.core.Keyword(null,"ruby.client","ruby.client",1005161937));lt.objs.langs.ruby.check_all.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"path","path",1017337751),path,new cljs.core.Keyword(null,"client","client",3951159101),client], null)); +lt.objs.langs.ruby.try_connect = (function try_connect(p__8978){var map__8980 = p__8978;var map__8980__$1 = ((cljs.core.seq_QMARK_.call(null,map__8980))?cljs.core.apply.call(null,cljs.core.hash_map,map__8980):map__8980);var info = cljs.core.get.call(null,map__8980__$1,new cljs.core.Keyword(null,"info","info",1017141280));var path = new cljs.core.Keyword(null,"path","path",1017337751).cljs$core$IFn$_invoke$arity$1(info);var client = lt.objs.clients.client_BANG_.call(null,new cljs.core.Keyword(null,"ruby.client","ruby.client",1005161937));lt.objs.langs.ruby.check_all.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"path","path",1017337751),path,new cljs.core.Keyword(null,"client","client",3951159101),client], null)); return client; }); lt.objs.langs.ruby.ruby_watch = (function ruby_watch(meta,src){var meta_str = [cljs.core.str("%q("),cljs.core.str(JSON.stringify(cljs.core.clj__GT_js.call(null,meta))),cljs.core.str(")")].join('');return [cljs.core.str("LtWatch.watch("),cljs.core.str(src),cljs.core.str(", JSON.parse("),cljs.core.str(meta_str),cljs.core.str("))")].join(''); @@ -179,20 +179,20 @@ lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","o lt.objs.langs.ruby.__BEH__on_eval__DOT__one = (function __BEH__on_eval__DOT__one(editor){var pos = lt.objs.editor.__GT_cursor.call(null,editor);var code = (cljs.core.truth_(lt.objs.editor.selection_QMARK_.call(null,editor))?lt.plugins.watches.watched_range.call(null,editor,null,null,lt.objs.langs.ruby.ruby_watch):lt.objs.editor.line.call(null,editor,new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos)));var info = new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,editor));var info__$1 = (cljs.core.truth_(lt.objs.editor.selection_QMARK_.call(null,editor))?cljs.core.assoc.call(null,info,new cljs.core.Keyword(null,"code","code",1016963423),lt.objs.editor.selection.call(null,editor),new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(lt.objs.editor.__GT_cursor.call(null,editor,"start")),new cljs.core.Keyword(null,"end","end",1014004813),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(lt.objs.editor.__GT_cursor.call(null,editor,"end"))], null)):cljs.core.assoc.call(null,info,new cljs.core.Keyword(null,"pos","pos",1014015430),pos,new cljs.core.Keyword(null,"code","code",1016963423),code,new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos),new cljs.core.Keyword(null,"end","end",1014004813),new cljs.core.Keyword(null,"line","line",1017226086).cljs$core$IFn$_invoke$arity$1(pos)], null)));return lt.object.raise.call(null,lt.objs.langs.ruby.ruby,new cljs.core.Keyword(null,"eval!","eval!",1110791799),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"origin","origin",4300251800),editor,new cljs.core.Keyword(null,"info","info",1017141280),info__$1], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","on-eval.one","lt.objs.langs.ruby/on-eval.one",4665959482),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.langs.ruby.__BEH__on_eval__DOT__one,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"eval.one","eval.one",1173589382),null], null), null)); -lt.objs.langs.ruby.__BEH__eval_on_change = (function __BEH__eval_on_change(editor,_cm,delta){var doc = lt.objs.editor.get_doc.call(null,editor);var new_lc = lt.objs.editor.last_line.call(null,editor);var last_line = lt.objs.editor.line.call(null,editor,new_lc);var old_lc = (function (){var or__6743__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","line-count","lt.objs.langs.ruby/line-count",4342272134).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,editor));if(cljs.core.truth_(or__6743__auto__)) -{return or__6743__auto__; +lt.objs.langs.ruby.__BEH__eval_on_change = (function __BEH__eval_on_change(editor,_cm,delta){var doc = lt.objs.editor.get_doc.call(null,editor);var new_lc = lt.objs.editor.last_line.call(null,editor);var last_line = lt.objs.editor.line.call(null,editor,new_lc);var old_lc = (function (){var or__6755__auto__ = new cljs.core.Keyword("lt.objs.langs.ruby","line-count","lt.objs.langs.ruby/line-count",4342272134).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,editor));if(cljs.core.truth_(or__6755__auto__)) +{return or__6755__auto__; } else {lt.object.merge_BANG_.call(null,editor,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("lt.objs.langs.ruby","line-count","lt.objs.langs.ruby/line-count",4342272134),0], null)); return new cljs.core.Keyword("lt.objs.langs.ruby","line-count","lt.objs.langs.ruby/line-count",4342272134).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,editor)); } -})();if(cljs.core.truth_((function (){var and__6731__auto__ = /^\s*$/.test(last_line);if(cljs.core.truth_(and__6731__auto__)) +})();if(cljs.core.truth_((function (){var and__6743__auto__ = /^\s*$/.test(last_line);if(cljs.core.truth_(and__6743__auto__)) {return cljs.core._EQ_.call(null,1,(new_lc - old_lc)); } else -{return and__6731__auto__; +{return and__6743__auto__; } })())) -{var code_8248 = lt.objs.editor.line.call(null,editor,(new_lc - 1));var line_8249 = (new_lc - 1);var info_8250 = cljs.core.assoc.call(null,cljs.core.assoc.call(null,new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,editor)),new cljs.core.Keyword(null,"code","code",1016963423),code_8248),new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),line_8249,new cljs.core.Keyword(null,"end","end",1014004813),line_8249], null));if((!(cljs.core.empty_QMARK_.call(null,code_8248))) && (cljs.core.not.call(null,/^\s*$/.test(code_8248)))) -{lt.object.raise.call(null,lt.objs.langs.ruby.ruby,new cljs.core.Keyword(null,"eval!","eval!",1110791799),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"origin","origin",4300251800),editor,new cljs.core.Keyword(null,"info","info",1017141280),info_8250], null)); +{var code_9022 = lt.objs.editor.line.call(null,editor,(new_lc - 1));var line_9023 = (new_lc - 1);var info_9024 = cljs.core.assoc.call(null,cljs.core.assoc.call(null,new cljs.core.Keyword(null,"info","info",1017141280).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,editor)),new cljs.core.Keyword(null,"code","code",1016963423),code_9022),new cljs.core.Keyword(null,"meta","meta",1017252215),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"start","start",1123661780),line_9023,new cljs.core.Keyword(null,"end","end",1014004813),line_9023], null));if((!(cljs.core.empty_QMARK_.call(null,code_9022))) && (cljs.core.not.call(null,/^\s*$/.test(code_9022)))) +{lt.object.raise.call(null,lt.objs.langs.ruby.ruby,new cljs.core.Keyword(null,"eval!","eval!",1110791799),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"origin","origin",4300251800),editor,new cljs.core.Keyword(null,"info","info",1017141280),info_9024], null)); } else {} } else @@ -223,45 +223,45 @@ lt.objs.langs.ruby.__BEH__ruby_exception = (function __BEH__ruby_exception(edito return lt.object.raise.call(null,editor,new cljs.core.Keyword(null,"editor.exception","editor.exception",3983021184),new cljs.core.Keyword(null,"ex","ex",1013907493).cljs$core$IFn$_invoke$arity$1(ex),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"end","end",1014004813).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"meta","meta",1017252215).cljs$core$IFn$_invoke$arity$1(ex)),new cljs.core.Keyword(null,"start-line","start-line",3689311729),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"meta","meta",1017252215).cljs$core$IFn$_invoke$arity$1(ex))], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","ruby-exception","lt.objs.langs.ruby/ruby-exception",2213599904),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.langs.ruby.__BEH__ruby_exception,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.eval.ruby.exception","editor.eval.ruby.exception",3915509310),null], null), null)); -lt.objs.langs.ruby.image = (function image(src){var e__8105__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"img","img",1014008629),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"src","src",1014018390),[cljs.core.str("data:image/png;base64,"),cljs.core.str(src)].join('')], null)], null));var seq__8203_8251 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__8204_8252 = null;var count__8205_8253 = 0;var i__8206_8254 = 0;while(true){ -if((i__8206_8254 < count__8205_8253)) -{var vec__8207_8255 = cljs.core._nth.call(null,chunk__8204_8252,i__8206_8254);var ev__8106__auto___8256 = cljs.core.nth.call(null,vec__8207_8255,0,null);var func__8107__auto___8257 = cljs.core.nth.call(null,vec__8207_8255,1,null);lt.util.dom.on.call(null,e__8105__auto__,ev__8106__auto___8256,func__8107__auto___8257); +lt.objs.langs.ruby.image = (function image(src){var e__8117__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"img","img",1014008629),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"src","src",1014018390),[cljs.core.str("data:image/png;base64,"),cljs.core.str(src)].join('')], null)], null));var seq__8987_9025 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__8988_9026 = null;var count__8989_9027 = 0;var i__8990_9028 = 0;while(true){ +if((i__8990_9028 < count__8989_9027)) +{var vec__8991_9029 = cljs.core._nth.call(null,chunk__8988_9026,i__8990_9028);var ev__8118__auto___9030 = cljs.core.nth.call(null,vec__8991_9029,0,null);var func__8119__auto___9031 = cljs.core.nth.call(null,vec__8991_9029,1,null);lt.util.dom.on.call(null,e__8117__auto__,ev__8118__auto___9030,func__8119__auto___9031); { -var G__8258 = seq__8203_8251; -var G__8259 = chunk__8204_8252; -var G__8260 = count__8205_8253; -var G__8261 = (i__8206_8254 + 1); -seq__8203_8251 = G__8258; -chunk__8204_8252 = G__8259; -count__8205_8253 = G__8260; -i__8206_8254 = G__8261; +var G__9032 = seq__8987_9025; +var G__9033 = chunk__8988_9026; +var G__9034 = count__8989_9027; +var G__9035 = (i__8990_9028 + 1); +seq__8987_9025 = G__9032; +chunk__8988_9026 = G__9033; +count__8989_9027 = G__9034; +i__8990_9028 = G__9035; continue; } } else -{var temp__4092__auto___8262 = cljs.core.seq.call(null,seq__8203_8251);if(temp__4092__auto___8262) -{var seq__8203_8263__$1 = temp__4092__auto___8262;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8203_8263__$1)) -{var c__7485__auto___8264 = cljs.core.chunk_first.call(null,seq__8203_8263__$1);{ -var G__8265 = cljs.core.chunk_rest.call(null,seq__8203_8263__$1); -var G__8266 = c__7485__auto___8264; -var G__8267 = cljs.core.count.call(null,c__7485__auto___8264); -var G__8268 = 0; -seq__8203_8251 = G__8265; -chunk__8204_8252 = G__8266; -count__8205_8253 = G__8267; -i__8206_8254 = G__8268; +{var temp__4092__auto___9036 = cljs.core.seq.call(null,seq__8987_9025);if(temp__4092__auto___9036) +{var seq__8987_9037__$1 = temp__4092__auto___9036;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8987_9037__$1)) +{var c__7497__auto___9038 = cljs.core.chunk_first.call(null,seq__8987_9037__$1);{ +var G__9039 = cljs.core.chunk_rest.call(null,seq__8987_9037__$1); +var G__9040 = c__7497__auto___9038; +var G__9041 = cljs.core.count.call(null,c__7497__auto___9038); +var G__9042 = 0; +seq__8987_9025 = G__9039; +chunk__8988_9026 = G__9040; +count__8989_9027 = G__9041; +i__8990_9028 = G__9042; continue; } } else -{var vec__8208_8269 = cljs.core.first.call(null,seq__8203_8263__$1);var ev__8106__auto___8270 = cljs.core.nth.call(null,vec__8208_8269,0,null);var func__8107__auto___8271 = cljs.core.nth.call(null,vec__8208_8269,1,null);lt.util.dom.on.call(null,e__8105__auto__,ev__8106__auto___8270,func__8107__auto___8271); +{var vec__8992_9043 = cljs.core.first.call(null,seq__8987_9037__$1);var ev__8118__auto___9044 = cljs.core.nth.call(null,vec__8992_9043,0,null);var func__8119__auto___9045 = cljs.core.nth.call(null,vec__8992_9043,1,null);lt.util.dom.on.call(null,e__8117__auto__,ev__8118__auto___9044,func__8119__auto___9045); { -var G__8272 = cljs.core.next.call(null,seq__8203_8263__$1); -var G__8273 = null; -var G__8274 = 0; -var G__8275 = 0; -seq__8203_8251 = G__8272; -chunk__8204_8252 = G__8273; -count__8205_8253 = G__8274; -i__8206_8254 = G__8275; +var G__9046 = cljs.core.next.call(null,seq__8987_9037__$1); +var G__9047 = null; +var G__9048 = 0; +var G__9049 = 0; +seq__8987_9025 = G__9046; +chunk__8988_9026 = G__9047; +count__8989_9027 = G__9048; +i__8990_9028 = G__9049; continue; } } @@ -270,47 +270,47 @@ continue; } break; } -return e__8105__auto__; +return e__8117__auto__; }); -lt.objs.langs.ruby.canvas = (function canvas(){var e__8105__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"canvas","canvas",3941165258)], null));var seq__8215_8276 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__8216_8277 = null;var count__8217_8278 = 0;var i__8218_8279 = 0;while(true){ -if((i__8218_8279 < count__8217_8278)) -{var vec__8219_8280 = cljs.core._nth.call(null,chunk__8216_8277,i__8218_8279);var ev__8106__auto___8281 = cljs.core.nth.call(null,vec__8219_8280,0,null);var func__8107__auto___8282 = cljs.core.nth.call(null,vec__8219_8280,1,null);lt.util.dom.on.call(null,e__8105__auto__,ev__8106__auto___8281,func__8107__auto___8282); +lt.objs.langs.ruby.canvas = (function canvas(){var e__8117__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"canvas","canvas",3941165258)], null));var seq__8999_9050 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,cljs.core.PersistentVector.EMPTY));var chunk__9000_9051 = null;var count__9001_9052 = 0;var i__9002_9053 = 0;while(true){ +if((i__9002_9053 < count__9001_9052)) +{var vec__9003_9054 = cljs.core._nth.call(null,chunk__9000_9051,i__9002_9053);var ev__8118__auto___9055 = cljs.core.nth.call(null,vec__9003_9054,0,null);var func__8119__auto___9056 = cljs.core.nth.call(null,vec__9003_9054,1,null);lt.util.dom.on.call(null,e__8117__auto__,ev__8118__auto___9055,func__8119__auto___9056); { -var G__8283 = seq__8215_8276; -var G__8284 = chunk__8216_8277; -var G__8285 = count__8217_8278; -var G__8286 = (i__8218_8279 + 1); -seq__8215_8276 = G__8283; -chunk__8216_8277 = G__8284; -count__8217_8278 = G__8285; -i__8218_8279 = G__8286; +var G__9057 = seq__8999_9050; +var G__9058 = chunk__9000_9051; +var G__9059 = count__9001_9052; +var G__9060 = (i__9002_9053 + 1); +seq__8999_9050 = G__9057; +chunk__9000_9051 = G__9058; +count__9001_9052 = G__9059; +i__9002_9053 = G__9060; continue; } } else -{var temp__4092__auto___8287 = cljs.core.seq.call(null,seq__8215_8276);if(temp__4092__auto___8287) -{var seq__8215_8288__$1 = temp__4092__auto___8287;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8215_8288__$1)) -{var c__7485__auto___8289 = cljs.core.chunk_first.call(null,seq__8215_8288__$1);{ -var G__8290 = cljs.core.chunk_rest.call(null,seq__8215_8288__$1); -var G__8291 = c__7485__auto___8289; -var G__8292 = cljs.core.count.call(null,c__7485__auto___8289); -var G__8293 = 0; -seq__8215_8276 = G__8290; -chunk__8216_8277 = G__8291; -count__8217_8278 = G__8292; -i__8218_8279 = G__8293; +{var temp__4092__auto___9061 = cljs.core.seq.call(null,seq__8999_9050);if(temp__4092__auto___9061) +{var seq__8999_9062__$1 = temp__4092__auto___9061;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8999_9062__$1)) +{var c__7497__auto___9063 = cljs.core.chunk_first.call(null,seq__8999_9062__$1);{ +var G__9064 = cljs.core.chunk_rest.call(null,seq__8999_9062__$1); +var G__9065 = c__7497__auto___9063; +var G__9066 = cljs.core.count.call(null,c__7497__auto___9063); +var G__9067 = 0; +seq__8999_9050 = G__9064; +chunk__9000_9051 = G__9065; +count__9001_9052 = G__9066; +i__9002_9053 = G__9067; continue; } } else -{var vec__8220_8294 = cljs.core.first.call(null,seq__8215_8288__$1);var ev__8106__auto___8295 = cljs.core.nth.call(null,vec__8220_8294,0,null);var func__8107__auto___8296 = cljs.core.nth.call(null,vec__8220_8294,1,null);lt.util.dom.on.call(null,e__8105__auto__,ev__8106__auto___8295,func__8107__auto___8296); +{var vec__9004_9068 = cljs.core.first.call(null,seq__8999_9062__$1);var ev__8118__auto___9069 = cljs.core.nth.call(null,vec__9004_9068,0,null);var func__8119__auto___9070 = cljs.core.nth.call(null,vec__9004_9068,1,null);lt.util.dom.on.call(null,e__8117__auto__,ev__8118__auto___9069,func__8119__auto___9070); { -var G__8297 = cljs.core.next.call(null,seq__8215_8288__$1); -var G__8298 = null; -var G__8299 = 0; -var G__8300 = 0; -seq__8215_8276 = G__8297; -chunk__8216_8277 = G__8298; -count__8217_8278 = G__8299; -i__8218_8279 = G__8300; +var G__9071 = cljs.core.next.call(null,seq__8999_9062__$1); +var G__9072 = null; +var G__9073 = 0; +var G__9074 = 0; +seq__8999_9050 = G__9071; +chunk__9000_9051 = G__9072; +count__9001_9052 = G__9073; +i__9002_9053 = G__9074; continue; } } @@ -319,7 +319,7 @@ continue; } break; } -return e__8105__auto__; +return e__8117__auto__; }); lt.objs.langs.ruby.__BEH__ruby_image = (function __BEH__ruby_image(editor,img){return lt.object.raise.call(null,editor,new cljs.core.Keyword(null,"editor.result.underline","editor.result.underline",541343758),lt.objs.langs.ruby.image.call(null,new cljs.core.Keyword(null,"image","image",1114217677).cljs$core$IFn$_invoke$arity$1(img)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"line","line",1017226086),new cljs.core.Keyword(null,"end","end",1014004813).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"meta","meta",1017252215).cljs$core$IFn$_invoke$arity$1(img)),new cljs.core.Keyword(null,"start-line","start-line",3689311729),new cljs.core.Keyword(null,"start","start",1123661780).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"meta","meta",1017252215).cljs$core$IFn$_invoke$arity$1(img))], null)); }); @@ -327,14 +327,16 @@ lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","r lt.objs.langs.ruby.__BEH__ruby_printer = (function __BEH__ruby_printer(editor,p){return lt.objs.console.loc_log.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"file","file",1017047278),lt.objs.files.basename.call(null,new cljs.core.Keyword(null,"file","file",1017047278).cljs$core$IFn$_invoke$arity$1(p)),new cljs.core.Keyword(null,"line","line",1017226086),"stdout",new cljs.core.Keyword(null,"content","content",1965434859),new cljs.core.Keyword(null,"msg","msg",1014012659).cljs$core$IFn$_invoke$arity$1(p)], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","ruby-printer","lt.objs.langs.ruby/ruby-printer",864442805),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.langs.ruby.__BEH__ruby_printer,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor.eval.ruby.print","editor.eval.ruby.print",2986120988),null], null), null)); -lt.objs.langs.ruby.__BEH__eval_BANG_ = (function __BEH__eval_BANG_(this$,event){var map__8222 = event;var map__8222__$1 = ((cljs.core.seq_QMARK_.call(null,map__8222))?cljs.core.apply.call(null,cljs.core.hash_map,map__8222):map__8222);var origin = cljs.core.get.call(null,map__8222__$1,new cljs.core.Keyword(null,"origin","origin",4300251800));var info = cljs.core.get.call(null,map__8222__$1,new cljs.core.Keyword(null,"info","info",1017141280));var client = new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"client","client",3951159101).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,origin)));lt.objs.notifos.working.call(null,""); +lt.objs.langs.ruby.__BEH__eval_BANG_ = (function __BEH__eval_BANG_(this$,event){var map__9006 = event;var map__9006__$1 = ((cljs.core.seq_QMARK_.call(null,map__9006))?cljs.core.apply.call(null,cljs.core.hash_map,map__9006):map__9006);var origin = cljs.core.get.call(null,map__9006__$1,new cljs.core.Keyword(null,"origin","origin",4300251800));var info = cljs.core.get.call(null,map__9006__$1,new cljs.core.Keyword(null,"info","info",1017141280));var client = new cljs.core.Keyword(null,"default","default",2558708147).cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"client","client",3951159101).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,origin)));lt.objs.notifos.working.call(null,""); return lt.objs.clients.send.call(null,lt.objs.eval.get_client_BANG_.call(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"command","command",1964298941),new cljs.core.Keyword(null,"editor.eval.ruby","editor.eval.ruby",3156763677),new cljs.core.Keyword(null,"origin","origin",4300251800),origin,new cljs.core.Keyword(null,"info","info",1017141280),info,new cljs.core.Keyword(null,"create","create",3956577390),lt.objs.langs.ruby.try_connect], null)),new cljs.core.Keyword(null,"editor.eval.ruby","editor.eval.ruby",3156763677),info,new cljs.core.Keyword(null,"only","only",1017320222),origin); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","eval!","lt.objs.langs.ruby/eval!",1872936343),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.langs.ruby.__BEH__eval_BANG_,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"eval!","eval!",1110791799),null], null), null)); lt.objs.langs.ruby.__BEH__connect = (function __BEH__connect(this$,path){return lt.objs.langs.ruby.try_connect.call(null,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"info","info",1017141280),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"path","path",1017337751),path], null)], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","connect","lt.objs.langs.ruby/connect",2360156914),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.langs.ruby.__BEH__connect,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"connect","connect",1965255772),null], null), null)); -lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","ruby-lang","lt.objs.langs.ruby/ruby-lang",3812976763),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ruby.lang","ruby.lang",3458842868),null], null), null)); +lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","ruby-lang","lt.objs.langs.ruby/ruby-lang",3812976763),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ruby.lang","ruby.lang",3458842868),null], null), null),new cljs.core.Keyword(null,"init","init",1017141378),(function (this$){lt.object.merge_BANG_.call(null,this$,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("lt.objs.langs.ruby","plugins","lt.objs.langs.ruby/plugins",3510837788),cljs.core.PersistentArrayMap.EMPTY], null)); +return null; +})); lt.objs.langs.ruby.ruby = lt.object.create.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","ruby-lang","lt.objs.langs.ruby/ruby-lang",3812976763)); lt.objs.sidebar.clients.add_connector.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1017277949),"Ruby",new cljs.core.Keyword(null,"desc","desc",1016984067),"Select a directory to serve as the root of your ruby project.",new cljs.core.Keyword(null,"connect","connect",1965255772),(function (){return lt.objs.dialogs.dir.call(null,lt.objs.langs.ruby.ruby,new cljs.core.Keyword(null,"connect","connect",1965255772)); })], null)); @@ -347,48 +349,51 @@ lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","u lt.objs.langs.ruby.__BEH__use_rbenv = (function __BEH__use_rbenv(this$){return lt.object.merge_BANG_.call(null,lt.objs.langs.ruby.ruby,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("lt.objs.langs.ruby","use-rbenv?","lt.objs.langs.ruby/use-rbenv?",615998644),true], null)); }); lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","use-rbenv","lt.objs.langs.ruby/use-rbenv",4653496197),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.langs.ruby.__BEH__use_rbenv,new cljs.core.Keyword(null,"desc","desc",1016984067),"Ruby: Use rbenv when loading REPL",new cljs.core.Keyword(null,"params","params",4313443576),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"object.instant","object.instant",773332388),null], null), null),new cljs.core.Keyword(null,"type","type",1017479852),new cljs.core.Keyword(null,"user","user",1017503549),new cljs.core.Keyword(null,"exclusive","exclusive",2700522000),true); -lt.objs.langs.ruby.live_toggler = (function live_toggler(this$){var e__8105__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div#instarepl","div#instarepl",2561476298),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),crate.binding.bound.call(null,this$,(function (p1__8223_SHARP_){return [cljs.core.str("livetoggler "),cljs.core.str((cljs.core.truth_(new cljs.core.Keyword(null,"live","live",1017226334).cljs$core$IFn$_invoke$arity$1(p1__8223_SHARP_))?null:"off"))].join(''); -}))], null),"live"], null)], null));var seq__8230_8301 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"click","click",1108654330),(function (e){lt.util.dom.prevent.call(null,e); +lt.objs.langs.ruby.__BEH__use_plugin = (function __BEH__use_plugin(this$,plugin){return lt.object.merge_BANG_.call(null,lt.objs.langs.ruby.ruby,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("lt.objs.langs.ruby","plugins","lt.objs.langs.ruby/plugins",3510837788),cljs.core.assoc.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","plugins","lt.objs.langs.ruby/plugins",3510837788).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,lt.objs.langs.ruby.ruby)),plugin,true)], null)); +}); +lt.object.behavior_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","use-plugin","lt.objs.langs.ruby/use-plugin",931233859),new cljs.core.Keyword(null,"reaction","reaction",4441361819),lt.objs.langs.ruby.__BEH__use_plugin,new cljs.core.Keyword(null,"desc","desc",1016984067),"Ruby: Use plugin when loading REPL",new cljs.core.Keyword(null,"params","params",4313443576),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"label","label",1116631654),"plugin",new cljs.core.Keyword(null,"type","type",1017479852),new cljs.core.Keyword(null,"plugin","plugin",4323697317)], null)], null),new cljs.core.Keyword(null,"triggers","triggers",2516997421),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"object.instant","object.instant",773332388),null], null), null),new cljs.core.Keyword(null,"type","type",1017479852),new cljs.core.Keyword(null,"user","user",1017503549),new cljs.core.Keyword(null,"exclusive","exclusive",2700522000),false); +lt.objs.langs.ruby.live_toggler = (function live_toggler(this$){var e__8117__auto__ = crate.core.html.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div#instarepl","div#instarepl",2561476298),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span","span",1017440956),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",1108647146),crate.binding.bound.call(null,this$,(function (p1__9007_SHARP_){return [cljs.core.str("livetoggler "),cljs.core.str((cljs.core.truth_(new cljs.core.Keyword(null,"live","live",1017226334).cljs$core$IFn$_invoke$arity$1(p1__9007_SHARP_))?null:"off"))].join(''); +}))], null),"live"], null)], null));var seq__9014_9075 = cljs.core.seq.call(null,cljs.core.partition.call(null,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"click","click",1108654330),(function (e){lt.util.dom.prevent.call(null,e); return lt.object.raise.call(null,new cljs.core.Keyword(null,"editor","editor",4001043679).cljs$core$IFn$_invoke$arity$1(cljs.core.deref.call(null,this$)),new cljs.core.Keyword(null,"live.toggle!","live.toggle!",4497782717)); -})], null)));var chunk__8231_8302 = null;var count__8232_8303 = 0;var i__8233_8304 = 0;while(true){ -if((i__8233_8304 < count__8232_8303)) -{var vec__8234_8305 = cljs.core._nth.call(null,chunk__8231_8302,i__8233_8304);var ev__8106__auto___8306 = cljs.core.nth.call(null,vec__8234_8305,0,null);var func__8107__auto___8307 = cljs.core.nth.call(null,vec__8234_8305,1,null);lt.util.dom.on.call(null,e__8105__auto__,ev__8106__auto___8306,func__8107__auto___8307); +})], null)));var chunk__9015_9076 = null;var count__9016_9077 = 0;var i__9017_9078 = 0;while(true){ +if((i__9017_9078 < count__9016_9077)) +{var vec__9018_9079 = cljs.core._nth.call(null,chunk__9015_9076,i__9017_9078);var ev__8118__auto___9080 = cljs.core.nth.call(null,vec__9018_9079,0,null);var func__8119__auto___9081 = cljs.core.nth.call(null,vec__9018_9079,1,null);lt.util.dom.on.call(null,e__8117__auto__,ev__8118__auto___9080,func__8119__auto___9081); { -var G__8308 = seq__8230_8301; -var G__8309 = chunk__8231_8302; -var G__8310 = count__8232_8303; -var G__8311 = (i__8233_8304 + 1); -seq__8230_8301 = G__8308; -chunk__8231_8302 = G__8309; -count__8232_8303 = G__8310; -i__8233_8304 = G__8311; +var G__9082 = seq__9014_9075; +var G__9083 = chunk__9015_9076; +var G__9084 = count__9016_9077; +var G__9085 = (i__9017_9078 + 1); +seq__9014_9075 = G__9082; +chunk__9015_9076 = G__9083; +count__9016_9077 = G__9084; +i__9017_9078 = G__9085; continue; } } else -{var temp__4092__auto___8312 = cljs.core.seq.call(null,seq__8230_8301);if(temp__4092__auto___8312) -{var seq__8230_8313__$1 = temp__4092__auto___8312;if(cljs.core.chunked_seq_QMARK_.call(null,seq__8230_8313__$1)) -{var c__7485__auto___8314 = cljs.core.chunk_first.call(null,seq__8230_8313__$1);{ -var G__8315 = cljs.core.chunk_rest.call(null,seq__8230_8313__$1); -var G__8316 = c__7485__auto___8314; -var G__8317 = cljs.core.count.call(null,c__7485__auto___8314); -var G__8318 = 0; -seq__8230_8301 = G__8315; -chunk__8231_8302 = G__8316; -count__8232_8303 = G__8317; -i__8233_8304 = G__8318; +{var temp__4092__auto___9086 = cljs.core.seq.call(null,seq__9014_9075);if(temp__4092__auto___9086) +{var seq__9014_9087__$1 = temp__4092__auto___9086;if(cljs.core.chunked_seq_QMARK_.call(null,seq__9014_9087__$1)) +{var c__7497__auto___9088 = cljs.core.chunk_first.call(null,seq__9014_9087__$1);{ +var G__9089 = cljs.core.chunk_rest.call(null,seq__9014_9087__$1); +var G__9090 = c__7497__auto___9088; +var G__9091 = cljs.core.count.call(null,c__7497__auto___9088); +var G__9092 = 0; +seq__9014_9075 = G__9089; +chunk__9015_9076 = G__9090; +count__9016_9077 = G__9091; +i__9017_9078 = G__9092; continue; } } else -{var vec__8235_8319 = cljs.core.first.call(null,seq__8230_8313__$1);var ev__8106__auto___8320 = cljs.core.nth.call(null,vec__8235_8319,0,null);var func__8107__auto___8321 = cljs.core.nth.call(null,vec__8235_8319,1,null);lt.util.dom.on.call(null,e__8105__auto__,ev__8106__auto___8320,func__8107__auto___8321); +{var vec__9019_9093 = cljs.core.first.call(null,seq__9014_9087__$1);var ev__8118__auto___9094 = cljs.core.nth.call(null,vec__9019_9093,0,null);var func__8119__auto___9095 = cljs.core.nth.call(null,vec__9019_9093,1,null);lt.util.dom.on.call(null,e__8117__auto__,ev__8118__auto___9094,func__8119__auto___9095); { -var G__8322 = cljs.core.next.call(null,seq__8230_8313__$1); -var G__8323 = null; -var G__8324 = 0; -var G__8325 = 0; -seq__8230_8301 = G__8322; -chunk__8231_8302 = G__8323; -count__8232_8303 = G__8324; -i__8233_8304 = G__8325; +var G__9096 = cljs.core.next.call(null,seq__9014_9087__$1); +var G__9097 = null; +var G__9098 = 0; +var G__9099 = 0; +seq__9014_9075 = G__9096; +chunk__9015_9076 = G__9097; +count__9016_9077 = G__9098; +i__9017_9078 = G__9099; continue; } } @@ -397,7 +402,7 @@ continue; } break; } -return e__8105__auto__; +return e__8117__auto__; }); lt.object.object_STAR_.call(null,new cljs.core.Keyword("lt.objs.langs.ruby","live-toggler","lt.objs.langs.ruby/live-toggler",1570963903),new cljs.core.Keyword(null,"tags","tags",1017456523),new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("lt.objs.langs.ruby","live-toggler","lt.objs.langs.ruby/live-toggler",1570963903),null], null), null),new cljs.core.Keyword(null,"name","name",1017277949),"Live Mode Toggler",new cljs.core.Keyword(null,"live","live",1017226334),true,new cljs.core.Keyword(null,"init","init",1017141378),(function (this$,editor){lt.object.merge_BANG_.call(null,this$,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"editor","editor",4001043679),editor], null)); var editor_content = lt.object.__GT_content.call(null,editor);var frame = lt.util.dom.parent.call(null,editor_content);var toggler = lt.objs.langs.ruby.live_toggler.call(null,this$);lt.util.dom.append.call(null,toggler,editor_content); diff --git a/ruby instarepl_compiled.js.map b/ruby instarepl_compiled.js.map index 5a587bf..cf1e5a4 100644 --- a/ruby instarepl_compiled.js.map +++ b/ruby instarepl_compiled.js.map @@ -3,9 +3,9 @@ "compiled.map", "sources": ["src/lt/plugins/ruby.cljs"], - "lineCount":438, + "lineCount":443, "mappings": - "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", "names": ["lt.objs.langs.ruby/shell", "lt.util.load/node-module", "lt.objs.langs.ruby/rb-path", "lt.objs.files/join", @@ -19,26 +19,26 @@ "lt.object/destroy!", "lt.object/object*", "client", "lt.objs.langs.ruby/escape-spaces", "s", "cljs.core/=", "lt.objs.files/separator", "lt.objs.langs.ruby/bash-escape-spaces", - "clojure.string/replace", "p__8189", "map__8191", "cljs.core/seq?", + "clojure.string/replace", "p__8973", "map__8975", "cljs.core/seq?", "cljs.core/apply", "cljs.core/hash-map", "cljs.core/get", "lt.objs.langs.ruby/run-rb", "path", "project-path", "name", "info", "n", "lt.objs.notifos/working", "obj", "lt.object/create", - "use-runner", "or__6743__auto__", "lt.objs.langs.ruby/ruby", + "use-runner", "or__6755__auto__", "lt.objs.langs.ruby/ruby", "keys->env", "env", "cljs.core/zipmap", "cljs.core/map", "cljs.core/keys", "cljs.core/select-keys", "cljs.core/cycle", - "command", "args", "lt.objs.clients.tcp/port", - "lt.objs.clients/->id", "lt.objs.proc/exec", - "lt.objs.langs.ruby/check-ruby", "cljs.core/assoc", - "lt.objs.langs.ruby/check-client", "lt.objs.files/exists?", - "lt.objs.langs.ruby/find-project", "p", "roots", - "lt.objs.files/get-roots", "cur", "prev", "cljs.core/empty?", - "lt.objs.files/dir?", "lt.objs.files/parent", "and__6731__auto__", - "lt.objs.langs.ruby/notify", "map__8193", "ruby", "ruby-client", - "cljs.core/not", "lt.objs.platform/open", "lt.objs.command/exec!", - "lt.objs.langs.ruby/try-connect", "lt.objs.langs.ruby/check-all", - "p__8194", "map__8196", "lt.objs.clients/client!", - "lt.objs.langs.ruby/ruby-watch", "meta", "src", "meta-str", - "js/JSON.stringify", "cljs.core/clj->js", + "command", "plugin-arg", "clojure.string/join", "args", + "lt.objs.clients.tcp/port", "lt.objs.clients/->id", + "lt.objs.proc/exec", "lt.objs.langs.ruby/check-ruby", + "cljs.core/assoc", "lt.objs.langs.ruby/check-client", + "lt.objs.files/exists?", "lt.objs.langs.ruby/find-project", "p", + "roots", "lt.objs.files/get-roots", "cur", "prev", + "cljs.core/empty?", "lt.objs.files/dir?", "lt.objs.files/parent", + "and__6743__auto__", "lt.objs.langs.ruby/notify", "map__8977", + "ruby", "ruby-client", "cljs.core/not", "lt.objs.platform/open", + "lt.objs.command/exec!", "lt.objs.langs.ruby/try-connect", + "lt.objs.langs.ruby/check-all", "p__8978", "map__8980", + "lt.objs.clients/client!", "lt.objs.langs.ruby/ruby-watch", "meta", + "src", "meta-str", "js/JSON.stringify", "cljs.core/clj->js", "lt.objs.langs.ruby/__BEH__watch-src", "editor", "lt.objs.langs.ruby/__BEH__on-eval", "lt.object/raise", "lt.plugins.watches/watched-range", "lt.objs.editor/last-line", @@ -51,27 +51,28 @@ "watch", "str-result", "lt.objs.langs.ruby/__BEH__ruby-result", "lt.objs.langs.ruby/__BEH__ruby-success", "lt.objs.langs.ruby/__BEH__ruby-incomplete", - "lt.objs.langs.ruby/__BEH__ruby-exception", "ex", "e__8105__auto__", - "crate.core/html", "seq__8203", "cljs.core/seq", - "cljs.core/partition", "chunk__8204", "count__8205", "i__8206", - "vec__8207", "cljs.core/-nth", "ev__8106__auto__", "cljs.core/nth", - "func__8107__auto__", "lt.util.dom/on", "cljs.core/chunked-seq?", - "c__7485__auto__", "cljs.core/chunk-first", "cljs.core/chunk-rest", - "cljs.core/count", "vec__8208", "cljs.core/first", "cljs.core/next", - "lt.objs.langs.ruby/image", "seq__8215", "chunk__8216", - "count__8217", "i__8218", "vec__8219", "vec__8220", + "lt.objs.langs.ruby/__BEH__ruby-exception", "ex", "e__8117__auto__", + "crate.core/html", "seq__8987", "cljs.core/seq", + "cljs.core/partition", "chunk__8988", "count__8989", "i__8990", + "vec__8991", "cljs.core/-nth", "ev__8118__auto__", "cljs.core/nth", + "func__8119__auto__", "lt.util.dom/on", "cljs.core/chunked-seq?", + "c__7497__auto__", "cljs.core/chunk-first", "cljs.core/chunk-rest", + "cljs.core/count", "vec__8992", "cljs.core/first", "cljs.core/next", + "lt.objs.langs.ruby/image", "seq__8999", "chunk__9000", + "count__9001", "i__9002", "vec__9003", "vec__9004", "lt.objs.langs.ruby/canvas", "lt.objs.langs.ruby/__BEH__ruby-image", "img", "lt.objs.langs.ruby/__BEH__ruby-printer", "lt.objs.console/loc-log", "lt.objs.files/basename", - "lt.objs.langs.ruby/__BEH__eval!", "event", "map__8222", "origin", + "lt.objs.langs.ruby/__BEH__eval!", "event", "map__9006", "origin", "lt.objs.clients/send", "lt.objs.eval/get-client!", "lt.objs.langs.ruby/__BEH__connect", "lt.objs.sidebar.clients/add-connector", "lt.objs.dialogs/dir", "lt.objs.langs.ruby/__BEH__ruby-exe", "exe", "lt.objs.langs.ruby/__BEH__use-rvm", - "lt.objs.langs.ruby/__BEH__use-rbenv", "seq__8230", "chunk__8231", - "count__8232", "i__8233", "vec__8234", "vec__8235", - "lt.objs.langs.ruby/live-toggler", "p1__8223#", + "lt.objs.langs.ruby/__BEH__use-rbenv", + "lt.objs.langs.ruby/__BEH__use-plugin", "plugin", "seq__9014", + "chunk__9015", "count__9016", "i__9017", "vec__9018", "vec__9019", + "lt.objs.langs.ruby/live-toggler", "p1__9007#", "crate.binding/bound", "e", "lt.util.dom/prevent", "editor-content", "lt.object/->content", "frame", "lt.util.dom/parent", "toggler", "lt.util.dom/append", "lt.objs.langs.ruby/live-off", diff --git a/src/lt/plugins/ruby.cljs b/src/lt/plugins/ruby.cljs index 46daacc..dd67177 100644 --- a/src/lt/plugins/ruby.cljs +++ b/src/lt/plugins/ruby.cljs @@ -94,9 +94,13 @@ command (if use-runner "bash" (or (::ruby-exe @ruby) "ruby")) + + plugin-arg (clojure.string/join "," (keys (::plugins @ruby))) + args (if use-runner - [runner-path project-path (bash-escape-spaces rb-path) tcp/port (clients/->id client)] - [(escape-spaces rb-path) tcp/port (clients/->id client)])] + [runner-path project-path (bash-escape-spaces rb-path) tcp/port (clients/->id client) plugin-arg] + [(escape-spaces rb-path) tcp/port (clients/->id client) plugin-arg])] + (proc/exec {:command command :args args :cwd project-path @@ -310,7 +314,10 @@ (object/object* ::ruby-lang - :tags #{:ruby.lang}) + :tags #{:ruby.lang} + :init (fn [this] + (object/merge! this {::plugins {}}) + nil)) (def ruby (object/create ::ruby-lang)) @@ -347,6 +354,16 @@ :reaction (fn [this] (object/merge! ruby {::use-rbenv? true}))) +(behavior ::use-plugin + :triggers #{:object.instant} + :desc "Ruby: Use plugin when loading REPL" + :type :user + :params [{:label "plugin" + :type :plugin}] + :exclusive false + :reaction (fn [this plugin] + (object/merge! ruby {::plugins (assoc (::plugins @ruby) plugin true)}))) + (defui live-toggler [this] [:div#instarepl [:span {:class (bound this #(str "livetoggler " (when-not (:live %) "off")))} "live"]] :click (fn [e]