class Dyndoc::VarsScanner
Public Class Methods
new(type=:vars,start=nil,stop=nil,mode=nil,escape=nil)
click to toggle source
Calls superclass method
Dyndoc::Scanner::new
# File lib/dyndoc/base/scanner.rb, line 814 def initialize(type=:vars,start=nil,stop=nil,mode=nil,escape=nil) super end
Public Instance Methods
build_dyn_vars(res)
click to toggle source
# File lib/dyndoc/base/scanner.rb, line 833 def build_dyn_vars(res) #puts "res";p res is_arr=res.map{|k,v| k}.join("").empty? cpt=-1 res2=[] res.each{|k,v| #p k;p v key2=(k.empty? ? (is_arr ? "" : "key")+(cpt+=1).to_s : k) res0=((v.is_a? Array) ? build_dyn_vars(v) : [["",v]]) #puts "res0";p res0 res2+=res0.map{|k0,v0| [key2+(k0.empty? ? "" : "." )+k0,v0]} #puts "res2";p res2 } #puts "res2";p res2 res2 end
build_rb_vars(res)
click to toggle source
# File lib/dyndoc/base/scanner.rb, line 850 def build_rb_vars(res) #puts "res";p res is_arr=res.map{|k,v| k}.join("").empty? cpt=0 res2=(is_arr ? [] : {}) res.each{|k,v| #p k;p v v2=((v.is_a? Array) ? build_rb_vars(v) : v) if is_arr res2 << v2 else key2=(is_arr ? (cpt+=1) : (k.empty? ? "key"+(cpt+=1).to_s : k).to_sym) res2[key2]=v2 end } #puts "res2";p res2 res2 end
build_vars(txt,type=:dyn)
click to toggle source
# File lib/dyndoc/base/scanner.rb, line 870 def build_vars(txt,type=:dyn) #puts "txt";p txt return nil unless txt[0,2]=="<<" res=tokenize(txt) return nil if res[:inside].empty? res=make_vars(extract) case type when :dyn #puts "res in build_vars";p res build_dyn_vars(res) when :rb build_rb_vars(res) when :r end end
make_vars(res)
click to toggle source
# File lib/dyndoc/base/scanner.rb, line 818 def make_vars(res) vars=[] start=0 parts=res[:txt].split(@re_strange,-1).join("").strip #puts "parts";p parts #p res #puts "inside";p res[:inside] res[:inside].map do |e| vars2= [e[:type][2..-1].strip,(e[:inside] ? make_vars(e) : e[:txt][(e[:type].bytesize+1)...-1] )] #instead of length vars << vars2 end #puts "vars";p vars vars end