dyndoc-ruby-core 1.4.1 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b302bae638dbe8908415fc844db0b81321c5cbbd3b07307d84d13c6ece678a6c
4
- data.tar.gz: f72741abff2e5aee2568dbef254fa683eb3edd352838b10cc185bbd242dcdb2f
3
+ metadata.gz: d8db5b8dba56f6bc0ed9ac32ee525033c577e49e4771e76a96dcb0e7c28654d5
4
+ data.tar.gz: 7dd78c1167b23734ce93a6ca4e125ae106006e7b621eebc7c97dbca5fea9c30f
5
5
  SHA512:
6
- metadata.gz: 45a49451d506304d9ff93149507eb7da54122923d62b2fcd6af9fa7604c341f1c95eeac9521c18f4e123ac67df2d65b6c3850898942ac6d3989d9f7b42b109ea
7
- data.tar.gz: ea013b177b66156fe1fc9c262e9d8d812db0e71987b696d022a0f485a78ec3bbfe23ba9f1c4d5b5e153e4e881bf2f2839ba8d842de2a5abd965b76d145f9310e
6
+ metadata.gz: 549db27aa7991171c22c203caccdc28653b6b2ccb7b9e275565f79e5f4c8a239d4996c97bcad7c4324d802bcbf0f907b7183a388f1644d21e547e9d41d1f3fb3
7
+ data.tar.gz: fc5c2afdbe9c859940452f246d4dfa8c59d1fc7645ec87a321b86c64edfee0062d3df252cf9f5cfe33acadf05e49c7890eb2baac45ee45abee8e7ce21e058548
@@ -30,6 +30,8 @@ Settings.define 'cfg_dyn.cmd_pandoc_options', :type => Array, :default => []
30
30
  Settings.define 'cfg_dyn.options.pdflatex_nb_pass', :type => Integer, :default => 1
31
31
  Settings.define 'cfg_dyn.options.pdflatex_echo', :type => :boolean, :default => false
32
32
  Settings.define 'cfg_dyn.debug', :type => :boolean, :default => false
33
+ Settings.define 'cfg_dyn.parse_rescue', :type => :boolean, :default => true
34
+ Settings.define 'cfg_dyn.parse_rescue_mode', :type => Symbol, :default => :simple
33
35
  Settings.define 'cfg_dyn.ruby_only', :type => :boolean, :default => false
34
36
 
35
37
  Settings.define 'cfg_dyn.dyndoc_session', :type => Symbol, :default => :normal #or :interactive
@@ -40,6 +42,7 @@ Settings.define 'cfg_dyn.working_dir', :type => String, :default => ""
40
42
  Settings.define 'cfg_dyn.root_doc', :type => String, :default => ""
41
43
  Settings.define 'cfg_dyn.nbChar_error', :type => Integer, :default => 300
42
44
  Settings.define 'cfg_dyn.langs', :type => Array, :default => ["R"]
45
+ Settings.define 'cfg_dyn.require_first', :type => Array, :default => [""]
43
46
 
44
47
  Settings.define 'cfg_dyn.devel_mode', :type=> Symbol, :default=> :none
45
48
  Settings.define 'cfg_dyn.ruby_debug', :type=> Symbol, :default=> :none
@@ -395,7 +395,7 @@ module Dyndoc
395
395
  when "@"
396
396
  return txt if @mode==:pre
397
397
  res=CallFilter.output(txt,self)
398
- when "#","##"
398
+ when "#","##","%"
399
399
  #p @envir
400
400
  #p @envir.output(txt,@mode,@escape)
401
401
  #p @envir.output(in_type+"{"+txt2+"}",@mode,@escape)
@@ -575,7 +575,7 @@ module Dyndoc
575
575
  else
576
576
  res.to_s
577
577
  end
578
- when "=","@=","#=","##=" ,"none="
578
+ when "=","@=","#=","%=","##=" ,"none="
579
579
  #puts "convert [=]";p res
580
580
  if res.is_a? Array
581
581
  res.join(",")
@@ -587,7 +587,7 @@ module Dyndoc
587
587
  "%Q{"+res2+"}"
588
588
  end
589
589
  end
590
- when "","@","#","##","none","#F"
590
+ when "","@","#","%","##","none","#F"
591
591
  if res.is_a? Array
592
592
  res.join(",")
593
593
  else
@@ -93,7 +93,9 @@ module Dyndoc
93
93
  end
94
94
 
95
95
  rescue SyntaxError
96
- puts "RbServer syntax error in: "+code
96
+
97
+ $outRbError="RbServer syntax error in: "+code
98
+ puts $outRbError
97
99
  raise SystemError if Dyndoc.cfg_dyn[:dyndoc_mode]==:normal and Dyndoc.cfg_dyn[:ruby_debug]!=:none
