dyndoc-ruby-core 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ce7f1ca86ecf2cf834874844354082c144f6329
4
- data.tar.gz: 495502ca7acd3d3211f26714b50c4fbeb3a53b77
3
+ metadata.gz: 36bb654f81d5dc724967d4e5a50599551d827a05
4
+ data.tar.gz: e33f05528d9e392745c669b7b1be587fd85ff39d
5
5
  SHA512:
6
- metadata.gz: fbf7267719144310e24a22c9561d69d9d78ea71f0e8feac0f3dd20520c1afc8be82c2a4998e69c66108273b6d377d81180b6e6c5b8032d5e04b0914e9db7fae4
7
- data.tar.gz: e7fa3a657c4f708982dfc726adeb4cda92c275b9b65499eae8dc689e270760024df9c2a7bc379215297b0a1ce2d291e2079d6667980004954185a3c205a12c2d
6
+ metadata.gz: 59992801cbfcb258e6fca73c03c162b6def069237ff08f28265f56c575255279dadda7a6dd68e586ec9b2e70bbfd91422ce3d8f1729484734d0170db6ceec453
7
+ data.tar.gz: a26e6739b605b91138c1346f40f075c02f808e736f12af1dd654411c18fcd06c649d89c2a96e9327272567c3f0c27032c4f4c34468aca2485b654f21210094ee
@@ -30,7 +30,7 @@ module Dyndoc
30
30
  @@start,@@stop="\\{","\\}"
31
31
 
32
32
  def RbServer.filter(str,rbEnvir=nil)
