class SiSU_Assemble::Composite
Public Class Methods
new(opt)
click to toggle source
# File lib/sisu/ao_composite.rb, line 89 def initialize(opt) @opt=opt @env=SiSU_Env::InfoEnv.new end
Public Instance Methods
download_images(download_from,images_array)
click to toggle source
# File lib/sisu/ao_composite.rb, line 182 def download_images(download_from,images_array) path="#{@env.processing_path.processing}/external_document/image" FileUtils::mkdir_p(path) unless FileTest.directory?(path) images_array.each do |i| image="#{path}/#{i}" unless FileTest.exists?(image) imagefile=File.new(image,'w+') open("#{download_from}/#{i}") do |g| imagefile << g.read end imagefile.close end end end
insert?(para)
click to toggle source
# File lib/sisu/ao_composite.rb, line 116 def insert?(para) if para =~ /^<<\s+((?:https?|file):\/\/\S+?\.ss[it])$/ # and NetTest url($1.strip) elsif para =~/^<<\s+(\S+?\.ss[it])$/ loadfilename=$1.strip insert_array=loadfile(loadfilename) file=insertion(loadfilename,insert_array) file[:prepared] else para end end
insertion(fni,insert_array)
click to toggle source
# File lib/sisu/ao_composite.rb, line 196 def insertion(fni,insert_array) file={ prepared: [], images: [] } rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ file[:prepared] << "\n% |#{fni}|@|^|>>ok\n\n" @code_flag=false insert_array.each do |i| @code_flag=if i =~/^code\{/ then true elsif i =~/^\}code/ then false else @code_flag end if not @code_flag \ and i !~/^%+\s/ i=i. gsub(/^([123]|:?[ABCD])~\? /, '% [conditional heading:] \1~ ') #off conditional heading (consider syntax) if i =~/^@\S+?:/ i=i.gsub(/\n/m,"\n% "). gsub(/\n%\s+$/m,''). gsub(/^@\S+?:/m,"\n% [imported header:] ") #off imported headers end end file[:prepared] << i if i !~/^%+\s/ \ and i =~rgx_image file[:images] << i.scan(rgx_image).uniq end end file[:prepared] << "\n% end import" << "\n\n" if file[:images].length > 0 file[:images]=file[:images].flatten.uniq file[:images].delete_if {|x| x =~/https?:\/\// } end file end
loadfile(loadfilename)
click to toggle source
# File lib/sisu/ao_composite.rb, line 127 def loadfile(loadfilename) begin if FileTest.file?(loadfilename) insert_array=IO.readlines(loadfilename,'') if loadfilename =~/\S+?\.ss[itm]$/ if (@opt.act[:verbose][:set]==:on \ || @opt.act[:verbose_plus][:set]==:on \ || @opt.act[:maintenance][:set]==:on) SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], 'loading:', loadfilename, ).txt_grey end tuned_file=if loadfilename =~/\S+?\.ss[im]$/ insert_array.each.map do |para| insert?(para) end elsif loadfilename =~/\S+?\.sst$/ insert_array.each.map do |para| para end end.flatten.compact end end rescue SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure end end
read()
click to toggle source
# File lib/sisu/ao_composite.rb, line 93 def read begin pwd=Dir.pwd Dir.chdir(@opt.f_pth[:pth]) if @opt.fno =~/\S+?\.ssm$/ SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], 'Composite Document', "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}", ).grey_title_hi unless @opt.act[:quiet][:set]==:on composite_and_imported_filenames_array(@opt.fno) # composite doc, .ssm, extract all related insert files, array of filenames test assembled=loadfile(@opt.fno) write(assembled) end Dir.chdir(pwd) rescue SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns). location do __LINE__.to_s + ':' + __FILE__ end ensure end end
url(loadfilename)
click to toggle source
# File lib/sisu/ao_composite.rb, line 159 def url(loadfilename) if loadfilename =~ /((?:https?|file):\/\/\S+?\.ss[it])$/ # and NetTest loadfilename=$1 begin require 'uri' require 'open-uri' require 'pp' rescue LoadError SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). error('uri, open-uri or pp NOT FOUND (LoadError)') end insert=open(loadfilename) insert_array=insert.dup insert.close file=insertion(loadfilename,insert_array) file[:prepared] end end
write(assembled)
click to toggle source
# File lib/sisu/ao_composite.rb, line 177 def write(assembled) assembled_file=File.new("#{@env.processing_path.composite_file}/#{@opt.fnb}.ssm.sst",'w+') assembled.each {|a| assembled_file << a } assembled_file.close end