98
100
  if Dyndoc.cfg_dyn[:dyndoc_mode]!=:normal
99
101
  $dyn_logger.write("\nERROR Ruby Syntax:\n"+code+"\n")
@@ -829,8 +831,8 @@ module Dyndoc
829
831
 
830
832
  def JLServer.initVerb
831
833
  Julia << "Base.include(@__MODULE__,\""+File.join(Dyndoc.cfg_dir[:gem_path],"share","julia","dyndoc.jl")+"\")"
832
- Julia << "push!(Libdl.DL_LOAD_PATH,\"/usr/lib\");push!(Libdl.DL_LOAD_PATH,\"/usr/local/lib\")"
833
- @@initVerb=true
834
+ Julia << "push!(Libdl.DL_LOAD_PATH,\"/usr/lib\");push!(Libdl.DL_LOAD_PATH,\"/usr/local/lib\")"
835
+ @@initVerb=true
834
836
  end
835
837
 
836
838
  def JLServer.inputsAndOutputs(code,hash=true)
@@ -232,7 +232,7 @@ module Dyndoc
232
232
  class CallScanner < Scanner
233
233
 
234
234
  @@type[:call]={
235
- :start=>/\\?(?:\#|\#\#|@|#F|#R|#r|\:R|\:r|#Rb|#rb|\:|\:Rb|\:rb|\:jl|#jl)?\{/,
235
+ :start=>/\\?(?:\#|\%|\#\#|@|#F|#R|#r|\:R|\:r|#Rb|#rb|\:|\:Rb|\:rb|\:jl|#jl)?\{/,
236
236
  :stop=> /\\?\}/,
237
237
  :mode=>{:start=>-1,:stop=>0,:length=>1},
238
238
  :escape_start=>['\{'], #doivent être parsable dans start
@@ -257,11 +257,11 @@ module Dyndoc
257
257
  }
258
258
  =end
259
259
  @@type[:dtag] = {
260
- :start=>'\{[\#\@]([\w\:\|-]*[<>]?[=?!><]?(\.\w*)?)\]',
261
- :stop=> '\[[\#\@]([\w\:\|-]*[<>]?[=?!><]?)\}',
262
- :atom=>{:match=>/(\{[\#\@][\w\:\|]*)([\#\@]\})/,:replace=>{2=>"][#}"}},
260
+ :start=>'\{[\#\@\%]([\w\:\|-]*[<>]?[=?!><]?(\.\w*)?)\]',
261
+ :stop=> '\[[\#\@\%]([\w\:\|-]*[<>]?[=?!><]?)\}',
262
+ :atom=>{:match=>/(\{[\#\@\%][\w\:\|]*)([\#\@\%]\})/,:replace=>{2=>"][#}"}},
263
263
  :block=> '\]', #no longer |
264
- :keyword=>['\[[\#\@]','\]'],
264
+ :keyword=>['\[[\#\%\@]','\]'],
265
265
  :mode=>{:start=>0,:stop=>-1,:length=>1}
266
266
  }
267
267
 
@@ -621,11 +621,12 @@ module Dyndoc
621
621
  end
622
622
  ##Dyndoc.warn "to scan", @scan.string[@scan.pos..-1]
623
623
  ##Dyndoc.warn "tag_reg",[blocktag_reg,tag_reg]
624
+ ##p ["tag_reg",[blocktag_reg,tag_reg]]
624
625
  end
625
626
  if (tag_keyword and (@scan.check_until(blocktag_reg))) #or (!@named_tags.empty? and check_until_for_named_tags)
626
627
  check_until_for_named_tags unless @named_tags.empty?
627
628
  key=@scan[2]
628
- ##Dyndoc.warn "keyword",[key,@scan[0],@scan[1],@scan[2]]
629
+ ##Dyndoc.warn p ["keyword",[key.scan(tag_reg),key.scan(tag_reg)[-1],key,@scan[0],@scan[1],@scan[2]]]
629
630
  ##Dyndoc.warn "pre_math,tag_selected",[@scan.pre_match,@tag_selected] if key=="[#tag]"
630
631
  res << find_text(from,key,inside)
631
632
  @is_arg=false if @is_arg
@@ -635,7 +636,7 @@ module Dyndoc
635
636
  res << (key=@tag_selected)
636
637
  else
637
638
  #key=tag_reg.match(key)[0]
638
- key= key.scan(tag_reg)[0]
639
+ key= key.scan(tag_reg)[-1]
639
640
  ##Dyndoc.warn "key(AP)",key if key=="tag"
640
641
  res << (key=key.to_sym) if key and !key.empty?
641
642
  end
@@ -201,13 +201,15 @@ module Dyndoc
201
201
  #p input
202
202
  =end
203
203
  # REPLACEMENT of ABOVE!
204
- unless @libs.keys.include? tmpl
205
- input=Dyndoc.read_content_file(tmpl)
206
- @libs[tmpl]=input
207
- filter.envir["_FILENAME_"]=tmpl.dup #register name of template!!!
208
- filter.envir["_FILENAME_ORIG_"]=tmpl_orig.dup #register name of template!!!
209
- filter.envir["_PWD_"]=File.dirname(tmpl) #register name of template!!!
210
- txt=parse(@libs[tmpl],filter,tags)
204
+ unless @libs.keys.include? tmpl
205
+ if tmpl and File.exists? tmpl
206
+ input=Dyndoc.read_content_file(tmpl)
207
+ @libs[tmpl]=input
208
+ filter.envir["_FILENAME_"]=tmpl.dup #register name of template!!!
209
+ filter.envir["_FILENAME_ORIG_"]=tmpl_orig.dup #register name of template!!!
210
+ filter.envir["_PWD_"]=File.dirname(tmpl) #register name of template!!!
211
+ txt=parse(@libs[tmpl],filter,tags)
212
+ end
211
213
  end
212
214
  }
213
215
  end
@@ -151,6 +151,9 @@ module Dyndoc
151
151
  ## equivalent to :pre_doc for not interactive document
152
152
  def require_first
153
153
  require_dyndoc_libs("Dyn/Base")
154
+ Dyndoc.cfg_dyn[:require_first].each do |libs|
155
+ require_dyndoc_libs(libs)
156
+ end
154
157
  end
155
158
 
156
159
  def require_dyndoc_libs(libs)
@@ -1,5 +1,7 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ require 'securerandom'
4
+
3
5
  ## TODO: .force_encoding("utf-8") needs to be added (see server.rb)
4
6
  module Dyndoc
5
7
 
@@ -26,6 +28,7 @@ module Dyndoc
26
28
  class TemplateManager
27
29
 
28
30
  @@depth=0
31
+ @@outError=""
29
32
 
30
33
  @@cmd=["newBlck","input","require","def","func","meth","new","super","blck","do","if","for","case", "loop","r","renv","rverb","rbverb","jlverb","rout","rb","var","set","hide","format","txt","code","<","<<",">","eval","ifndef","tags","keys","opt","document","yield","get","part","style"]
31
34
  ## Alias
@@ -87,7 +90,7 @@ module Dyndoc
87
90
  @vars,varsOld=filterLoc.envir,@vars
88
91
  Dyndoc.vars=@vars
89
92
  @filter=filterLoc unless @filter ##root filter
90
- out=""
93
+ out,$outError ="",""
91
94
  #p texblock
92
95
  texblock.map{|b|
93
96
  #p b
@@ -96,33 +99,49 @@ module Dyndoc
96
99
  cmd=@@cmdAlias[cmd] if @@cmdAlias.keys.include? cmd
97
100
  #Dyndoc.warn "parse:cmd,b",[cmd,b]
98
101
  @@depth+=1
99
- ###TO temporarily AVOID RESCUE MODE:
100
- ###
101
- if true; method("do_"+cmd).call(out,b,filterLoc); else
102
- begin
103
- ## Dyndoc.warn "cmd",[cmd,b]
104
- method("do_"+cmd).call(out,b,filterLoc)
105
- ## Dyndoc.warn [:out,out] if cmd=="eval"
106
- rescue
107
- puts "=> Leaving block depth #{@@depth}: "
108
- codeText=b.inspect
109
- ##Dyndoc.warn "codeText",codeText
110
- nbChar=(Dyndoc.cfg_dyn[:nbChar_error]) ? Dyndoc.cfg_dyn[:nbChar_error] : 80
111
- if codeText.length > nbChar
112
- codeText=codeText[0..((nbChar*2/3).to_int)]+" ...... "+codeText[(-(nbChar/3).to_int)..-1]
113
- end
114
- puts codeText
115
- if @@depth==1
116
- puts "=> Exiting abnormally!\n"
117
- raise SystemExit
118
- else
119
- raise RuntimeError, "Dyn Runtime Error"
102
+ ## To deactivate, put it inside ~/.dyndoc.yml
103
+ if Dyndoc.cfg_dyn[:parse_rescue]
104
+ begin
105
+ ## Dyndoc.warn "cmd",[cmd,b]
106
+ method("do_"+cmd).call(out,b,filterLoc)
107
+ ## Dyndoc.warn [:out,out] if cmd=="eval"
108
+ rescue
109
+ $outError << "=> Leaving block depth #{@@depth}: " << "\n"
110
+ codeText = b.inspect
111
+ ##Dyndoc.warn "codeText",codeText
112
+ nbChar=(Dyndoc.cfg_dyn[:nbChar_error]) ? Dyndoc.cfg_dyn[:nbChar_error] : 80
113
+ if codeText.length > nbChar
114
+ codeText=codeText[0..((nbChar*2/3).to_int)]+" ...... "+codeText[(-(nbChar/3).to_int)..-1]
115
+ end
116
+ $outError << codeText << "\n"
117
+ if $outRbError && !$outRbError.empty?
118
+ $outError << $outRbError << "\n"
119
+ $outRbError = ""
120
+ end
121
+ if @@depth==1
122
+ $outError << "=> Exiting abnormally!</code>" << "\n"
123
+ @@outError << "<pre style='background-color: #EBECE4;'><code>"+$outError+"</code></pre>" << "\n"
124
+ puts "@@outError: \n"+@@outError
125
+ #raise SystemExit
126
+ out << @@outError
127
+ @@outError=""
128
+ else
129
+ @@outError << "<pre style='background-color: #EBECE4;'><code>Dyn Runtime Error\n"+$outError+"</code></pre>"
130
+ $outError=""
131
+ if Dyndoc.cfg_dyn[:parse_rescue_mode]==:simple
132
+ out << @@outError
133
+ @@outError=""
134
+ else
135
+ raise RuntimeError, "Dyn Runtime Error"
136
+ end
137
+ end
138
+ Dyndoc.warn "out #{@@depth} :",$outError
139
+
140
+ ensure
141
+ @@depth -= 1
120
142
  end
121
- ensure
122
- @@depth -= 1
123
- end
124
- ###TO temporarily AVOID RESCUE MODE:
125
- ###
143
+ else
144
+ method("do_"+cmd).call(out,b,filterLoc)
126
145
  end
127
146
  }
128
147
  ##restore old partTag and vars
@@ -404,7 +423,7 @@ p [vars,b2]
404
423
  if @@newBlcks.keys.include? @blckDepth[-1]
405
424
  @blckName ||= []
406
425
  tmp=blck[1][1].strip
407
- @blckName << (tmp.empty? ? `uuidgen`.strip : tmp)
426
+ @blckName << (tmp.empty? ? SecureRandom.uuid.strip : tmp)
408
427
  #puts "blckNAME";p @blckName
409
428
  end
410
429
 
@@ -119,7 +119,7 @@ module Dyndoc
119
119
  end
120
120
 
121
121
  def Utils.protect_extraction(str)
122
- str.gsub(/(?:\#|\#\#|@|#F|#R|#r|\:R|\:r|#Rb|#rb|\:|\:Rb|\:rb)+\{/) {|e| "\\"+e}
122
+ str.gsub(/(?:\#|\:dyn|\#\#|@|#F|#R|#r|\:R|\:r|#Rb|#rb|\:|\:Rb|\:rb)+\{/) {|e| "\\"+e}
123
123
  end
124
124
 
125
125
  ## the scanner converts automatically {#toto#} in {#toto][#} and {@toto@} in {@toto][#}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dyndoc-ruby-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - CQLS
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-08 00:00:00.000000000 Z
11
+ date: 2021-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: configliere
@@ -34,22 +34,22 @@ dependencies:
34
34
  name: ultraviolet
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 1.0.0
40
37
  - - "~>"
41
38
  - !ruby/object:Gem::Version
42
39
  version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 1.0.0
50
47
  - - "~>"
51
48
  - !ruby/object:Gem::Version
52
49
  version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.0
53
53
  description: " Provide templating in text document.\n"
54
54
  email: rdrouilh@gmail.com
55
55
  executables: []
@@ -193,12 +193,12 @@ files:
193
193
  - share/julia/dyndocOLD.jl
194
194
  - share/julia/dynreport.jl
195
195
  - share/julia/ruby.jl
196
- homepage: http://cqls.upmf-grenoble.fr
196
+ homepage: http://cqls.dyndoc.fr
197
197
  licenses:
198
198
  - MIT
199
199
  - GPL-2.0
200
200
  metadata: {}
201
- post_install_message:
201
+ post_install_message:
202
202
  rdoc_options: []
203
203
  require_paths:
204
204
  - lib
@@ -214,8 +214,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements:
216
216
  - none
217
- rubygems_version: 3.0.6
218
- signing_key:
217
+ rubygems_version: 3.1.4
218
+ signing_key:
219
219
  specification_version: 4
220
220
  summary: R and Ruby in text document
221
221
  test_files: []