33
- res=str.gsub(/\\?(?i:\#Rb|\#rb|\:Rb|\:rb|\:)#{@@start}[^#{@@stop}]+#{@@stop}/) {|w|
33
+ res=str.gsub(/\\?(?i:\#Rb|\#rb|\:Rb|\:rb|\:)#{@@start}[^#{@@stop}]+#{@@stop}/) {|w|
34
34
  if w[0,1]=="\\"
35
35
  w[1..-1]
36
36
  else
@@ -66,8 +66,8 @@ module Dyndoc
66
66
  out=rbEnvir.module_eval(code)
67
67
  end
68
68
  rescue
69
- if RUBY_VERSION >= "1.9.3" and rbEnvir.is_a? Binding and rbEnvir.eval("local_variables").include? :childBinding
70
- begin
69
+ if RUBY_VERSION >= "1.9.3" and rbEnvir.is_a? Binding and rbEnvir.eval("local_variables").include? :childBinding
70
+ begin
71
71
  rbEnvir2=rbEnvir.eval("childBinding")
72
72
  out=rbEnvir2.eval(code)
73
73
  return out
@@ -81,9 +81,9 @@ module Dyndoc
81
81
  # or more informative for debugging!
82
82
 
83
83
  out="\\:{"+code+"}"
84
-
84
+
85
85
  if Dyndoc.cfg_dyn[:ruby_debug] ==:expression
86
- Dyndoc.warn "WARNING: >>>>>>>>>>>>>>>>>>+\n"+opts[:error]+" in #{rbEnvir}:\n"+code+"\n<<<<<<<<<<<<<<<<<<"
86
+ Dyndoc.warn "WARNING: >>>>>>>>>>>>>>>>>>+\n"+opts[:error]+" in #{rbEnvir}:\n"+code+"\n<<<<<<<<<<<<<<<<<<"
87
87
  end
88
88
 
89
89
 
@@ -91,7 +91,7 @@ module Dyndoc
91
91
  ##p ["error ruby",code]
92
92
  $dyn_logger.write("\nERROR Ruby:\n"+code+"\n")
93
93
  end
94
-
94
+
95
95
  rescue SyntaxError
96
96
  puts "RbServer syntax error in: "+code
97
97
  raise SystemError if Dyndoc.cfg_dyn[:dyndoc_mode]==:normal and Dyndoc.cfg_dyn[:ruby_debug]!=:none
@@ -190,7 +190,7 @@ module Dyndoc
190
190
  end
191
191
 
192
192
  if $dyndoc_rserv
193
- ##puts "$dyndoc_rserv";p $dyndoc_rserv
193
+ ##puts "$dyndoc_rserv";p $dyndoc_rserv
194
194
  RServer.R4rb :Rserve,$dyndoc_rserv
195
195
  R4rb_status? if $dyndoc_server_hostname
196
196
  end
@@ -213,7 +213,7 @@ module Dyndoc
213
213
  hide=0
214
214
  passe=0
215
215
  opt = nil
216
- code=""
216
+ code=""
217
217
  ##Dyndoc.warn "block",block
218
218
  block.each_line{|l|
219
219
  l2=l.chomp
@@ -255,19 +255,19 @@ module Dyndoc
255
255
  ## redirect R output
256
256
  code << l << "\n" ##ajout de "\n" grace à Pierre (le 15/12/05) pour bug: "1:10 #toto" -> pas de sortie car parse erreur n2!!!
257
257
  case @@mode
258
- when :capture_normal
258
+ when :capture_normal
259
259
  evalOk=(R4rb << ".output<<-capture.output({"+RServer.code_envir(code,env)+"})")
260
260
  when :capture_cqls
261
261
  evalOk=(R4rb << ".output<<-capture.output.cqls({"+RServer.code_envir(code,env)+"})")
262
262
  end
263
263
 
264
264
  ##Dyndoc.warn "evalOk",code,evalOk
265
- if evalOk
265
+ if evalOk
266
266
  txt=(@@out < '.output' ) ##.join("\n").split(/\n/)
267
- code=""
267
+ code=""
268
268
  else
269
269
  txt=@@out=[]
270
- end
270
+ end
271
271
  if optout and optout.keys.include? "short"
272
272
  short=optout["short"].split(",")
273
273
  short[0]=short[0].to_i
@@ -284,7 +284,7 @@ module Dyndoc
284
284
  ##txt.each{|l| txtout << l <<"\n"}
285
285
  end
286
286
  end
287
- optout=nil
287
+ optout=nil
288
288
  hide -= 1 if hide>0
289
289
  passe -=1 if passe>0
290
290
  end
@@ -300,7 +300,7 @@ module Dyndoc
300
300
  hide=0
301
301
  passe=0
302
302
  opt = nil
303
- code=""
303
+ code=""
304
304
  block.each_line{|l|
305
305
  l2=l.chomp
306
306
  inst=l2.delete(" ").split("|")[0]
@@ -341,12 +341,12 @@ module Dyndoc
341
341
  ## redirect R output
342
342
  code << l << "\n" ##ajout de "\n" grace à Pierre (le 15/12/05) pour bug: "1:10 #toto" -> pas de sortie car parse erreur n2!!!
343
343
  evalOk=(R4rb << ".output<<-capture.output({"+RServer.code_envir(code,env)+"})")
344
- if evalOk
344
+ if evalOk
345
345
  txt=(@@out < '.output' ) ##.join("\n").split(/\n/)
346
- code=""
346
+ code=""
347
347
  else
348
348
  txt=@@out=[]
349
- end
349
+ end
350
350
  if optout and optout.keys.include? "short"
351
351
  short=optout["short"].split(",")
352
352
  short[0]=short[0].to_i
@@ -363,7 +363,7 @@ module Dyndoc
363
363
  outputs << output.gsub(/^[\n]*/,"")
364
364
  input,output="",""
365
365
  end
366
- optout=nil
366
+ optout=nil
367
367
  hide -= 1 if hide>0
368
368
  passe -=1 if passe>0
369
369
  end
@@ -373,17 +373,17 @@ module Dyndoc
373
373
 
374
374
 
375
375
  @@mode=:capture_cqls #or :capture_protected or capture_normal or capture_local
376
-
376
+
377
377
  def RServer.mode=(val)
378
378
  @@mode= val
379
379
  end
380
-
380
+
381
381
  def RServer.mode
382
382
  @@mode
383
383
  end
384
384
 
385
385
  @@device_cmd,@@device="png","png"
386
-
386
+
387
387
  def RServer.device(dev="pdf")
388
388
  case dev
389
389
  when "pdf"
@@ -392,11 +392,11 @@ module Dyndoc
392
392
  @@device_cmd,@@device="png","png"
393
393
  end
394
394
  end
395
-
395
+
396
396
  #def RServer.input_semi_colon(block)
397
397
  # block.map{|e| e.chomp!;((e.include? ";") ? (ee=e.split(";");["##!eval",e,"##hide:#{ee.length}"]+ee) : e )}.compact.join("\n")
398
398
  #end
399
-
399
+
400
400
  def RServer.inputsAndOutputs(block,id="",optRDevice="",prompt={:normal=>'',:continue=>''},env="Global")
401
401
  Utils.clean_eol(block)
402
402
  envLoc=env
@@ -411,7 +411,7 @@ module Dyndoc
411
411
  code=""
412
412
  # add R device
413
413
  imgdir=($dyn_rsrc ? File.join($dyn_rsrc,"img") : "/tmp/Rserver-img"+rand(1000000).to_s)
414
-
414
+
415
415
  imgfile=File.join(imgdir,"tmpImgFile"+id.to_s+"-")
416
416
  cptImg=0
417
417
  imgCopy=[]
@@ -420,7 +420,7 @@ module Dyndoc
420
420
  Dir[imgfile+"*"].each{|f| FileUtils.rm_f(f)}
421
421
  #p Dir[imgfile+"*"]
422
422
 
423
-
423
+
424
424
  #Dyndoc.warn "fig command:", "#{@@device_cmd}(\"#{imgfile}%d.#{@@device}\",#{optRDevice})"
425
425
  R4rb << "#{@@device_cmd}(\"#{imgfile}%d.#{@@device}\",#{optRDevice})"
426
426
  #block=RServer.input_semi_colon(block)
@@ -461,10 +461,10 @@ module Dyndoc
461
461
 
462
462
  if echo>0
463
463
  echo -= 1
464
- echoLines << l2
464
+ echoLines << l2
465
465
  next
466
466
  end
467
-
467
+
468
468
  if echo==0 and !echoLines.empty? and !results.empty?
469
469
  results[-1][:output] << "\n" unless results[-1][:output].empty?
470
470
  results[-1][:output] << echoLines.join("\n")
@@ -489,7 +489,7 @@ module Dyndoc
489
489
  imgName=File.basename(opt["img"].strip,".*")
490
490
  imgName+=".#{@@device}" #unless imgName=~/\.#{@@device}$/
491
491
  imgName=File.join(imgdir,imgName)
492
-
492
+
493
493
  imgCopy << {:in => imgfile+cptImg.to_s+".#{@@device}",:out=>imgName}
494
494
  opt.delete("img")
495
495
  else
@@ -497,7 +497,7 @@ module Dyndoc
497
497
  end
498
498
  puts "DYN ERROR!!! no fig allowed after empty R output!!!" unless results[-1]
499
499
  results[-1][:img]={:name=>imgName}
500
- results[-1][:img][:opt]=opt if opt and !opt.empty?
500
+ results[-1][:img][:opt]=opt if opt and !opt.empty?
501
501
  #could not copy file now!!!!
502
502
  when "##add"
503
503
  results[-1][:add]=opt
@@ -510,15 +510,15 @@ module Dyndoc
510
510
  l2,envLoc=RServer.find_envir(l2,envLoc)
511
511
  #Dyndoc.warn "after",l,envLoc
512
512
  input << l2 << "\n"
513
- #Dyndoc.warn :input3, input
513
+ #Dyndoc.warn :input3, input
514
514
  end
515
515
  if passe==0 and l2[0,1]!="#"
516
516
  ## redirect R output
517
517
  code << l2 << "\n" ##ajout de "\n" grace à Pierre (le 15/12/05) pour bug: "1:10 #toto" -> pas de sortie car parse erreur n2!!!
518
518
  case @@mode
519
519
  when :capture_cqls
520
- ##TODO: instead of only splitting check that there is no
521
- ## or ask the user to use another character instead of ";" printed as is in the input!
520
+ ##TODO: instead of only splitting check that there is no
521
+ ## or ask the user to use another character instead of ";" printed as is in the input!
522
522
  codes=code.split(";")
523
523
  #Dyndoc.warn :codes, codes
524
524
  evalOk=(R4rb << ".output <<- ''")
@@ -527,8 +527,8 @@ module Dyndoc
527
527
  #Dyndoc.warn "tmp",tmp
528
528
  }
529
529
  when :capture_protected
530
- ##TODO: instead of only splitting check that there is no
531
- ## or ask the user to use another character instead of ";" printed as is in the input!
530
+ ##TODO: instead of only splitting check that there is no
531
+ ## or ask the user to use another character instead of ";" printed as is in the input!
532
532
  codes=code.split(";")
533
533
  evalOk=(R4rb << ".output <<- ''")
534
534
  codes.each{|cod|
@@ -567,10 +567,10 @@ module Dyndoc
567
567
  #p evalOk;p code;R4rb << "print(geterrmessage())";R4rb << "if(exists(\".output\") ) print(.output)"
568
568
  if evalOk
569
569
  txt=(@@out < '.output' ) ##.join("\n").split(/\n/)
570
- code=""
570
+ code=""
571
571
  else
572
572
  txt=@@out=[]
573
- end
573
+ end
574
574
  if optout and optout.keys.include? "short"
575
575
  short=optout["short"].split(",")
576
576
  short[0]=short[0].to_i
@@ -598,7 +598,7 @@ module Dyndoc
598
598
  results << result unless (result[:input]+result[:output]).empty?
599
599
  #end
600
600
  input,output="",""
601
-
601
+
602
602
  end
603
603
  if passe==0 and l2[0,1]=="#"
604
604
  result={}
@@ -617,7 +617,7 @@ module Dyndoc
617
617
  results << result
618
618
  input,output="",""
619
619
  end
620
- optout=nil
620
+ optout=nil
621
621
  hide -= 1 if hide>0
622
622
  passe -=1 if passe>0
623
623
  #Dyndoc.warn :hide2,hide
@@ -626,7 +626,7 @@ module Dyndoc
626
626
  R4rb << "dev.off()"
627
627
  imgCopy.each{|e|
628
628
  FileUtils.mkdir_p File.dirname(e[:out]) unless File.exist? File.dirname(e[:out])
629
- if File.exists? e[:in]
629
+ if File.exists? e[:in]
630
630
  FileUtils.mv(e[:in],e[:out])
631
631
  else
632
632
  Dyndoc.warn "WARNING! #{e[:in]} does not exists for #{e[:out]}"
@@ -638,7 +638,7 @@ module Dyndoc
638
638
  #Dyndoc.warn :results, results
639
639
  return results
640
640
  end
641
-
641
+
642
642
  @@out=[]
643
643
 
644
644
  @@start,@@stop="\\{","\\}"
@@ -647,7 +647,7 @@ module Dyndoc
647
647
  #out2=out.gsub(/\\n/,'\textbackslash{n}')
648
648
  out.gsub("{",'\{').gsub("}",'\}').gsub("~",'\boldmath\ensuremath{\mathtt{\sim}}')
649
649
  end
650
-
650
+
651
651
  def RServer.formatInput(out)
652
652
  out2=out.gsub(/\\n/,'\textbackslash{n}')
653
653
  ## {\texttildelow}
@@ -665,7 +665,7 @@ module Dyndoc
665
665
  #Dyndoc.warn :formatInput4, [out,out2,out3]
666
666
  return out2.gsub("~",'\boldmath\ensuremath{\mathtt{\sim}}')
667
667
  end
668
-
668
+
669
669
 
670
670
  def RServer.filter(str)
671
671
  ## modified (28/5/04) (old : /\#R\{.+\}/ => {\#R{ok}} does not work since "ok}" was selected !!
@@ -696,7 +696,7 @@ module Dyndoc
696
696
  #puts "New env #{env} in #{parent}"
697
697
  ".GlobalEnv$.env4dyn$#{env}<-new.env(parent=.GlobalEnv$.env4dyn$#{parent})".to_R
698
698
  end
699
-
699
+
700
700
  def RServer.local_code_envir(code,env="Global")
701
701
  "local({"+code+"},.GlobalEnv$.env4dyn$#{env})"
702
702
  end
@@ -737,7 +737,7 @@ module Dyndoc
737
737
  #Dyndoc.warn "without",code,(@@out < "evalq("+code+",.env4dyn$"+env+")"),"done"
738
738
  code="prettyNum("+code+")" if pretty
739
739
  #Dyndoc.warn "with",code,(@@out < "evalq("+code+",.env4dyn$"+env+")"),"done"
740
-
740
+
741
741
  ## code="evalq("+code+",envir=.GlobalEnv$.env4dyn$"+env+")" ##-> replaced by
742
742
  code=RServer.code_envir(code,env)
743
743
  #Dyndoc.warn "RServer.output->",code,(@@out < code)
@@ -753,13 +753,13 @@ module Dyndoc
753
753
  #Dyndoc.warn "without",code,(@@out < "evalq("+code+",.env4dyn$"+env+")"),"done"
754
754
  code="prettyNum("+code+")" if opts[:pretty]
755
755
  #Dyndoc.warn "with",code,(@@out < "evalq("+code+",.env4dyn$"+env+")"),"done"
756
-
756
+
757
757
  ## code="evalq("+code+",envir=.GlobalEnv$.env4dyn$"+env+")" ##-> replaced by
758
758
  code=RServer.code_envir(code,env)
759
759
  #Dyndoc.warn "RServer.output->",code,(@@out < code)
760
760
  #Dyndoc.warn "RServer.safe_output: capture",capture,code
761
761
  if opts[:capture] or opts[:blockR]
762
- ## IMPORTANT; this is here to ensure that a double output is avoided at the end if the last instruction is a print
762
+ ## IMPORTANT; this is here to ensure that a double output is avoided at the end if the last instruction is a print
763
763
  code = "invisible("+code+")" if invisible
764
764
  code+=";invisible()" if opts[:blockR]
765
765
  #Dyndoc.warn "safe_output",code
@@ -769,11 +769,11 @@ module Dyndoc
769
769
  else
770
770
  res=(@@out < "{.result_try_code<-try({"+code+"},silent=TRUE);if(inherits(.result_try_code,'try-error')) 'try-error' else .result_try_code}") #.join(', ')
771
771
  end
772
- res
772
+ res
773
773
  end
774
774
 
775
775
  #more useful than echo_tex!!!
776
- def RServer.rout(code,env="Global")
776
+ def RServer.rout(code,env="Global")
777
777
  out="> "+code
778
778
  code="capture.output({"+code+"})"
779
779
  ## code="evalq("+code+",.GlobalEnv$.env4dyn$"+env+")" ##-> replaced by
@@ -793,15 +793,15 @@ module Dyndoc
793
793
  R4rb << "print(.libPaths())"
794
794
  end
795
795
  R4rb << "if(!(Sys.getenv('R_LIBS_USER') %in% .libPaths())) .libPaths(Sys.getenv('R_LIBS_USER'))"
796
- ## R4rb << "require(dyndoc)" => put in TemplateManager.initR dyndocTools.R
797
- R4rb << "require(rb4R)"
796
+ ## R4rb << "require(dyndoc)" => put in TemplateManager.initR dyndocTools.R
797
+ R4rb << "require(rb4R)"
798
798
  end
799
799
 
800
800
  end
801
801
 
802
802
  class JLServer
803
803
 
804
- # def JLServer.init(mode=:default) #mode=maybe zmq (to investigate)
804
+ # def JLServer.init(mode=:default) #mode=maybe zmq (to investigate)
805
805
  # require 'jl4rb'
806
806
  # Julia.init
807
807
  # end
@@ -43,6 +43,11 @@ module Dyndoc
43
43
 
44
44
  # Maybe better located inside server.rb
45
45
  def TemplateManager.initR
46
+ # For windows! R now change HOME variable by appending "/Documents" at the end. Ruby does not do that!
47
+ unless File.exist? File.join(ENV["HOME"],"R","win-library")
48
+ ENV["HOME"] += "/Documents"
49
+ end
50
+
46
51
  first=require "R4rb" #save if it the first initialization!
47
52
  Dyndoc.warn "FIRST INIT OF R!!!! => #{first}"
48
53
  Array.initR
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dyndoc-ruby-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - CQLS