module Dyndoc
begin require 'redcloth' rescue LoadError Dyndoc.warn "Warning: RedCloth not installed or supported!" end
require 'pandoc-ruby'
Constants
- SOFTWARE
Public Class Methods
R()
click to toggle source
# File lib/dyndoc-software.rb, line 109 def self.R SOFTWARE[:R] end
bash(bash_path=nil)
click to toggle source
# File lib/dyndoc-software.rb, line 101 def self.bash(bash_path=nil) if bash_path # Needs to be in the PATH return bash_path else SOFTWARE[:bash] end end
mingw32_software?()
click to toggle source
# File lib/dyndoc-software.rb, line 5 def self.mingw32_software? RUBY_PLATFORM=~/mingw32/ end
pdflatex()
click to toggle source
# File lib/dyndoc-software.rb, line 92 def self.pdflatex # this has to be initialized each time you need pdflatex since TEXINPUTS could change! if ENV['TEXINPUTS'] "env TEXINPUTS=#{ENV['TEXINPUTS']}" + (self.mingw32_software? ? "; " : " ") + SOFTWARE[:pdflatex] else SOFTWARE[:pdflatex] end end
scoop_install?()
click to toggle source
# File lib/dyndoc-software.rb, line 9 def self.scoop_install? self.mingw32_software? and !(`where scoop`.strip.empty?) end
software()
click to toggle source
# File lib/dyndoc-software.rb, line 84 def self.software SOFTWARE end
software?(software)
click to toggle source
# File lib/dyndoc-software.rb, line 88 def self.software?(software) software - SOFTWARE.keys end
software_init(force=false)
click to toggle source
# File lib/dyndoc-software.rb, line 13 def self.software_init(force=false) unless SOFTWARE[:R] if self.mingw32_software? cmd=Dir[File.join(ENV["HomeDrive"],"Program Files","R","**","R.exe")] SOFTWARE[:R]=cmd[0] unless cmd.empty? else cmd=`type "R"` SOFTWARE[:R]=cmd.strip.split(" ")[2] unless cmd.empty? end end unless SOFTWARE[:Rscript] if self.mingw32_software? cmd=Dir[File.join(ENV["HomeDrive"],"Program Files","R","**","Rscript.exe")] SOFTWARE[:Rscript]=cmd[0] unless cmd.empty? else cmd=`type "Rscript"` SOFTWARE[:R]=cmd.strip.split(" ")[2] unless cmd.empty? end end unless SOFTWARE[:ruby] cmd=`type "ruby"` SOFTWARE[:ruby]=cmd.strip.split(" ")[2] unless cmd.empty? end unless SOFTWARE[:pdflatex] cmd=`type "pdflatex"` if RUBY_PLATFORM =~ /msys/ SOFTWARE[:pdflatex]="pdflatex" else SOFTWARE[:pdflatex]=cmd.empty? ? "pdflatex" : cmd.strip.split(" ")[2] end end unless SOFTWARE[:pandoc] if File.exist? File.join(ENV["HOME"],".cabal","bin","pandoc") SOFTWARE[:pandoc]=File.join(ENV["HOME"],".cabal","bin","pandoc") else begin cmd = `which pandoc`.strip rescue cmd = "pandoc" end SOFTWARE[:pandoc]=cmd unless cmd.empty? #cmd=`type "pandoc"` #SOFTWARE[:pandoc]=cmd.strip.split(" ")[2] unless cmd.empty? end end unless SOFTWARE[:ttm] cmd=`type "ttm"` SOFTWARE[:ttm]=cmd.strip.split(" ")[2] unless cmd.empty? end unless SOFTWARE[:bash] if self.scoop_install? bash_path=File.expand_path('../../bin/bash.exe',`scoop which git`) if File.exist? bash_path bash_path else # Needs to be in the PATH "bash" end else "/bin/bash" end end end
which_path(bin)
click to toggle source
# File lib/dyndoc-converter.rb, line 13 def Dyndoc.which_path(bin) begin cmd=`which #{bin}`.strip cmd=DyndocMsys2.global_path_msys2mingw(cmd) if RUBY_PLATFORM =~ /mingw/ rescue cmd=bin end return cmd end